Skip to Main Content

Mar 23, 2011 | 4 minute read

Developing Mobile Apps for Multiple Platforms

written by Dennis Newel

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.

One is to provide a "driver" for each phone that provides access to, for example, accelerometer and GPS from scripting languages like JavaScript, Ruby and Python. This way a developer can write the app once in a scripting language (together with HTML and CSS) that can be run on all the phones that have the "driver".

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.

Other advantages are uniform look and feel across devices, support for flexible layout (using HTML and CSS at least) and use of known technologies. It's still not easy finding great mobile developers but it very easy to find really good web developers who are familiar with HTML, CSS, JavaScript, Ruby, Python or other scripting languages.

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.

Available Frameworks

Titanium

  • 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

Ramp

  • 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

J2ME Polish

  • 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

PhoneGap

  • Uses HTML and JavaScript to build apps
  • Provides access to phone features like GPS
  • Supports iPhone/iPad, Android, Palm, Blackberry and Symbian

Grapple

  • Uses HTML, CSS and JavaScript to build apps
  • Supplies a series of professional services like app building, hosting, management, et cetera

Open Plug

  • 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)

Rhomobile

  • 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.