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.

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.

Related Articles

8 Responses to “Developing Mobile Apps for Multiple Platforms”

  1. Good post, but I need to correct you a bit. You claim that very few phones support HTML5. All phones with iOS and newer Android and BlackBery phones do support HTML5. You are right that there is a lot of phones that does not, but for the most part these have less advanced functionality and are not used for anything but calling and text messaging anyway.

    All the major tech companies are pushing on HTML5 so I believe that’s the safest path to go, if you have content that need to work across platforms. In this recent blog post I explain more about why you should watch out for HTML5.

    • Hi Joakim, yes we’re taking into account the entire landscape of phones including the non-smartphones, also the number of device make/model, not necessarily smartphone penetration or market share. But when you look at number of users, you’re right, smartphone adoption is growing which makes the number of phones in circulation more than a “few.”

  2. Interesting articles on multiplatform development.
    My company, Xomo Digital, delivered the official mobile app for the Vancouver 2010 Olympic Games last year (on iPhone, BlackBerry and Win Mobile), and SXSW (iPhone, BB, Android, Phone 7) this year.

    Here’s my take on the subject:

    - the mobile web is a solution to some problems but hard to monetize – as such it is more of a business than a technical decision. HTML 5 and other web technologies (flash on non-iOS) support will always lag behind in terms of featureset but there is an ample supply of web developers familiar with these.

    - multiplatform SDK’s aka Phone Gap etc… reduces development costs over a full native approach but ends up being an ugly hybrid that often brings the app down to the lowest common denominator across the platforms, as well as not supporting some cool platform specific features and integrations. The advantage over a mobile website is the easier monetization through distribution on an App Store. The disadvantage is the risk of relying on third-party vendors for your core technology and codebase.

    - native development on each platform with competent developers is by far the costlier option but it has proven to be the public’s and customer’s choices when it comes to experience and satisfaction.

    Xomo is hiring mobile developers in Vancouver – contact us through our website.

  3. Adobe’s mobile developer tools solve for this new mulitscreen universe. A developer is able to develop in one platform and deliver to multiple (iOS, Android, RIM, etc.). Take a look at this site as I think you’ll find Adobe is providing a very robust solution for developers needing to support all the popular devices and platforms: http://www.adobe.com/devnet/devices.html

  4. If you’ll forgive the plug there’s also my new book, HTML5 for iOS and Android, which enables you to take web apps created in HTML, JavaScript & CSS, and turn them into standalone apps that you can upload to the app stores (for free or to sell). See http://html5formobile.com – the wrappers to do this for the iOS and Android SDKs are freely available on the website, and you don’t need any knowledge of either programming language if you follow the instructions in the book.

  5. ALi says:

    Hi, We are interested to develop CRM business app for Android, iphone using multiplatform
    But we are confused to select and finalize one platform.
    Like discussed above Adobe Flex, Titanium, RhoStudio etc..
    Which should we select to start working on it so its not be a problem in future for compatibility.
    Any guide, Suggestions.

    Thanks

  6. Albertina Mitrani says:

    I love this! Especially the email info. I was just recently thinking about that and noticed that personally if I get things on Tuesday or Wednesday there is a better chance of me opening it because I have caught up with all of the weekend stuff and it is early enough in the week I’m not feeling the crunch!

  7. ts says:

    I don’t understand why Grapple is listed. It’s not a platform, it’s a company that develops apps.

Leave a Reply

© 2014 Get Elastic Ecommerce Blog. All rights reserved. Site Admin · Entries RSS · Comments RSS