Evaluation of cross-platform frameworks for mobile applications Andreas Sommer, Stephan Krusche Chair for Applied Software Engineering Technische Universität München (26.02.2013)
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Introduction • Increasing demand for mobile applications [Syb11] • High effort and costs to implement applications for multiple platform • Native SDKs result in responsive applications with native look and feel • A common code base could reduce time and effort for implementing and deploying an application to multiple platforms • 55% of production costs pertain to development and debugging [Vis12] ➡great savings could be achieved regarding invested time and resource for development 2
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Fragmentation of mobile platforms 3 3% 3% 4% 21% 70% Android iOS BlackBerry Microsoft Other Worldwide Smartphone Sales Q4 2012, http://www.gartner.com/newsroom/id/2335616 3% 4% 61% 32% Android iOS Microsoft Other Worldwide Tablet Sales 2012, http://www.gartner.com/newsroom/id/1980115 Tablets Smartphones
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Fragmentation within the same operating system 4 10.3% 45.7% 1.3% 29.0% 13.6% Jelly Bean (4.1 & 4.2) Ice Cream Sandwich (4.0) Honeycomb (3.x) Gingerbread (2.3) Eclair & Froyo (2.1 & 2.2) Android, Fragmentation on February 4, 2013 http://developer.android.com/about/dashboards/index.html 3.7% 11.9% 22.8% 61.5% iOS 6.1 iOS 6.0 iOS 5 Earlier iOS U.S. and Canadian iOS mobile web traffic on February 25, 2013 http://chitika.com/ios-version-distribution-update Android iOS
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Research questions • How can developers deploy their source code • to multiple platforms and • multiple versions of the same platform • without maintaining source code for multiple platforms in different programming languages? • Is it possible to develop applications in the same quality, but to save development and maintenance costs? 5
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Motivation • “Develop once, deploy everywhere” 7 Application Source Code
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Objectives and questions • Evaluation of cross-platform frameworks for the development of mobile business apps • From the point of view of the developing company • Are platform independent solutions competitive against native SDKs? • Where are differences? • Is HTML5 already suitable for mobile apps? 10
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Comparison • More than 30 frameworks considered (currently more than 80 frameworks / SDKs already available [1]) • Selection of 3 promising approaches for the detailed evaluation • Titanium (2.0) • Rhodes (3.3) • PhoneGap (2.0) with SenchaTouch (2.0) • Against 2 native SDKs • Android SDK (v10) • iOS SDK (5.1) 11 [1] https://en.wikipedia.org/wiki/Mobile_application_development#Platform_development_environment
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Comparison 12 Category Weight Functionality 4 Usability features 3 Developer support 2 Reliability & Performance 3 Deployment, Supportability, Costs 5 (1 = least important, 5 = most important)
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Titanium (2.0) 13 Legend: application framework virtual machine
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Rhodes (3.3) 14 Legend: application framework virtual machine
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche PhoneGap (2.0) & Sencha Touch (2.0) 15 Legend: application framework virtual machine
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Functionality • Cross-platform solutions support almost all basic functionality • app lifecycle (except Rhodes) • access to built-in hardware (e.g. sensors, camera) • networking • file system access • All of them are extensible by native code • Slightly behind native SDKs because specific functionality not implemented or abstracted 18 Category Weight Titanium Rhodes PhoneGap & Sencha Touch Android SDK iOS SDK Functionality 4 3 2 3 4 4
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Usability Features • Titanium is the only framework that supports native UI components (buttons, lists, etc.) • PhoneGap and Rhodes based on HTML ➡Hard to achieve native user experience ➡Native SDKs win this category • Cross-platform frameworks support all basic features and common types of UI components • HTML frameworks: Almost zero effort for porting 19 Category Weight Titanium Rhodes PhoneGap & Sencha Touch Android SDK iOS SDK Usability features 3 4 3 3 5 5
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Developer support • IDE provided except for PhoneGap • High learning effort for Rhodes (Ruby & JavaScript) • Full debugging capabilities • Documentation quality adequate • Not much difference to native SDKs 20 Category Weight Titanium Rhodes PhoneGap & Sencha Touch Android SDK iOS SDK Developer support 2 4 3 4 4 4
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Reliability & Performance • Native SDKs still way ahead in performance • JavaScript probably bad choice (lacks multithreading) • Titanium near to native speed, but misses methods for efficient loading of large images • Rhodes unusably slow • PhoneGap quite slow with Sencha Touch, but can be very performant with other UI frameworks (e.g. jQuery Mobile) or plain HTML • Reliability is acceptable with all solutions 21 Category Weight Titanium Rhodes PhoneGap & Sencha Touch Android SDK iOS SDK Reliability & Performance 3 3 2 2 4 5
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Development, Supportability, Costs • Professional support available • All solutions free to use and with free support (forums etc.) • Native SDKs have larger community • iOS more expensive to develop and only offers basic translation support (which was improved in iOS 6.0) 22 Category Weight Titanium Rhodes PhoneGap & Sencha Touch Android SDK iOS SDK Deployment, Supportability, Costs 5 4 4 4 4 3
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Recommendation: General 23 • “Write once, deploy everywhere” is possible • Less to no effort for porting the application • Functionality and quality are not much behind native SDKs • Major problems • Usability of the graphical user interface • Performance • Some frameworks can be recommended • Titanium • PhoneGap
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Recommendation: Selection of a framework 24 Criteria Titanium Rhodes PhoneGap / Sencha Touch HTML support ✔ ✔ ✔ Native components ✔ ↹ ↹ Performance ✔ ✗ ↹ Deployment as website ✗ ✗ ✔ Active development of the vendor ✔ ✔ ✔
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Counter example: Facebook • Facebook used mainly HTML5 for more than 2 years • In August 2012, they rebuilt their apps for iOS and Android completely using mostly native SDKs due to • Usability and user experience issues • Performance problems • Limited features: many device APIs not yet implemented [HHM12] 25 https://www.facebook.com/notes/facebook- engineering/ under-the-hood-rebuilding-facebook-for-ios/10151036091753920
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Marc Zuckerberg • “It was our biggest strategic mistake that we were betting too much on HTML5.” • “We just were not able get the quality that we wanted.” • “We burned 2 years and that’s really painful.” 26 http://www.rogiernoort.com/mark-zuckerberg-native-apps-for-ios-and-android-are-the-future/
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche Conclusion • Cross-platform frameworks recommended for high code reuse and fast deployment to multiple platforms • HTML very portable and customizable, but still too slow • PhoneGap: Good compromise between HTML and performance • Titanium: Best performance of the evaluated cross- platform solutions • Native SDK should be chosen if • user experience is important or native UI is required • performance is a concern 27
Evaluation of cross-platform frameworks for mobile applications Andreas Sommer Stephan Krusche References 28 [Vis12] VisionMobile, Developer Economics 2012. http:// www.visionmobile.com/ product/developer-economics-2012, June 2012 [Syb11] Sybase Inc. Enterprise, Mobility Guide 2011. http://www.sybase.de/ mobilityguide, 2011 [Ado12] Adobe Systems Inc., PhoneGap. http://phonegap.com, December 2012 [App12] Appcelerator Inc., Appcelerator Titanium. https://www.appcelerator.com/ platform, December 2012 [Mot12] Motorola Solutions Inc., RhoMobile Suite. http://rhomobile.com, December 2012. [Sen12] Sencha Inc, Sencha Touch. https://www.sencha.com/products/touch, December 2012. [HHM12] Frederick Hirsch and Dominique Hazae ̈l-Massieux. Device APIs Working Group. http://www.w3.org/2009/dap, December 2012. Master’s Thesis Sommer http://andidog.de/projects/#master-thesis