- Steve Jobs is a man of a few words
- Internet routing blasts into space
- 15 free downloads to pep up your old PC
- IBM smartphone software translates 11 languages
- New attack fells Internet Explorer
When it comes to designing a mobile video application that must be deployed on the leading device operating systems — including BlackBerry, iPhone, Android, Windows Mobile and Symbian — there are a huge number of variables to consider. It's not just an iPhone world.
My company recently developed a mobile video application for a client that wants to deliver personalized video news from leading broadcasters and programmers, and we gained a ton of real-world experience in design and development for cross-platform mobile applications. Along the way we learned it's almost always about making tradeoffs that balance platform, carrier, device and network capabilities with the requirements of the users.
Here are 12 tips for getting it right:
1 – Maximize code-sharing and system architecture across the support platforms. Code sharing between platforms is obviously desirable, but may not be possible in many cases because platforms require the use of different programming languages, SDKs and frameworks. Even if you succeed in sharing common code between platforms, you'll need to be especially careful when altering the shared code to ensure it works as expected on all platforms. Thus, shared code can result in a greater workload than simply maintaining completely separate sets of code.
Architecting your application with common components and layers will ease portability of the application across platforms. Just to name a few, you can isolate modules for communication, video player sequence, thumbnail download and ad manager. In most cases, you can expect to share 90% of your design across platforms, which makes your design more maintainable and extensible.
2 – When in doubt, use the native video player. Because you want to meet or surpass video quality requirements for supported devices and carriers, you need to decide which video player(s) to use. Your options are to use the Flash Video player, the video player native to the platform, a third-party player or to build your own.
Your choice depends on which device platforms you need to support, as well as the source of the video. If the video source is a single entity with a single video format, consider yourself fortunate. But if you are aggregating video from many producers you can expect a variety of video formats.
Flash video is not available on all platforms. There aren't many third-party players that offer cross-platform technology with acceptable video quality. Native players offer a decent video experience, tend to be very stable and usually have reliable vendor support. In most multiplatform cases the first choice is native players.
3 – Select video encodings that best match each network technology. To get acceptable video performance on a range of supported network technologies and situations, you've got to deliver video that's encoded to best match the bit rate provided by each network. The question is whether to offer one or multiple bit-rate encodings.
A single-bit-rate video allows for a simpler implementation, but you have to pick a bit rate that plays sufficiently well
on both slower and faster connections and, even in the best case, this will not provide the best possible video experience.
Multiple bit rates require more storage on the server (to store the multiple encodings), and are slightly more complex to
implement, but they offer optimum video experience in all network conditions.
Many sites transcode each video clip into several different bit rates that are stored on the server. That makes it possible
to detect which network technology the user has and stream the best match: 80Kbps for Edge, 200Kbps for iPhone, 600Kbps for
Wi-Fi.
Comment