On July 20, Adobe unveiled version 2.0 of the open source PhoneGap, a leader among the growing crowd of cross-platform, Android-compatible, mobile app frameworks. Open source developers welcomed new PhoneGap features such as a "Cordova WebView" function that enables developers to integrate code into larger native applications.
There are scores of such frameworks to choose from these days, and as seen in our Top 15 list below, the best are getting quite sophisticated. Yet there is still considerable grumbling about the state of mobile cross-platform frameworks. They may be fine for the majority of Android apps being developed, yet few seem to be capable of handling all the requirements of a professional-quality enterprise or consumer app.
If you're familiar with Java and Eclipse, and Android is initially the sole destination, Google's Android SDK and related Android Development Tools (ADT) Eclipse plugin are probably the better choices. The problem is that most app publishers prefer to start with iOS, or else ship on iOS and Android simultaneously, with perhaps a BlackBerry or Windows Phone version as well. Others lack the experience to go native.
Nevertheless, the official tools deserve a look, as it's usually difficult to port one's cross-platform effort to the Android SDK in mid-stream. So we'll start with Google's tools first before moving on to the multi-platform frameworks.
Google's Tools Get Friendlier
Earlier this month, Google released Revision 20 of the SDK and ADT in conjunction with Android 4.1 ("Jelly Bean"), adding new debugging tools, application templates, and performance tweaks. Other Google tools include a native development kit (NDK) for hardware optimization and the Android Accessory gadget control application development kit (ADK).
Android now offers an arguably superior platform to iOS. It provides much more flexibility, better app testing, and easier app approvals. Yet when it comes to overall ease of use, Apple may still have the edge. Although Android uses an easier, more widely known language in Java, Android's rich feature set and multitasking features are harder to master, and version- and device fragmentation can slow things down considerably.
There are no easy fixes for these problems, but Google has at least worked hard to reduce the learning curve. Last month it revamped its Android Developers website to make it more accessible, following up on its previous launch of an Android training program and the publication of a style guide.
Cross-Platform Frameworks Duke it Out
According to the Eclipse Open Source Developer Report 2012, 60 percent of open source developers writing Android or iOS apps use only the official SDK. Among those who use cross-platform frameworks, the choices, ranked from first to last were:
- jQuery Mobile (28.6 percent)
- PhoneGap (17.9)
- Sencha Touch (7.9)
- Dojo Mobile (4.9)
- Titanium (2.8).
The frameworks support Android and iOS at a minimum, and often target BlackBerry, Windows Phone, and Symbian. Although they typically come with a "write once, run anywhere" promise, the amount of tweaking required for each version can still be considerable, and optimization of memory, battery life, and performance is often limited.
Most of the frameworks offer drag-and-drop GUI design tools, and many incorporate APIs aimed at exploiting specific components like audio and GPS. Quite a few are built on the Model View Controller (MVC) UI and component interaction model.
- RhoMobile is designed for Ruby developers.
- MoSync is aimed at C++ hackers.
- C#-flavored Mono for Android appeals to enterprise-focused developers familiar with Visual Studio.
Game developers, meanwhile, tend to use gaming-focused frameworks that offer specialized level-creation features, game engines, and 3D animation support:
- Corona SDK (the main player here)
Educational organizations and others with limited needs and limited resources can turn to codeless, cross-platform app-building environments like TheAppBuilder. Google abandoned its own codeless App Inventor, but it was recently re-launched by MIT as the MIT App Inventor.
Other Android-Ready Options
On the opposite extreme, those aiming to develop complex applications, often in conjunction with new hardware, may prefer the robust, commercial Android-compatible platforms from embedded Linux OS vendors like Wind River, MontaVista, and Mentor Graphics. These are especially useful when targeting form factors beyond smartphone and tablets. The Wind River Platform for Android run-time environment includes an optimized Android SDK, middleware, device drivers, and testing suites, as well as vertical market accelerators.
Those looking to optimize their apps for particular processors can also find Android-ready tools from major ARM semiconductor vendors like Texas Instruments and Freescale, as well as ARM itself. Open source development board projects offer similar tools. MIPS and Intel, meanwhile, are building Android tools to support their own respective architectures.
Other Android-ready tools focus on particular steps in the development process. These include:
- Testing (Testroid, Appthwack)
- Performance management (Crittercism NDK)
- GUI design (DroidDraw, SPB UI Builder).
The latter category includes GUI tools from Motorola, HTC, and Samsung, designed for their respective UI skins. Finally, new cloud-oriented tools such as OpenMobster and Cumulus provide sync and other cloud support for Android apps.
15 Android-Ready Development Frameworks
The following are 15 of the more popular Android development tools. Unless otherwise noted, they are open source, cross-platform frameworks:
Basic4android: Anywhere Software's commercial RAD tool and IDE for Android provides a comprehensive feature set and an object-oriented programming language similar to Visual Basic.
Corona SDK: Widely used among game developers, Corona is also a popular, general-purpose framework. Corona Labs (formerly Ansca Mobile) claims an installed base of 120,000 developers. This high-end, commercial SDK offers over 500 APIs, as well as advertising and native UI support, and a built-in physics engine.
jQuery Mobile: This popular, lightweight HTML5-based framework is built on jQuery, and focuses on semantic markup, progressive enhancement, and themable design. It's the leading cross-platform framework among Eclipse open source developers.
Mono for Android: Xamarin's C#- and enterprise-oriented package is compatible with a similar iOS-based MonoTouch version, and can also share code with the C#-based Windows Phone. Mono supplies an environment conducive to Visual Basic developers, and is touted for its debugger and native binary compiler.
RhoMobile Suite: Motorola's mature, business-oriented framework features RhoConnect, RhoStudio, RhoElements, and a new RhoHub used for cloud app-building. RhoMobile is built on the Ruby language, the Rails Frameworks, and the MVC model.
SproutCore: This HTML5-driven framework offers a "clean" MVC architecture, and emphasizes performance optimization and scalability.
TheAppBuilder: JamPot's new HTML5-based native app-building app has received plenty of buzz. It features a codeless, drag-and-drop interface that lets users quickly build fairly rudimentary apps by filling in Q&A checklists. Highlights include extensive social networking integration and automated submissions to Google Play.
Additional Android-compatible development options include Andromo, Application Craft, Hypernext Android Creator (HAC), Jo, jQTouch, MIT App Inventor, Togosoft Device Browser, Unity Mobile, WebApp.Net, Wink Toolkit, xUI, and Zepto.js. For more options, check out these roundups of Android development software from BuildMobile, Daily Tekk, MobiGeni, and Technology Trend Analysis. Meanwhile, post your own favorites in the comments section below.