How to pick the right development model for your next mobile project Conny Svensson Managing Architect and Strategist Mobility c.svensson@cgi.com @connysvensson ScanDev 2013
2
2
2
Web vs Native is irrelevant!
Every project is different!
Requirements and context Audience Time and budget Usage patterns Features Monetization Maintenance 4
Technology is only one part 5
Technology is only one part Business User Technology 5
We live in a multi-platform world!
7
7
7
Change is constant Android ios Symbian RIM Bada Windows Others 8
Change is constant 80,0 60,0 40,0 20,0 2007 2008 2009 10Q110Q210Q310Q411Q111Q211Q311Q412Q112Q212Q312Q4 Android ios Symbian RIM Bada Windows Others 8
9
9
We live in a multi-device world!
11
11
11
12
Hybrid Mobile website Cross compiling Responsive Web app Mixed hybrid Native Custom runtime Mobile platform 12
What s the difference? Mobile Web Site Mobile Web App Hybrid App Custom runtime Native App Mobile Browser Mobile Browser Wrapper App App HTML4/5 CSS2/3 JavaScript HTML5 CSS3 JavaScript App Framework HTML5 CSS3 JavaScript App Framework Bridge API JavaScript ActionScript Java C# Framework API Java Objective-C C# C/C++ Platform SDK Plugins Runtime Device API Device API Device API 13
Lets go through them one by one...
Responsive design 15
Responsive design 15
Responsive design 15
Responsive design 15
Responsive design 16
Responsive design @media screen and (min-width: 560px){!.ui-field-contain label.ui-slider {!! vertical-align: top;!! display: inline-block;!! width: 100%;!! margin: 0 2% 0 0;! }!.ui-field-contain div.ui-slider {!! display: block;!! width: 100%%;! }!.ui-field-contain.ui-hide-label div.ui-slider {!! display: block;!! width: auto;! } } 16
Responsive design Frameworks 1140 CSS Grid 320 and Up Amazium Base Foundation Gumby Kube Skeleton Twitter Bootstrap 17
Mobile web site 18
Mobile web site 18
Mobile web site Tools and services Mippin Mobify MobiSite Galore Mobstac Mofuse BMobilized Onbile Winksite Zinadoo 19
Mobile web app 20
Mobile web app 20
Mobile web app Frameworks DHTMLX Touch Dojo Mobile Jo jquery Mobile Kendo UI Sencha Touch Sproutcore The M-Project Wijmo 21
Hybrid Wrapper HTML5 CSS3 JavaScript App Framework Bridge API Plugins Device API 22
Hybrid 23
Hybrid 23
Hybrid 23
PhoneGap / Cordova It s your own custom branded web browser! 24
PhoneGap / Cordova It s your own custom branded web browser! 24
Custom Runtime App JavaScript ActionScript Java C/C++/C# Framework API Runtime Device API 25
Custom Runtime Frameworks Flash / Air (ActionScript) MoSync (C/C++) Titanium (JavaScript) Xamarin (C#) Cross compiling Codename One (Java) Java2ObjC (Java) 26
Native App Java Objective-C C# C/C++ Platform SDK Device API 27
Native 28
How do I choose?
Full capability Single platform Multiple platforms Partial capability 30
Native Java/Obj-C/C# Advanced UI Fastest performance Full access to platform App store distribution Full capability Single platform Multiple platforms Partial capability Web HTML/CSS/JavaScript No special tools or hardware Desktop reusability Limited access to device Unrestricted distribution 30
Native Java/Obj-C/C# Advanced UI Fastest performance Full access to platform App store distribution Single platform Full capability Custom Runtime Java/C#/JavaScript Native UI / Custom UI Partial access to device App store distribution Hybrid HTML5/CSS3/JavaScript Emulated native UI Partial access to device App store distribution Multiple platforms Partial capability Web HTML/CSS/JavaScript No special tools or hardware Desktop reusability Limited access to device Unrestricted distribution 30
Resources User experience and features 31
Resources Mobile platform Native Custom runtime Hybrid Web app Mobile website Responsive User experience and features 31
There are no silver bullets!
AppDevMoPr (App Development Model Picker) A tool helping you to choose the right development model based on your needs 33
AppDevMoPr (App Development Model Picker) A tool helping you to choose the right development model based on your needs http://admp.cgilabs.se BETA 33
Thank you! Conny Svensson c.svensson@cgi.com @connysvensson