Most enterprise app dev shops are going with paid systems such as Appcelerator Titanium, Xamarin, CoronaSDK where if you buy in, you get all of the goodies.<p>What is the best solution for hobbyist app developers who want to build cross-platform apps from a single code base and don't want large up-front costs?
Titanium is free for building/distributed apps and hosting data using their mobile backend (ACS). The paid components are related to Appcelerator Platform, which is a suite of testing, performance, analytics, data and integration modules. If you're a hobbyist, you likely don't need the enterprise suite.<p>If you go with Phonegap / Cordova, I recommend looking into Appgyver's implementation which offers great tooling (cli), tight codebase (Angular) and an extended feature set for native components. They also have a great support for data integration and provide a nice visual editor (Composer).<p>Fwiw, I have been using Titanium since 2009 and have worked with many clients over the years as a consultant and trainer. I primarily use Titanium (Alloy) for rapid development and write native modules to extend the framework as needed. Expect about 85% cross-platform code coverage (business logic) and about 95% coverage for views/styles.
Cordova is great. I work for an app dev shop. We do both native and hybrid.<p>If you dont want to mess with building for iOS and Android and XYZ then I would recommend looking into Phonegap. Phonegap uses Cordova to access all of the native apis etc. However what Phonegap does offer thats different is the entire build system. So if you are DIY with Cordova you run all of the build tasks but if you are doing it with Phonegap you can hook up your github repo and they will build for all of the supported platforms for you. No messing with XCode etc.
I would recommend developing your code base using Qt, which will export to Android and iOS. I think Windows Phone will be supported in the future, but has not been fully released yet. Qt is open source and free to use under LGPL.
Having built apps with apps with phonegap my advice is don't. Pick a single platform and build natively unless you have a very very good reason you have to be cross-platform.