February 16, 2012 by Christina Warren
The Mobile App Trends Series is supported by Sourcebits, a leading product developer for mobile platforms. Sourcebits offers design and development services for iOS, Android, Mobile and Web platforms. Follow Sourcebits on Twitter for recent news and updates.
In 2011, having a mobile strategy shifted from “nice to have” to “must have” for businesses of all sizes. In 2012, that same shift is taking place when it comes to supporting multiple mobile platforms. Sure, some companies can focus on just one operating system and exclude all others, but most businesses and brands need to target myriad device types. It’s no longer enough to just have an iPhone app — even small and medium sized businesses need to have a plan to support iPad, Android phones, the Amazon Kindle, larger Android tablets, Windows Phone and BlackBerry.
Developing for all of these platforms is a challenge, especially for the developer or business with limited resources. Fortunately, an entire sub-industry of development tools and languages exist to help solve this problem. Enter the cross-platform mobile framework.
Cross-platform frameworks — which include Appcelerator’s Titanium, Rhodes and PhoneGap — are designed to limit the work that a developer or development team has to put in to creating apps for iOS, Android, BlackBerry, Windows Phone and beyond.
As with any development strategy, there are pros and cons to taking a cross-platform approach to mobile application design and development.
NBC’s iOS and Android apps are built using Appcelerator’s Titanium platform.
Pros of Cross-Platform Frameworks
The idea behind most cross-platform frameworks is to limit development time by having users write their code in one language that can easily be compiled to multiple platforms.
The pros of using a cross-platform framework:
Code Is Reusable: Rather than having to write the specific action or sequence for each platform, a developer can just write the code once and then reuse those bits in later projects or on other platforms.
Plugins: Major frameworks, including Appcelerator and PhoneGap offer easy access to plugins and modules that can easily plug into other services or tools.
Easy for Web Developers: Because most frameworks are dynamic or scripting languages, they are easy for web developers to jump in and use. Moreover, most frameworks also support HTML5 and CSS3 alongside the calls to more native functions.
Reduced Development Costs: This is perhaps the biggest advantage because it allows companies or brands to get an app onto other platforms without having to invest in a team or developer specific to that ecosystem.
Support for Enterprise and Cloud Services: In addition to plugins and modules for specific functions, most frameworks also have the option to directly integrate with cloud services, including Salesforce.com, AWS, Box.net and others.
Easy Deployment: Deploying and compiling apps is much faster in a cross-platform scenario. This is especially true with many of the new cloud-based build tools that various frameworks are starting to push out.
Cons of Cross-Platform Frameworks
Of course, using a cross-platform framework development strategy isn’t always the ideal solution. Some of the cons include:
The Framework Might Not Support Every Feature of an Operating System or Device: If Google, Apple or Microsoft adds a new feature, the framework you are using will need to be updated to support those new additions.
You Can’t Always Use Your Own Tools: Most frameworks want users to use their own development tools and suites, and that can mean that a developer has to forgo his or her own IDE preferences and use something else. PhoneGap (which Adobe acquired last summer) is different in this regard, in that it uses the native IDE for each platform it supports (XCode for iOS, Eclipse for Android, Visual Studio for Windows Phone)
Code Might Not Run as Fast: The cross-compilation process can sometimes be slower than using native tools and calls for an app.
High-End Graphics and 3D Support is Often Limited: Fortunately, game-centric development platforms, like Unity are here to help fill in those gaps.
One major factor that cross-platform developers need to be aware of — whether you use a framework or not — is app design. Designing an app for the iPhone is different than designing one for Android; The UI and UX conventions are different, and touch points and menus work in different ways.
A good cross-platform application looks at home on whatever platform it is used on. A bad cross-platform tries to look identical everywhere. For instance, if your Android app has navigation controls at the bottom of the screen, iPhone style, you’re doing it wrong.
Interaction design guru Josh Clark wrote a fantastic article detailing design considerations for major mobile and tablet platforms for .net Magazine that every app developer should read.