Creating Great Plug-ins

Creating Great Plug-ins

There's an ever-growing community of users out there waiting to find great plug-ins for their Connected™ devices, so in addition to providing an open platform and an SDK, we decided to come up with a few suggested guidelines, to ensure that your creation will gain popularity with the widest audience.

Display Support

When formatting your plug-in, try to support both High Definition (HD) and Standard Definition (SD) displays.

Things to consider are aspect ratios (16:9 and 4:3), page dimensions (1280x720 and 640x480), and font faces/sizes.

4:3 aspect ratio. 16:9 aspect ratio.
Letterboxing due to widescreen video. Pillarboxing due to 4:3 video source.
A plug-in displayed in 4:3... The same plug-in can scale to 16:9.

In the event you create a plug-in that only supports one display mode, identify it as such. For example, names like "German Autos Feed (HDTV)" or "Martial Arts Podcast (SDTV)" let the user know the plug-in is primarily formatted for a specific display mode.

Navigation

Try to be consistent with how your plug-in responds to user feedback. For example, make sure the remote control's BACK button takes the user up one level. Let the directional arrows and ENTER button remain as navigation and selection buttons. Provide on screen help by making use of the remote control's INFO and MENU buttons.

Responsiveness

Try to provide the user feedback by making something happen as soon as they press buttons or advance through screens. Displaying something as simple as a "loading..." message will let the user know that they need to be patient.

Configuration

If the plug-in requires a simple configuration or is repeatedly changed during sessions, it should be configurable through a menu displayed on the TV; make use of the context sensitive MENU button.

Language Support

Even if you initially create your plug-in in your native language, it's not a bad idea to break off the text elements from your plug-in's interface into an external strings file. Having an external XML file for the language will allow the community to provide their own translations and open up your plug-in to an even wider audience. In the event you initially release your plug-in with multi-language support, provide a method for the users to choose a language file, either in the plug-in's setup wizard or through the context sensitive MENU button.

Leverage Web Services

To keep your plug-in fresh, allow it access to data on remote servers, where you (or another service provider) can supply fresh data that will dynamically update your users' plug-in.

For example, have your plug-in reference a URI (http://yourdomain.com/data.xml) for a feed of movie clips, and keep the feed up to date so your users utilize your plug-in often.

Or, consider using someone else's open API for data. Here are just a few sources: Google Code - http://code.google.com, Yahoo Pipes - http://pipes.yahoo.com, Amazon Web Services - http://aws.amazon.com, or Ebay Developers - http://developer.ebay.com.

Because Connected plug-ins can be built off standards-based web technologies, along with leveraging the APIs in the DivX Connected Plug-in SDK, studying up on JavaScript, HTML, and XML/RSS will get you on your way:


License Agreement

NO COMMERCIAL USE: This License Agreement grants our community members the right to use the Software downloaded from DivX Labs for personal use only in order to evaluate and provide feedback about it to DivX, Inc. Commercial use of the Software or of the work products resulting from its use is not permitted under the Terms of Use of DivX Labs.

"