Upload
jacques-de-vos
View
565
Download
0
Embed Size (px)
Citation preview
@jacdevos [email protected]
Hybrid vs native mobileshowdown!
@jacdevos [email protected]
Are you building a mobile app?
@jacdevos [email protected]
Why is mobile development so hard?
@jacdevos [email protected]
@jacdevos [email protected]
Mobile/tablet operating system internet usage
http://marketshare.hitslink.com
@jacdevos [email protected]
You have to support multiple operating systems
Users don’t care about your preferences
@jacdevos [email protected]
Platforms are differentWe underestimate the learning costs
@jacdevos [email protected]
Technology changes fast often changes before our project is complete
@jacdevos [email protected]
Evolution of Swift (iOS)• June 2013 – Swift programming language does not exist
• June 2014 – Swift 1 is announced
• June 2015 – Swift 2 is announced (BREAKING CHANGES)
• June 2016 – Swift 3 is announced (BREAKING CHANGES)
• REALLY?
@jacdevos [email protected]
Mobile technology stack options?
@jacdevos [email protected]
Pure Native
@jacdevos [email protected]
Who has done some native development?
@jacdevos [email protected]
Mobile website Responsively designed
@jacdevos [email protected]
Semi-‐nativeC# compiled to native machine code
@jacdevos [email protected]
Semi-‐nativeJavaScript calls native
@jacdevos [email protected]
HybridHTML + Cordova + Angular2 + Ionic2
@jacdevos [email protected]
Contenders for the mobile stackNative SDK rendering:1. Pure Native: iOS and Android2. Semi-‐native: Xamarin3. Semi-‐native: React NativeBrowser HTML rendering:1. Hybrid: Ionic2 or Cordova2. Mobile website: responsive design
@jacdevos [email protected]
How do you choose a technology stack?
@jacdevos [email protected]
Do you choose the “new and shiny” precious one?
Do you choose the “new and shiny” precious one?
@jacdevos [email protected] you choose based on your fanaticismDo you choose based on your fanaticism
@jacdevos [email protected] you choose what you know?Do you choose what you know?
@jacdevos [email protected]
Rather: start with the business Quality of Service (QoS) needs
@jacdevos [email protected]
Consider the real QoS factors first• User experience• Maintenance costs including:– Learnability: ease of upskilling– Reuse: write once, run anywhere
• The ability to deliver quickly• Other subtle business needs
@jacdevos [email protected]
What are the trade-‐offs?
@jacdevos [email protected]
The Potential for User Experience
@jacdevos [email protected]
@jacdevos [email protected]
A great User Experience is always expected!
@jacdevos [email protected]
@jacdevos [email protected]
Native has a higher potential for UX
@jacdevos [email protected]
“the biggest mistake that we made as a company is betting too much on HTML5 as opposed to native….”
-‐Mark Zuckerberg, CEO of Facebook
@jacdevos [email protected]
@jacdevos [email protected]
@jacdevos [email protected]
User Experience Potential
Pure Native
iOS and Android
Semi-‐native
Xamarin
Semi-‐native
React Native
HybridIonic2/Cordova
Mobi w
ebsite
Native paradigm
Speed of interaction
Ease of using interesting native SDK
Visualisation libs
@jacdevos [email protected]
3
2 2
0
-‐2
PURE NATIVEIOS AND ANDROID
SEMI-‐NATIVEXAMARIN
SEMI-‐NATIVEREACT NATIVE
HYBRIDIONIC2/CORDOVA
MOBI WEBSITE
User Experience Potential
@jacdevos [email protected]
Learnability: ease of upskilling
@jacdevos [email protected]
@jacdevos [email protected]
Learnability: ease of upskilling
Pure Native
iOS and Android
Semi-‐native
Xamarin
Semi-‐native
React Native
HybridIonic2/Cordova
Mobi w
ebsite
Stackoverflowabiliy: help availability(+ long term support)
Framework knowledge required (multiple teams!?)
Amount of tools required
@jacdevos [email protected]
-‐1 -‐1
-‐2
2
3
PURE NATIVEIOS AND ANDROID
SEMI-‐NATIVEXAMARIN
SEMI-‐NATIVEREACT NATIVE
HYBRIDIONIC2/CORDOVA
MOBI WEBSITE
Learnability: Ease of development
@jacdevos [email protected]
Reuse: write once, run anywhere
@jacdevos [email protected]
@jacdevos [email protected]
@jacdevos [email protected]
Reuse: write once, runanywhere
Pure Native
iOS and Android
Semi-‐native
Xamarin
Semi-‐native
React Native
HybridIonic2/Cordova
Mobi w
ebsite
Reuse business logic
Reuse User Interface logic
Workarounds needed
@jacdevos [email protected]
-‐1
0 0
1
3
PURE NATIVEIOS AND ANDROID
SEMI-‐NATIVEXAMARIN
SEMI-‐NATIVEREACT NATIVE
HYBRIDIONIC2/CORDOVA
MOBI WEBSITE
Portability and Reuse
@jacdevos [email protected]
The ability to deliver quickly
@jacdevos [email protected]
@jacdevos [email protected]
Continuous DeliveryPush updates without App Store
• Only JavaScript is given this privilege by Apple• Ionic Platform Deploy for Ionic• AppHub Deploy for React Native
@jacdevos [email protected]
Speed of development
Pure Native
iOS and Android
Semi-‐native
Xamarin
Semi-‐native
React Native
HybridIonic2/Cordova
Mobi w
ebsite
Speed of deploymentor patch
Ease of testing cross-‐platforms
Require multiple version support
@jacdevos [email protected]
-‐3 -‐3
0
2
3
PURE NATIVEIOS AND ANDROID
SEMI-‐NATIVEXAMARIN
SEMI-‐NATIVEREACT NATIVE
HYBRIDIONIC2/CORDOVA
MOBI WEBSITE
Speed of development
@jacdevos [email protected]
There are other options too
@jacdevos [email protected]
Some options are not linear• Hybrid native (Turbolinks)• Cross-‐native (Xamarin Forms)• Progressive Web Apps – Service Worker• NativeScript
@jacdevos [email protected]
So, which stack is right?
@jacdevos [email protected]
Most native
Least native
Cost EffectivenessUser Experience Potential
There is a trade-‐off
@jacdevos [email protected]
When choosing a tech stack• Be aware of your biases and bigotry• Understand your business needs well• Understand the subtleties of the trade-‐offs
@jacdevos [email protected]
Hybrid or native mobile?It depends!