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
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
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
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
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
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
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
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
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 ✔ ✔ ✔
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
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/
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