Apple and Android and Windows, oh my! The challenges of cross platform development.


Anytime a major player in the mobile world releases a new product or update, the tech blogs are filled with rants and raves about said product. Most tech blogs, while making genuine efforts to stay objective, tend to lean in one direction - either for or against a product depending on who the darling is at the moment in the tech world. The one thing that tends to be missed in all these product reviews, however, that will affect each and every consumer, is how the new product affects development on that platform. Here at Subsplash, one of the main goals of our mobile software is to give our customers the ability to tell a story with their application. There are three main areas of mobile application development that affect an app’s ability to tell a story; the design, its multimedia, and its workflow. What follows is my take on what each of these platforms does that either helps or hinders our ability to tell our client’s story. Though there are numerous players in the mobile OS market (Apple, Google, Microsoft, Amazon, Samsung, HP, Nokia, RIM, and etc.), we're going to take a look at the top three: Apple, Google, and Microsoft.

What's to love about telling your story through Apple's iOS? First and foremost is the hardware; it's sleek, well thought out, and beautiful. Apple has been leading the industry in making simple yet elegant devices for years. Apple also does a great job of unifying their multimedia experience across all of their platforms. Developers don't have to worry much about whether a particular codec is supported on device X and not on device Y. Apple provides clear specifications as to what type of audio and video work on iOS. In terms of user interaction, Apple has done a very good job of presenting a consistent interface across all of their apps. After using any particular app, you know what to expect when using all other apps. This consistency makes using iOS applications seem intuitive and inviting, even if you’ve never used them before. Finally, Apple has made it very easy to do standard transition animations within an app, which in turn helps the application engage with the user in a fun and immersive way.

What's to love about telling your story through Google's Android? The first is the diversity of hardware and screen sizes. Because Android is an open source platform (anyone can freely download the software and make their own version of Android), most major mobile hardware manufacturers have one or more devices that run the Android OS. There are many low and high end Android devices on the market -meaning that your app is going to reach a wider audience. Android also provides a great diversity of user interfaces across its platforms and applications. Developers can create widgets which users can put directly on their home screens. These widgets provide "sneak peeks" into a specific area of an application, allowing users to be more engaged with the application. Because of the flexibility in the Android UI, it's easy for developers to make their apps stand out. For Subsplash, this means that it's easy for us to make it so that users know when they're using a Subsplash app because of its unique look and feel that is all our own.

What's to love about telling your story through Microsoft's WP7? Microsoft has taken a very different approach to their mobile UI than both Apple and Google, which allows application developers to tell their app’s story in a very different way. WP7 promotes navigation within the app by allowing content from one page to bleed onto its adjoining pages. This allows the story to be spread throughout the app and not be limited to a single screen. WP7 also allows apps to integrate with existing Microsoft technologies much easier than other mobile platforms.

As with most things, all mobile platforms have their downsides as well. So what things may be purposefully overlooked when talking about iOS? There is certainly a common grumble amongst developers about Apple's app store submission policy. What tends to go unmentioned is the fact that there are both written and unwritten rules that developers must adhere to when developing and releasing their apps. The pain point comes from Apple constantly changing their unwritten rules. What's okay for an app submission today may not be okay tomorrow, and Apple provides little to no warning or support in these instances. Things like where developers store their downloaded offline content, how many apps can be on the same developer account, and the use of "differentiating" design within your app all tend to be moving targets for an Apple app submission. From a development perspective, Apple's unified UI makes it really hard for application developers to tell their story in a unique way. Most iOS apps look and feel the same. If you want your app to stand out from an UI perspective you're going to fight an uphill battle with Apple. Finally, everyone talks about Android fragmentation, but with the release of iOS 5 we've started to see the same thing happen with iOS. iOS 5.x devices just work differently then iOS 4.x devices. Different iPod Touch generations work differently with the same OS version. This means that the old adage of being able to test on an iPhone, iPad, and iPod Touch are gone. You now have to add 4.x and 5.x devices, as well as multiple iPod Touch generations into the mix - making the number of devices you have to test your app on almost triple.

The problem you tend to hear most about Android is its UI fragmentation. What you don't tend to hear about as much is its multimedia fragmentation. At Subsplash, our apps tend to tell their stories with immersive multimedia. We are constantly finding that when it comes to live streams, RTSP support, and playlists, Android devices from different manufacturers tend to behave differently. So on top of having to deal with UI fragmentation (which is getting better with every major Android release), we're having to deal with multimedia fragmentation. As far as hardware goes, different processors and GPU's make the use of transition and animation difficult. What works well on an HTC EVO may not work well on a Motorolla Droid X. The large variety of Android devices on the market makes testing Android apps a real nightmare!

And finally, what things may be purposefully overlooked when talking about WP7? With Microsoft's philosophy in WP7 of content over chrome (user interface elements) the visual aspects can get lost. App developers have to rely on transitions and animations in order to draw their users into the world their app is creating - often times this can be difficult. One of the downfalls of WP7's completely different UI paradigm is that it's hard for app developers to port their existing workflows from iOS and Android into the WP7 world. A user who has left iOS or Android for WP7 may find that the things they loved about the apps they used on those other platforms just aren't there in their WP7 counterpart. WP7 is also playing catchup to both iOS and Android in terms of what developers can do within applications. For instance, when WP7 was first released there was no way for an app to play background audio or to copy and paste text (two things that have been in both Android and iOS for years).

When all's said and done, we love mobile and we love the challenge of helping our clients tell wonderful stories through our apps. With each modification, update, and new device introduced to the market, we’ll make sure we are taking them head on and are excited to continue to deliver great software across a multitude of OS’. Being able to engage with our clients and their audiences in a unique and fun way is what keeps us going. That’s why we're constantly looking for new and exciting ways to help our clients get their stories told.