Developing Mobile Apps for Multiple Platforms
One of the greatest obstacles for developing mobile apps at this time is the number of different mobile phones that need to be supported.
Even though the iPhone is currently the most popular platform for apps, it's no longer enough to just support that. Android is a worthy competitor, and the iPad presents different options and possibilities that often warrant developing its own app experience.
To truly embrace a mobile offering, you also need to support Symbian, Blackberry, Windows Mobile and Palm just to cover the most widely used smartphones. But how do you go about developing for multiple platforms?
Current Mobile Application Development Approaches
The ability to create one app and have it "magically" work on all mobile devices is not currently available, though there are a number of companies working hard at achieving this. In the meantime, there are two different approaches, with a third on its way.
Another is to write the app in one language and then have it "translated" to other languages that can be used on other phones. A developer would then create the app (e.g. for the iPhone) and run it through a tool to produce versions that could run on other platforms.
The upcoming way of creating apps is through HTML5, which is a major extension of the current HTML specifications that, among other things, could provide direct APIs to GPS and other mobile-specific features. The main problem for HTML5 is that the standard has not yet been finalized and very few phones support it. When it becomes widely supported, however, you could theoretically create an app that will run on all phones as well as all browsers (provided they all support HTML5).
Pros and Cons
There are pros and cons to both the current and future options. The main advantages of using these technologies are speed to market and easier maintenance of one app instead of multiple apps.
The main disadvantage, besides not yet supporting all platforms, is that you're restricted by what the "driver" or "translator" is able to handle. You may not be able to access local storage (this will be part of HTML5), Bluetooth, Wi-Fi or similar that may not be available on all phones. There's also the issue of performance, since the code (either translated or written in a script language that needs to be interpreted) may not be optimized for a given phone.
- Uses web technologies like HTML, CSS, JS, Python, Ruby and PHP
- Can build both mobile and desktop apps
- Has built-in analytics
- Can access phone features like GPS and native UI
- supports iPhone, iPad & Android
- Uses a virtual machine on the phone to execute run apps written in UXML, CSS and JS
- Builds both mobile and desktop apps
- Has a lot of focus on security
- Supports in-app ads
- Has a server-side part that allows integration with internal company systems like intranets or CRM
- Supports a large range of phones
- Uses standard J2ME for apps and has a tool that can port the app to various other phones including the iPhone, Blackberry and Android using their native UI components
- Provides access to phone features like GPS
- Supports iPhone/iPad, Android, Palm, Blackberry and Symbian
- Supplies a series of professional services like app building, hosting, management, et cetera
- Uses Flex to build apps
- Supports iPhone/iPad, Android, Windows Mobile, Symbian, but may have issues with Apple's latest License Agreements due to the use of Flex and their ties with Adobe)
- Uses HTML5 and Ruby
- Hosts the IDE (Integrated Development Environment)
- Supports iPhone, Windows Mobile, RIM, Symbian and Android
- Provides access to phone features such as GPS and camera
Can’t get enough mobile? Our own Executive VP of Elastic Path, Mark Williams, will be representin’ at the Mobile Shopping Spring conference along with panelists from eBay, Fandango, Amazon and the Children’s Place. You can catch the session Impending ‘Disruptive’ Moments: Developing A Mobile Channel Strategy That Embrace’s Change Friday, April 29th in San Francisco.