
Titanium Appcelerator and Phonegap. This is what we are going to use in our mobile development... At least for now...
Our decision was derived based on our development objectives, which certainly will not be the same for other firms, developers and e*xplorers. How can we build cost-effective mobile applications, from light to middle weight capacities, which will involve most of soft core functionalities. We had several key-features to consider while looking for the best (for us) platform to rely on:
When it comes to mobile app development, we face several challenges: Robustness, portability, development cost, stability and scalability, Resource-availablity... Just to name a few. We have spent entire 2012 in researching 5 (out of many) open-source platforms: Titanium Appcelerator, Rhomobile, PhoneGap, Corona SDK and Adobe Air.
We started with Adobe Air. Even though Adobe claims to have close-to-native performance, We figured that it is a goal for Adobe, not a reality. Several light-action animations, which were performing pretty fast in development stack and desktop environment failed to perform half as close as they were expected in the mobile platform (Android 4.0). Though it is a nice tool, easy to work with... At this point we cannot use it to help our clients develop professional applications.
Corona SDK seemed to be a promising solution for our mobile development needs. Even though it is based on Open GL C++ platform, it utilizes it's own LUA language, which took some time to understand and use. It is powerful enough to use some of the device's core features such as screen rotation, alpha, text fonts etc... The other good thing was Corona's build apps were pretty light-weight, thus very well suiting limited hardware resources of a mobile device. Corona comes with powerful help libraries and built-in functions. The only down-part we found (It might be an asset for other teams) was it's LUA language. It was pretty hard to find resources who knows the language and even harder to find those who'd like to take the learning challenge and move to that direction. If it wasn't for LUA language, most probably we'd have chosen Corona SDk as our main development platform.
Motorola's Rhomobile Suite was powerful... Very powerful. When it comes to enterprise solutions, most probably Rhomobile was the close-to-the-best solution among the five platforms we have tested. It was the only platform that supported windows mobile and blackberry as well. However the lack of clear documentation both for platform and Ruby (Which is being used in this framework) convinced us that our development efficiency could be lowered-down and increase the cost of application. We have kept this technology in our shelf, and once a new opportunity arises, we may definitely give it a try again.
We have been using Tytanium Appcelerator for some time, and recently we have added PhoneGap in our "armory" as well... Though these two platforms use different technologies and approaches, one may combine their fortes to have better results. The biggest difference between these to platforms is that Phonegap uses the browser within the device to emulate a real app, but Titanium Appcelerator allows you to compile your files as if they were done in a native development environment. Most of the time the end-user does not feel the difference between the browser-run app and a native app because the browser is launched "anonymously", without any toolbars or browser related features. Beyond the PhoneGap there is a type of "bridge" between the browser and device, which "converts" commands sent from browser-based application to a corresponding mobile device event or action, and thus application capacities are extended beyond the browser accessibility. Meanwhile the accessibility from browser to device is still limited, and if you ask "can I really use PhoneGap to do 100% everything as I'd do in native programming language? The answer would be "no". or "pretty much everything but not quite". PhoneGap is still evolving and they bring new functionality in every new release.
As for Titanium Appcelerator, let us repeat - it does not use devices browser to emulate a native app. Instead it does compile your code to get a "real app". Both Titanium Appcelerator and PhoneGap use web technologies to develop mobile apps (Javascript, HTML5, CSS). In Appcelerator the final product is run in devices OS shell as an independent program, while PhoneGap launches Browser and emulates a native app.
When it comes to developing apps, which use device's advance features heavily (Camera, Alpha, rotation, location etc...) we normally use Tytanium Appcelerator, since it has more capacity (and device resources) to access these features. When we need data-driven application without fancy 3D graphic animations (and other resource intensive features) we use PhoneGap to develop our mobile solution.