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).
These multi-platform options are typically open source JavaScript frameworks with support for HTML5 and CSS. Aimed primarily at web developers, they are often used for migrating website content to app form.
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.
Platforms for Coding Beyond JavaScript
While PhoneGap and most of the leading frameworks are web-oriented HTML5/JavaScript apps that can tap native functions, some, like Appcelerator’s Titanium, generate native Java code. While this approach has potential performance advantages, it tends to limit code reusability.
Some frameworks specialize in programming environments beyond JavaScript. For example:
– 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)
– Flixel
– Unity3D.
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.
http://www.basic4ppc.com/android/why.html
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.
DHTMLX Touch: This JavaScript and AJAX library focuses on UI widgets, and is aimed at building HTML5-based apps.
Dojo Mobile: The Dojo community’s BSD-licensed HTML5/JavaScript framework has added MVC and app-controller packages, as well as mobile-specific components such as switches and sliders. A degree of PhoneGap compatibility is also available.
http://dojotoolkit.org/features/mobile
iUI: This lightweight web UI framework includes a JavaScript library, CSS support, and development images.
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.
Kendo UI: Telerik’s HTML5/JavaScript framework is available in open source and commercial versions. Kendo UI offers a wide selection of UI widgets and plugins, and provides an MVVM framework, performance optimization, and validation and internationalization features.
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.
MoSync SDK: MoSync supports C++, HTML5/JavaScript, or both on up to nine different platforms. The SDK is touted as being compatible with PhoneGap, as well MoSync’s own new HTML5/JavaScript-based native mobile app developer/simulator, MoSync Reload.
PhoneGap: Designed for JavaScript, HTML5, and CSS development, PhoneGap is now sponsored by Adobe and the Apache Foundation. The 2.0 version adds Windows Phone support, new CLI functions, and overhauled JavaScript libraries. It also debuts Cordova WebView, an embeddable HTML rendering control that uses Apache’s Cordova-JS API for tasks such as integrating PhoneGap code into larger native apps.
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.
Sencha Touch 2: Sencha’s popular HTML5/JavaScript framework provides 50 built-in components, state management, and an integrated MVC system. It now offers a free native packager that streamlines distribution to stores like Google Play.
http://www.sencha.com/products/touch/
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.
Titanium: Appcelerator claims its Android/iOS framework supports over 5,000 device and mobile-OS APIs. Unlike the more web-oriented frameworks, Titanium uses JavaScript to create native code, with claimed benefits in performance.
http://www.appcelerator.com/platform/titanium-sdk
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.