@jacdevos jacques@nreality.com
Hybrid	
  vs	
  native	
  mobile
showdown!
@jacdevos jacques@nreality.com
Are	
  you	
  building	
  a	
  mobile	
  app?
@jacdevos jacques@nreality.com
Why	
  is	
  mobile	
  development	
  so	
  hard?
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
Mobile/tablet	
  operating	
  system	
  internet	
  usage
http://marketshare.hitslink.com
@jacdevos jacques@nreality.com
You	
  have to	
  support	
  multiple	
  
operating	
  systems
Users	
  don’t	
  care	
  about	
  your	
  preferences
@jacdevos jacques@nreality.com
Platforms	
  are	
  different
We	
  underestimate	
  the	
  learning	
  costs
@jacdevos jacques@nreality.com
Technology	
  changes	
  fast	
  
often	
  changes	
  before	
  our	
  project	
  is	
  complete
@jacdevos jacques@nreality.com
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 jacques@nreality.com
Different	
  and	
  changing	
  tech
=
expensive	
  and	
  slow	
  to	
  development
@jacdevos jacques@nreality.com
Mobile	
  technology	
  
stack	
  options?
@jacdevos jacques@nreality.com
Pure	
  Native
@jacdevos jacques@nreality.com
Who	
  has	
  done	
  some native	
  
development?
@jacdevos jacques@nreality.com
Mobile	
  website	
  
Responsively	
  designed
@jacdevos jacques@nreality.com
Semi-­‐native
C#	
  compiled	
  to	
  native	
  machine	
  code
@jacdevos jacques@nreality.com
Semi-­‐native
JavaScript	
  calls	
  native
@jacdevos jacques@nreality.com
Hybrid
HTML	
  +	
  Cordova	
  +	
  Angular2	
  +	
  Ionic2
@jacdevos jacques@nreality.com
Contenders	
  for	
  the	
  mobile	
  stack
Native	
  SDK	
  rendering:
1. Pure	
  Native:	
  iOS	
  and	
  Android
2. Semi-­‐native:	
  Xamarin
3. Semi-­‐native:	
  React	
  Native
Browser	
  HTML	
  rendering:
1. Hybrid:	
  Ionic2	
  or	
  Cordova
2. Mobile	
  website:	
  responsive	
  design
@jacdevos jacques@nreality.com
How	
  do	
  you	
  choose	
  a	
  
technology	
  stack?
@jacdevos jacques@nreality.com
Do	
  you	
  choose	
  the	
  “new	
  and	
  shiny”	
  
precious	
  one?
Do	
  you	
  choose	
  the	
  “new	
  and	
  shiny”	
  
precious	
  one?
@jacdevos jacques@nreality.comDo	
  you	
  choose	
  based	
  on	
  your	
  fanaticismDo	
  you	
  choose	
  based	
  on	
  your	
  fanaticism
@jacdevos jacques@nreality.comDo	
  you	
  choose	
  what	
  you	
  know?Do	
  you	
  choose	
  what	
  you	
  know?
@jacdevos jacques@nreality.com
Rather:	
  start	
  with	
  the	
  business	
  
Quality	
  of	
  Service	
  (QoS)	
  needs
@jacdevos jacques@nreality.com
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 jacques@nreality.com
What	
  are	
  the	
  trade-­‐offs?
@jacdevos jacques@nreality.com
The	
  Potential	
  for	
  User	
  Experience
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
A	
  great	
  User	
  Experience	
  
is	
  always expected!
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
Native	
  has	
  a	
  higher	
  potential	
  for	
  UX
@jacdevos jacques@nreality.com
“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 jacques@nreality.com
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
User	
  Experience	
  
Potential
Pure	
  Native
iOS	
  and	
  Android
Semi-­‐native
Xamarin
Semi-­‐native
React	
  Native
Hybrid
Ionic2/Cordova
Mobi	
  website
Native	
  paradigm	
  
Speed	
  of	
  interaction	
  
Ease	
  of	
  using	
  interesting	
  native	
  SDK
Visualisation libs
@jacdevos jacques@nreality.com
3
2 2
0
-­‐2
PURE	
  NATIVE
IOS	
  AND	
  
ANDROID
SEMI-­‐NATIVE
XAMARIN
SEMI-­‐NATIVE
REACT	
  NATIVE
HYBRID
IONIC2/CORDOVA
MOBI	
  WEBSITE
User	
  Experience	
  Potential
@jacdevos jacques@nreality.com
Learnability:	
  ease	
  of	
  upskilling
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
Learnability:	
  
ease	
  of	
  upskilling
Pure	
  Native
iOS	
  and	
  Android
Semi-­‐native
Xamarin
Semi-­‐native
React	
  Native
Hybrid
Ionic2/Cordova
Mobi	
  website
Stackoverflowabiliy:	
  help	
  availability
(+	
  long	
  term	
  support)
Framework	
  knowledge	
  required	
  
(multiple	
  teams!?)
Amount	
  of	
  tools	
  required
@jacdevos jacques@nreality.com
-­‐1 -­‐1
-­‐2
2
3
PURE	
  NATIVE
IOS	
  AND	
  
ANDROID
SEMI-­‐NATIVE
XAMARIN
SEMI-­‐NATIVE
REACT	
  NATIVE
HYBRID
IONIC2/CORDOVA
MOBI	
  WEBSITE
Learnability:	
  Ease	
  of	
  development
@jacdevos jacques@nreality.com
Reuse:	
  write	
  once,	
  run	
  anywhere
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
Reuse:	
  write once,	
  run
anywhere
Pure	
  Native
iOS	
  and	
  Android
Semi-­‐native
Xamarin
Semi-­‐native
React	
  Native
Hybrid
Ionic2/Cordova
Mobi	
  website
Reuse	
  business	
  logic
Reuse	
  User Interface logic
Workarounds	
  needed
@jacdevos jacques@nreality.com
-­‐1
0 0
1
3
PURE	
  NATIVE
IOS	
  AND	
  
ANDROID
SEMI-­‐NATIVE
XAMARIN
SEMI-­‐NATIVE
REACT	
  NATIVE
HYBRID
IONIC2/CORDOVA
MOBI	
  WEBSITE
Portability	
  and	
  Reuse
@jacdevos jacques@nreality.com
The	
  ability	
  to	
  deliver	
  quickly
@jacdevos jacques@nreality.com
@jacdevos jacques@nreality.com
Continuous	
  Delivery
Push	
  updates	
  without	
  App	
  Store
• Only	
  JavaScript	
  is	
  given	
  this	
  privilege	
  by	
  Apple
• Ionic	
  Platform	
  Deploy	
  for	
  Ionic
• AppHub Deploy	
  for	
  React	
  Native
@jacdevos jacques@nreality.com
Speed	
  of	
  development
Pure	
  Native
iOS	
  and	
  Android
Semi-­‐native
Xamarin
Semi-­‐native
React	
  Native
Hybrid
Ionic2/Cordova
Mobi	
  website
Speed	
  of	
  deploymentor	
  patch
Ease	
  of	
  testing	
  cross-­‐platforms
Require	
  multiple	
  version	
  support
@jacdevos jacques@nreality.com
-­‐3 -­‐3
0
2
3
PURE	
  NATIVE
IOS	
  AND	
  
ANDROID
SEMI-­‐NATIVE
XAMARIN
SEMI-­‐NATIVE
REACT	
  NATIVE
HYBRID
IONIC2/CORDOVA
MOBI	
  WEBSITE
Speed	
  of	
  development
@jacdevos jacques@nreality.com
There	
  are	
  other	
  options	
  too
@jacdevos jacques@nreality.com
Some	
  options	
  are	
  not	
  linear
• Hybrid	
  native	
  (Turbolinks)
• Cross-­‐native	
  (Xamarin Forms)
• Progressive	
  Web	
  Apps	
  – Service	
  Worker
• NativeScript
@jacdevos jacques@nreality.com
So,	
  which	
  stack	
  is	
  right?
@jacdevos jacques@nreality.com
Most	
  
native
Least	
  
native
Cost	
  Effectiveness
User	
  Experience	
  Potential
There	
  is	
  a	
  trade-­‐off
@jacdevos jacques@nreality.com
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 jacques@nreality.com
Hybrid	
  or	
  native	
  mobile?
It	
  depends!

Hybrid vs native mobile development – how to choose a tech stack