Mobile development framework
A mobile development framework is a software framework that is designed to support mobile app development. It is a software library that provides a fundamental structure to support the development of applications for a specific environment.
Frameworks can be in three categories: native frameworks for platform-specific development, mobile web app frameworks, and hybrid apps, which combine the features of both native and mobile web app frameworks.
Current frameworks
Framework | License | Framework target | Development languages | Target platform | Other device support | Without recompiling development | Enterprise data synchronization | Multi-threaded applications | File uploading | Image library browsing | In application email | Application distribution support | Distribution analytics | Self-contained, no web required | Web services | Mobile APIs support | Able to access the web for data | Geolocation support | Vibration support | Accelerometer support | Sound (play) support | Sound (record) support | Camera support | Zeroconf (Bonjour) support | XMPP support | File system IO support | Gesture / Multi-touch support | Device Motion Event (accelerometer) support | Device orientation event (accelerometer) support | Native date/time picker support | SMS support | Telephone support | Maps support | Orientation change support | Contact support | SQLite support | Native language application development support | Graph library support |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Apache Cordova | Apache Public License v2 | Embedded applications | HTML, JavaScript and CSS | iOS, Android, Windows Phone, BlackBerry, Symbian, Palm WebOS, WAC | Web, Bada and various desktop OS | No | No | No | Yes | No | ? | No | No | Yes | ? | ? | Yes | Yes | Yes | Yes, BlackBerry requires OS 4.7 | Yes | Yes | Yes | ? | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | Yes | Yes | Yes, not possible on BlackBerry | No | ? |
Codename One | GPL+CPE | Java | iOS, Android, Windows Phone, BlackBerry, Symbian | Windows, Linux & macOS | ? | ? | Yes | Yes | Yes | Yes | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (external) | Yes (external) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Crosswalk Project | BSD License | Web and Hybrid applications | HTML5, JavaScript, and CSS | iOS, Android | Tizen, Linux, and Windows 10 desktop, | No | No | Yes | Yes | Yes | N/A | No | No | Yes | ? | Crosswalk WebAPI, Device API, and Embedded API | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
Enyo | Apache License v2.0 | Web applications | HTML5, CSS3, JavaScript | iOS, Android, Windows Phone, BlackBerry, Palm WebOS | Tablet, desktop and web environments, Tizen, Firefox OS | Yes, for web apps | ? | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||||||
Kivy | MIT | Embedded and enterprise applications | Python | iOS, Android | Linux, macOS & Windows | No | ? | Partial (Python-based.) | Yes | Yes | Yes | Yes | No | Yes | ? | Yes (In progress) | Yes | No (On roadmap) | No | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | No | Yes | No |
NEXT | Apache License v2.0 | Web applications | GWT, HTML5, CSS3, JavaScript, Java | iOS, Android, BlackBerry, Palm WebOS | Bada, BlackBerry PlayBook, MeeGo | ? | Yes, Offline Support | Yes (JSONP, JSON, GWT RPC) | No (On roadmap) | Yes | Yes | Yes | No (On roadmap) | Yes | No | No | Yes, via Cordova | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No (On roadmap) | Yes | No | No | |||||||||
NSB/AppStudio | Commercial | Web applications | BASIC, JavaScript, HTML and CSS | iOS, Android, Windows Phone, BlackBerry, Symbian, Palm WebOS | Tablets, desktop and web environments | ? | No | Yes | Yes, via Cordova | Yes, via Cordova | Yes | No | No | Yes | Yes | Yes (Sencha Touch, JQTouch, etc.) | Yes | Yes | Yes, via Cordova | Yes | Yes | Yes, via Cordova | Yes, via Cordova | ? | Yes, via Cordova | Yes, via Cordova | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes, via Cordova | Yes | No | Yes, via HTML5 SVG or Canvas |
Pega AMP | Commercial | Hybrid, native and enterprise applications[1] | HTML5, CSS3, JavaScript, Java, Native code or a combination of both | iOS, Android, Windows Phone, BlackBerry | Tablets | No | Yes | Yes | No | No | No | Yes | Yes | Yes, Offline Support | Yes | Yes | Yes | Yes | Yes, via Cordova | Yes, via Cordova | Yes, via Cordova or HTML5 Audio | Yes, via Cordova | Yes, via Cordova | Yes, via Cordova | Yes, via Cordova | Yes | Yes, via Cordova | Yes, via Cordova | ? | ? | Yes | Yes | Yes | Yes, via Cordova | Yes, based on device support | Yes | Compatible with other libraries | |
RhoMobile Suite | MIT | Embedded applications | HTML, JavaScript, Ruby | iOS, Windows Phone, BlackBerry, Symbian | Tablets and Windows (Win32) | ? | Yes, via RhoConnect | Yes, via Ruby | Yes | Yes | ? | Yes, via RhoGallery | No | Yes | Yes (REST or SOAP with JSON or XML) | ? | Yes | Yes | Yes | Yes | Yes | ? | Yes | ? | ? | Yes | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes, via Rhodes extensions | Yes, via HTML5 SVG or Canvas |
Sencha Touch | GPL v3 (+commercial edition) | Web applications | HTML5, CSS3, JavaScript | iOS, Android, Windows Phone, BlackBerry | Webkit desktop browsers (Chrome, Safari) | ? | Yes, Offline Support | Yes (JSONP, JSON) | Yes | Yes via Cordova | Yes, via Cordova | Yes | Yes | Yes | No | No | No (On roadmap) | Yes | Through Cordova | Yes | ||||||||||||||||||
React Native | MIT | Native applications | Javascript with ES6 syntax support | (Android, iOS, Web, Windows[UWP] | windows, Linux, macOS, Android studio | |||||||||||||||||||||||||||||||||
Ionic | MIT | |||||||||||||||||||||||||||||||||||||
Xamarin | Propriété de Microsoft depuis 2016 |
Discontinued and obsolete frameworks
- IPFaces mobile framework - last updated in 2013
- iUI - last stable release in 2009
- MoSync - discontinued, last updated in 2013
History
With mobile device manufacturers each having its own preferred development environment, a growth mobile phone application developments that are World Wide Web capable and a large population of HTML savvy developers, there has arisen web-based application frameworks to help developers write applications that can be deployed on multiple devices.
March 6, 2008 - the first iPhone SDK beta is released to a limited number of developers (4,000).
March 12, 2008 - the first versions of the QuickConnectJavaScript, QuickConnectPHP, and QuickConnectErlang frameworks made available to the public. These were focused on easing browser - server communication. QuickConnectJavaScript was the basis from which the first versions of QuickConnect for the iPhone were developed.
April 8, 2008 - iPhone OS 2.0b3 Beta 3 is released to the same set of developers. Lee Barney begins development of QuickConnect for the iPhone as a hybrid application framework. This is the first iPhone SDK release that included the UIWebView component. This component allows applications to display HTML and CSS pages and run JavaScript. No database support was included at this time. QuickConnect for the iPhone development began. It was a port and partial re-write of the earlier QuickConnectJavaScript 1.0 framework that had been made available in March of the same year.
May 23, 2008 - Lee Barney publishes a seminal posting 'UIWebView Example Code' on the tetontech blog describing and providing source code on how to call from JavaScript to Objective-C and from Objective-C back up to JavaScript. This posting has had over 60,000 hits.
May 29, 2008 - iPhone OS 2.0b6 Beta 6 is released. This is the first version of the UIWebView that included SQLite database support.
July 11, 2008 - iPhone OS 2.0 and the first release version of the iPhone SDK released. All developers could now download the SDK if they registered.
August 2008 iPhoneDevCamp in San Francisco - Nitobi begins development of PhoneGap.
November 11, 2008 - A port of QuickConnect made available for Mac desktop and laptop systems.
December 16, 2008 - version 1.0 of QuickConnect for the iPhone released. This included support for embedded Google maps, geolocation, SQLite support both in the browser and with installed databases, an AJAX wrapper, drag-and-drop, phone, email, audio file recording and playing, as well as other features.
January 16, 2009 - version 1.0 beta 1 of QuickConnect for Android released. This release was an eclipse project that could be imported by the user into their workspace.
August 29, 2009 - version 1.5 of QuickConnect for the iPhone released.
November 11, 2009 - version 1.6 beta 6 of the QuickConnect family made available. This included the first support for Palm WebOS. This support was provided by an Xcode template that would build, install, and run the application into the PalmWebOS emulator. An Xcode template for Android 2.0 was also added. This template would build for both the emulator and the Android app store as well as install and run the application on the Android emulator. Templates were now available for the iPhone, Android, and Palm webOS mobile devices.
See also
- Flutter (software) - open-source software development kit created by Google, used to develop applications for Android, iOS, Windows, Mac, Linux, and the web.
- Online JavaScript IDE for hybrid applications