Mobile · Mobile development

Cross Platform Mobile Development Tools - Which one?

Ajit Gupta Entrepreneur

August 18th, 2014

We are about to start developing an application for mobile devices (iPhone, Android) and are trying to dermine the best cross platform tool to use.  Does anyone have any experience?  We understand Xamarin is good but very expensive.

John Anderson

August 18th, 2014

Based on iOS and Android being your two target platforms, Xamarin and Aopclerator's Titanium come to mind.  At a high level the main differentiator is that Xamarin uses .NET to develop apps and Titanium uses Javascript.  Both compile out to 100% native mobile apps.

Titanium has an open source version that you can use for free and there is also a paid support option.  Don't get confused and think you have to get the paid support for Titanium.  I believe that the paid option for Xamarin is the only choice, which (last time I checked) is $1,000 per developer per platform per year.  Meaning if you have 2 developers on iOS and Android it will be $4,000 per year.

PhoneGap is different than Xamarin and Titanium in that it uses HTML5, Javascript and CSS3 and PhoneGap puts it into an "app wrapper" for iOS, Android, Windows, and other platforms.  If you feel that being accessible on as many different platforms as possible is important, you could consider PhoneGap.

Whatever development tool you choose, get developers with experience with it.  If you try to use inexperienced developers that have never used a tool before, don't expect good results.  Look for developers that have experience with the tool you end up choosing.  It might cost a bit more but in the long run will make your chances of getting an app that performs well much better.

I know this area well and would be glad to help you avoid the land mines.  Feel free to private message me or email me at john.anderson@ti-browser.com.

Joanan Hernandez CEO & Founder at Mollejuo

August 18th, 2014

Hello Ajit,

In our case we used Titanium. Would I chose to use it again? NO!

To further John's comment, these cross platform IDEs have one requirement no one tells you about: Who ever uses it to develop MUST know very well the platform on which is developing. These IDEs MUST not be used to compensate lack of knowledge into an specific platform. Hence, the programer must know very well iOS and/or Android. Why? Because these IDEs impose an extra layer over the entire project. If the developer doesn't know an specific feature of the mobile platform and relies on the IDE to cover it, you'll have a mess of a project, costing in the end far more than having coded it natively in the beginning.

So it doesn't only requires knowledge of the IDE, it also requieres knowledge of the platform to which you are deploying. As you can see you now have two requirements, than a native programmer doesn't have.

Of course, if you're doing a simple app, then its not big deal, but even doing a simple app, the UI will suffer if the programmer doesn't know well either iOS or Android.

Going specifically with Titanium, this platform works with plug-ins, which in theory are great. You just put you plug-ins into the project, few lines of codes are needed and boom! you're done!. The thing is that not all plug-ins are kept up to date. As such, expect the feature of a native SDK being ahead of the plug-ins for Titanium. We experienced this with the Titanium AdMob plugins. It was several versions behind with what the AdMob SDK offered. These plug-ins are not responsibility of Titanium, are a responsibility from the third parties. You can see then how the mess starts to add up. The same with Analytics, Flurry, or any other SDK you want/need to integrate to your app.

Phonegap is very popular because allows programmers with zero knowledge of Objective-C or Java, to make apps for mobile platforms. If the programmers are under this scenario, you can't beat that! But notice that if the programmers don't know the platform, the ride will not be smooth. I'm talking more challenging than the normal challenges any software project has.

In our case, the next version is going to be native, using Titanium or another cross platform IDE requires in the end more effort than doing it natively, at least that's our case. I'm sure others will have different experience.

Good luck!

Karl Diedrich Principal Engineer at Mebio, Inc.

August 18th, 2014

Check out Qt, http://qt-project.org/ We use Qt for Windows, MacOSX, and Linux GUI development. Qt also has mobile development tools,, http://qt-project.org/doc/qt-5/mobiledevelopment.html. There is an free open-source version of Qt and a company that provides commercial support http://qt.digia.com/ if you need it. 

Mounir Benchemled

August 18th, 2014

Depends on your needs. Consider phonegap or titatium as well. 

Anonymous

August 18th, 2014

I'd stay with open platform PhoneGap for the strength of its community and their commitment to keep up with new and upcoming releases of iOS and Android systems. 

The challenge with closed or proprietary frameworks is that you lose control and also finding resources in closed loop products is a challenge. 

I am currently using phonegap and really like it's flexibility and especially the community behind it. 

Christopher Kim Product Manager

August 18th, 2014

What do you guys think about Firemonkey + Delphi?

Ajit Gupta Entrepreneur

August 18th, 2014

I wish I had posted this in the first place - this has been extremely useful.  We hadn't explored QT, but had looked at Xamarin, Titanium and today was looking at phone gap.  Will check out QT as well now.

Noted comments on experience.

David Fox

August 18th, 2014

Hi,

This is geared more towards game development, but you may find these slides useful. They are from a talk I gave a few weeks ago. The tips are the end are worth noting,  no matter what genre of application you are building!

Luis Avila Owner/Fullstack Architect at IdeaNerd LLC

August 18th, 2014

+1 for Cordova/PhoneGap if what you primarily need is

1) access to things like contacts, accelerometer, location, etc, (In other words... you're not building a game.)
2) Already have JavaScript, HTML, CSS engineers.
3) Have a limited budget and need to deploy to both Android and iOS.

I'd also recommend using Ionic. It's a super lightweight framework for hybrid mobile apps

1) Much better than using Bootstrap or Foundation since it was built for mobile only.
2) It's declarative. You can add navs, drawers, swipe-able lists with html tags. No JS or JQuery needed.



Duane Nickull Chief Marketing Officer, Co-Founder at Cheddar Labs

August 18th, 2014

I used to work with these quite a bit including Adobe AIR/Flex.  As a Sr. technical evangelist, I had extensive experience with many of the dev tools you mention.  I wrote a white paper that summarizes some of the concerns with using these.  The paper is at 

http://www.technoracle-systems.com/white-papers/Mobile-Application-Development.pdf

The paper does not actively recommend one over the other, just note a lot of the concerns you should be thinking about.

In general, my opinion is now shifted from favouring these cross platform tools to favouring native development.  Sooner of later, you will go native.  Everyone does. It is just a matter of time if you are successful.