So my question is this:

Is there any easy way for a single developer to release an app on iOS and Android?

I am a web developer that primarily plays in PHP, Node, Ruby, AS, and JS. I have dabbled a tiny, tiny bit in Objective-C and Java. Basically I am looking for a good way to release a fairly simple app on both Android and iOS and have a uniform UI that is fairly easy to maintain. The app's main purpose is a well designed visual interface (with animation to help convey actions) to a simple backend API.

Currently I was looking at using Flex, but want to find out other options if they exist. Thank you!

  • 1
    Since you're a Web developer, you might look into PhoneGap (a.k.a. Apache Cordova). With PhoneGap, you write a HTML/JavaScript Web site, which is then packaged as a native app via the platfom's native Web view. – apsillers Jan 3 '13 at 0:10
  • My biggest concern with that is how responsive it feels, is it fairly easy to get it responsive now? (I have not looked super deep into that since a year or so ago.) – gokujou Jan 3 '13 at 1:55
  • 1
    All I can say is that I've made a real-time, networked game using PhoneGap, and it seemed to work just fine. However, I was using the canvas almost exclusively, so you may see different results with an actual web page, with CSS and DOM manipulation, etc. – apsillers Jan 3 '13 at 2:53

When choosing a technology for multi-platform development there are some main issues to consider.

The first issue is the quality of the application. PhoneGap, for example, is probably the most popular option for writing an application that works both for Android and iOS. But, of course, it has it's disadvantages (native languages wouldn't be used otherwise :))).

The second issue is the speed of development. It is much faster to use one single technology instead of two quite different ones. Though Android and iOS have a lot of common (the MVC pattern for example), the technologies are very different _ the languages, the way views are constructed, etc. So it would take some time to learn both.

Here are some useful links where native and multi-platform development are compared:

P.S. If you have sufficient time, I'd suggest you learn both Android and iOS development separately. Both technologies differ form what you previously did. It would be a great experience, and lot's of fun!

| improve this answer | |
  • 3
    Another point that I might add is that UI styles differ from Android to iOS, what is common on one Platform won't be necessarily on the other one – Egryan Jan 4 '13 at 15:10

Here's a quick list of the options I'm aware of:

  1. Flex - Develop apps in Flash, deploy to various mobile platforms. Paid.
  2. Phonegap - Deploy HTML5/javascript apps to various mobile platforms. Freeware.
  3. appcelerator/Titanium - Deploy HTML5/javascript apps to various mobile platforms. Paid.
  4. RhoMobile Suite - Similar to Titanium. Paid.
  5. MonoTouch - Similar to Titanium, but for C#/.NET. Paid.
  6. Codename One - Develop the app in Java, which is then converted to native code/UI components. Free, with a paid 'pro' option.
  7. J2ObjC - Not a complete solution (there's no UI!) but can be used to port business logic written in Java to ObjectiveC. Free.
| improve this answer | |
  • J2ObjC looks very interesting! One business layer + device specific UI layer concept might actually work really well. Have you given it a shot before? – Guven Jan 4 '13 at 14:25
  • @Guven Not yet, and google note that it's "currently between alpha and beta quality". Where I work we're about to start a full assessment of Codename One, but if that doesn't work out for us I think J2ObjC might be our next best option. – vaughandroid Jan 7 '13 at 9:36
  • @Baqueta What was the outcome of your assessment of Codename One? Did you guys stick with Codename One or go with something else? We are in the process of making similar decision, your input would be helpful. Thx. – spSingh May 24 '13 at 16:35
  • @spSingh We're going ahead with CN1. In general so far it's working well. Inevitably we've encountered a few hiccups, but the CN1 team are pretty good about doing fixes. We have encountered a couple of more serious issues - we're focusing on iOS at the moment and there are a couple of bugs in the Java -> C code conversion - but nothing unavoidable so far... – vaughandroid May 29 '13 at 8:53
  • Just a mention, I'm a Rhodes developer producing a mobile app (mydentalcompanion.com), with a LOT of experience with the framework. It's neither similar to Titanium nor paid, unless you use specific components, non-manditory by any means. Rhodes is very problematic to work with, but the development capabilities are outstanding in the end. I'm using the Lungo framework to develop the app now, and I HIGHLY recommend it, it's the best framework hands down for web development for mobile devices. You can see the native experienceh in the video on our site. – Steve Benner Apr 19 '14 at 20:38

VisionMobile has done extensive research (97 pages) on this in their Cross-Platform Tools 2012 report. It's available for free after registration. They've found over a 100 different tools and written detailed profiles of the 15 major players. Those are:

  • Adobe PhoneGap (Apache Cordova) - JS apps with HTML/CSS/JS UI inside a webview
  • Adobe Air / Flex -
  • Ansca Corona
  • Appcelerator Titanium - write JS instead of instead of Obj-C or Java, Titanium did the webview thing similar to Phonegap in older versions
  • Seregon DragonRad
  • IBM Worklight - basically a commercial enterprise version of Phonegap
  • Ideaworks 3D Marmalade
  • MoSync
  • Rhodes and Motorola Solutions RhoMobile - Ruby with webview
  • NetBiscuits BiscuitML
  • RunRev LiveCode
  • Digia Qt
  • Sencha Touch - JS/CSS UI framework
  • Unity - game engine, probably not what you're looking for
  • Xamarin MonoTouch and Mono for Android - write C# instead of Obj-C or Java

I'm looking into this currently for Ruby on Rails shop that wants a mobile app as well. We're looking at Rhodes but also at RubyMotion, Ruboto and MobiRuby, which instead of webviews allow Ruby to be used to code the UI instead of Objective-C or Java.

Whether you want a webview-based solutions or nod depends on your requirements and the used UI framework, such as jQuery Mobile, Sencha Touch, Zepto, etc etc. Facebook famously dropped webview (because it was slow and buggy) in favor of 100% native apps, but Sencha showed it could be done properly with their framework.

And depending on the used tool, it may or may not have the ability to write platform native code and/or UI if the framework doesn't offer the needed capabilities. Suffice it to say that there are many roads leading to Rome, and each roadmaker has its own way of doing things :)

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.