Source: https://blog.trigger.io“Making sense of mobile development platforms”
Explaining the terminology of Client-side Platforms:HTML5, Mobile Web, Native, Hybrid?
Complex topic, but lots of good resources Source: http://diveintohtml5.info
What is the ‘Mobile Web’? Refers to the mobile-optimized version of the web => so you use HTML4 / HTML5 just like a normal website united.com vs. mobile.united.com
Reuse code and styles with Responsive Design Source: http://www.treatdigital.com/
What is a ‘Native’ mobile app?Written using platform-specific languages and SDKs Objective-C for iPhone / iPad Java for Android C# for Windows PhoneDistributed in native app stores such as Apple’s App Store (the original one) Google Play (& others for Android) Windows Phone StoreUses advanced device features not available in HTML5 e.g. Contacts, Camera, Filesystem, Payments Push notifications, SMS Native UI elements
What is a ‘Hybrid’ mobile app?An app that uses advanced device featuresand can be distributed in native App StoresBut is built using a combination of native(platform-specific) and HTML5 languagesMost people use a framework to createtheseConsiderations:- Input languages- How much of the UI is native vs HTML5- Build / test cycle
Stack Showdown! HTML, JS, CSS Code HTML Frameworks? HTML, JS, CSS Code Browser Plugins Native Code Browser RuntimeNative Frameworks Native Frameworks Native Frameworks OS OS OSCPU … Sensors CPU … CPU … Sensors Native Mobile Web Hybrid
LinkedIn is hybrid…. so is Facebook (yes, still!) Facebook: “For areas within the app where we anticipate making changes more often, we will continue to utilize HTML5 code” Source: http://engineering.linkedin.com/mobile/linkedin-ipad-using-local-storage-snappy-mobile-apps https://www.facebook.com/notes/facebook-engineering/under-the-hood-rebuilding-facebook- for-ios/10151036091753920
An hybrid app in practice: HojokiSame HTML5 codebase for web, mobile web, native (built on http://trigger.io)
Runtimes vs. FrameworksRuntimes- Phonegap / Apache Cordova, Titanium, Trigger.ioStrict-sense frameworks- Help you define the UI (buttons, interactions)- Provide prepared logic to handle clicks, transitions, theming- Provide utility features that ECMAScript doesn’t have (date converters, pretty printing)- Handle cross-device access (to some extent)- Provide a layer of plugins of their own- Frameworks have every different approaches!- Many of them also offer integrated cloud services for data sync, user management, etc.
Framework approaches: Pure UI Source: http://jquerymobile.com
ConsiderationsHTML5 and Hybrid are young and evolving App Store was launched in 2008 Chrome 5 / FF 3.6 released in 2010 Mobile browsers rapidly improvingWhat are the most important characteristics of your app?Are you going to support one or many platforms and in what order?How are you going to iterate your apps after the initial release?What skills does your team have?Can you leverage existing code, libraries and communities?