SlideShare a Scribd company logo
BUILDING CROSS-PLATFORM

WITHOUT SACRIFICING PERFORMANCE
LET’S IMAGINE

YOU’RE STARTING A
NEW DIGITAL PRODUCT

TODAY…
WHAT ARE THE CHOICES

YOU NEED TO MAKE?
STARTING FRESH
STARTING FRESH
CHOICES
▸ Desktop, mobile, web.. or all of the
above?
▸ Which technology stack to choose?
▸ How to recruit and build a team?
▸ Which features/platform to get to
market first?
▸ Full-size computer
▸ Smartphone
▸ Smart TV
▸ Tablet
▸ Wearables
▸ VR
INTERFACES TODAY
MOBILE IS KING
If you expect to compete you MUST
prioritize mobile.
▸ Mobile is the primary interface for most
users
▸ Vast majority of time is spent on mobile
devices
▸ Online revenue and commerce is
rapidly moving toward mobile
MOBILE WEB VS MOBILE APPS
LET’S TALK ABOUT
MOBILE WEB VS MOBILE APP
THE WEB IS A COMPELLING PLATFORM
▸ Open Standards
▸ Cross-platform
▸ URLs are awesome for usability
▸ Your site is just a Google search away
▸ No installation required
▸ We’ve become good at navigating the
web’s limitations
THE WEB PLATFORM
20 YEARS OF INFLUENCE
A lot of the really exciting application design
paradigms originated from the web.
In many ways, this is a product of the innovation
required to leverage the web for delivering
applications.
BUT…
THE WEB IS NOT CAPABLE OF DELIVERING
IMMERSIVE EXPERIENCES COMPARABLE
WITH NATIVE APPS.
FOR EXAMPLE
▸ Rich gestures and interactions
▸ Natural-feeling animations at 60fps
▸ Gyro, accelerometer
▸ Location services
▸ Push notifications
▸ Microphone, Music, Camera
▸ Bluetooth, NFC, Biometrics
▸ Offline Experiences
▸ Background services
▸ Native APIs such as contacts and
sharing
THE MOBILE EXPERIENCE
TOP MOBILE APPS
IF YOU’RE IN A HIGHLY COMPETITIVE SPACE
Delivering a mobile app is NOT optional.
IN MOST CASES
You’ll need to deliver on
▸ Android
▸ iPhone
▸ Web
… at the minimum.
HOW CAN WE

DELIVER ALL THAT?
DELIVERING A PRODUCT
LET’S DO THIS:
1. Hire a dedicated Android team that
understands Java and Android Studio
2. Hire a rockstar iOS team that understands
Swift and Xcode and Native SDKs
3. Hire a web team to do the HTML, CSS,
JavaScript (and one of the 387 JS
frameworks available today)
(Protip: You’ll need a backend too)
YOUR USERS WILL BE
VERY HAPPY.
PAYING THREE SEPARATE TEAMS
YOU’LL BE BUILDING MOST FEATURES THREE
TIMES AND…
DELIVERING A PRODUCT
SOME COMPANIES CAN AFFORD THREE TEAMS
But there are still challenges to this approach…
▸ The teams tend to be somewhat siloed
▸ Keeping feature parity between platforms is challenging
▸ It’s difficult to manage all those engineers
▸ Customer support for three different products
SHIP IT
IDEALLY…
We just want to build our App once and
deliver it to all our awesome users.
Even if they’re using Android.
or iPhone.
(or worse, Windows Phone)
CROSS-PLATFORM
LET’S TALK ABOUT
CROSS-PLATFORM TECHNOLOGIES
LUCKILY, WE HAVE A FEW OPTIONS
CROSS-PLATFORM TECHNOLOGIES
TWO APPROACHES TO CROSS-PLATFORM
▸ HTML5 Hybrid Approach (sometimes called a webview)

- for example Cordova or Ionic
▸ A framework that abstracts each platform’s native view components

- such as Xamarin, NativeScript and React Native
Both approaches need to expose features from the underlying SDK such as
access to camera or GPS.
HTML5 HYBRID / WEBVIEW
LET’S TALK ABOUT
HTML5
BACK IN 2009, WE GOT

A HOT NEW THING CALLED HTML5
▸ Flash wasn’t winning on mobile
▸ HTML5 was riding a wave of excitement
▸ Everyone thought HTML5 was the
answer to cross-platform
▸ PhoneGap and friends made some
strong promises for mobile
WHY?
The HTML5 Hybrid approach essentially augments the normal web
technologies with access to hardware features such as camera/
location/bluetooth.
Everyone was already familiar with web technologies.
HTML5
THE FACEBOOK HYBRID APP
▸ Around that time, Facebook did not have a successful mobile app.
▸ They decided to build on HTML5 hybrid technology
▸ Their hybrid app was released in 2010 for both iPhone and Android
1.5 STARS
“OUR BIGGEST MISTAKE WAS
BETTING TOO MUCH ON
HTML5“
Mark Zuckerberg - 2012
THE FACEBOOK HYBRID APP
THE FACEBOOK HYBRID APP
FACEBOOK WENT BACK AND FORMED
A NATIVE TEAM FOR IOS



AND ANOTHER FOR ANDROID
IS NOT AN OPTION
IF YOU'RE IN THE TOP 100

OR YOU COMPETE IN THAT LEAGUE,

SACRIFICING THE USER EXPERIENCE
WEB-BASED TECHNOLOGY HAS IMPROVED A LOT
But ultimately, it can’t compete with native on user experience or performance.
▸ Animations
▸ Gestures
▸ Response time
▸ Physics
▸ Memory consumption
HTML5
WHAT'S THE IDEAL
SOLUTION
for cross-platform?
THE CROSS PLATFORM HOLY GRAIL
WE WANT ALL OF THE FOLLOWING
▸ One expressive language/framework across iOS, Android (and ideally Web too)
▸ Native level performance
▸ Reasonable amount of code re-use while maintaining the native look and feel for
each platform
▸ Excellent user experience
▸ 60fps animations
LET’S TALK ABOUT

REACT
REACT FOR THE WEB
REACT
Just a year or so after their Hybrid App situation,

Facebook dreamed up a new thing called React.
▸ React was new and controversial
▸ Angular was the dominant web framework
▸ The early adopters of React were fueling some incredible innovation in the front-
end space.
▸ A lot of these ideas were very unpopular
“REACT IS PACKED WITH IDEAS
THAT WERE RADICAL AT THE TIME
OF ITS INTRODUCTION.”
Dan Abramov
REACT FOR THE WEB
REACT FOR THE WEB
We could spend a whole talk on how transformational React was at
the time.
▸ Declarative UI
▸ View as a function of state
▸ Immutability
▸ Composable UI components
▸ Batched, asynchronous rendering
BUT THERE’S ONE IMPORTANT CONCEPT
I WANT TO EXPLORE…
REACT
VIEW LOGIC
IT TELLS YOU VERY LITTLE ABOUT THE
UNDERLYING DISPLAY MEDIUM
If you look at that piece of code …
REACT
“THE BROWSER IS JUST AN
IMPLEMENTATION DETAIL”
Smart people in the React Community
REACT
REACT
In theory, React views could target any display medium, not just a
web browser.
In fact, several teams started trying it:
▸ Flipboard -> HTML5 Canvas
▸ Netflix -> “Gibbon” for Smart TVs
▸ (Some brave people) -> Terminal Interface
▸ … even a PDF renderer
REACT NATIVE
REACT CONF, JANUARY 2015
REACT NATIVE
▸ The same ideas powering React
▸ Truly native view components
▸ No HTML, CSS or Webviews
▸ Emphasis on performance
▸ Modern JavaScript
▸ iOS, Android and even Windows!
REACT NATIVE
FAMILIAR PRINCIPLES, NEW PRIMITIVES
LEARN ONCE, WRITE ANYWHERE.
React Native
CODE RE-USE
REACT NATIVE
CODE RE-USE
‣ Reasonable amount of code re-use while maintaining the
native look and feel for each platform.
‣ Android should feel like Android; iOS like iOS.
‣ You CAN maximize for code re-use and brand your app with
a similar look/feel across platforms if you choose.
REACT NATIVE
CODE RE-USE
‣ Your views, styling and business logic is 100% JavaScript
‣ You can even get some code re-use with React for web
(especially business logic)
PERFORMANCE
REACT NATIVE
PERFORMANCE
▸ Async, batched Rendering
▸ UI on a separate thread
▸ Take advantage of multi-core architectures
STYLING & LAYOUT
REACT NATIVE
STYLING & LAYOUT
▸ Styling and Layout is done 100% in JavaScript
▸ Some ideas are borrowed from CSS, specifically Flexbox
▸ Flexbox provides a powerful way to describe your layout.
ANIMATIONS
REACT NATIVE
ANIMATIONS
▸ React Native provides powerful, declarative animation constructs.
▸ The animations run fully in native, so the performance is smooth.
▸ Once you learn the API, it’s fairly intuitive.
▸ You get access to gestures such as swipes and scroll-based animations.
REACT NATIVE
REACT NATIVE AS A BUSINESS DECISION
DEVELOPER
EXPERIENCE
ONE OF THE REALLY GREAT
THINGS ABOUT THE
WEB…
The Developer Experience is top
notch.
DEVELOPER EXPERIENCE
BRINGING THE BEST OF THE WEB TO NATIVE
▸ Almost zero compile time
▸ Hot Reloading
▸ Develop on multiple devices simultaneously
▸ Dev tools make debugging painless
▸ Powerful layout using Flexbox
BUT…
JAVASCRIPT FOR REAL?
▸ JS is not as bad as it used to be!
▸ React Native is built on modern JS or
“ES Next”
▸ We get powerful constructs such as
async/await and Promises
▸ Optional Typing and strong compile-time
guarantees
YOU DON’T HAVE TO USE JS
ACTUALLY, TECHNICALLY
JAVASCRIPT ALTERNATIVES
THERE ARE LANGUAGES THAT WILL COMPILE TO JS
▸ TypeScript (from Microsoft)
▸ Scala
▸ ClojureScript
▸ Reason — New from the creators of React!
▸ Sound type system. Fully supported React Bindings.
▸ Used already in production by Facebook
COMMUNITY
JAVASCRIPT ALTERNATIVES
THE COMMUNITY AROUND REACT NATIVE IS GREAT
▸ Open Source UI kits, Navigation
▸ Dev Tooling
▸ Bindings to third-party SDKs (such as Voip or Analytics)
▸ Community Support
▸ Learning Resources
EXPO SNACK
INSTANTLY GET STARTED
EXPO ROCKS
▸ Go to the website
▸ Scan the QR code with your phone
▸ Edit code and instantly see the
results on your device!
SO WHAT’S THE FUTURE
OF NATIVE CODE?
FUTURE OF NATIVE CODE
CAN REACT NATIVE REPLACE JAVA/SWIFT?
▸ Not Really
▸ React Native is written in those native languages
▸ All the components that you use in your RN app are native components built in
native languages
▸ However, we’re seeing a shift where native languages are used by library/
component authors and React Native is used by app developers.
REACT NATIVE
FRONT-END ENGINEERING IS GOING
THROUGH A SORT OF RENAISSANCE
▸ Languages are evolving.
▸ Developer experience is improving.
▸ Barriers are coming down.
THANK YOU
@sstur_
I’m Simon.
I run a software agency:


We build and consult React Native.

More Related Content

PDF
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
PDF
Vered Flis: Because performance matters! Architecture Next 20
PPTX
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
PPTX
Will the Real Public API Please Stand Up? Amir Zuker
PDF
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
PDF
Real World Progressive Web Apps (Building Flipkart Lite)
PDF
Progressive Web Apps. What, why and how
PDF
Writing less code with Serverless on AWS at OOP 2022
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
Vered Flis: Because performance matters! Architecture Next 20
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Will the Real Public API Please Stand Up? Amir Zuker
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
Real World Progressive Web Apps (Building Flipkart Lite)
Progressive Web Apps. What, why and how
Writing less code with Serverless on AWS at OOP 2022

What's hot (18)

PPTX
We come in peace hybrid development with web assembly - Maayan Hanin
PDF
Charity Hound - Serverless, NoOps, The Tooth Fairy
PPTX
Azure IoT Central
PDF
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
PDF
1. Let's study web-development
PDF
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
PDF
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...
PDF
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
PDF
Ben Kehoe - Serverless Architecture for the Internet of Things
PDF
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
PDF
Patrick Debois - From Serverless to Servicefull
PDF
Adopting Java for the Serverless world at Serverless Meetup Singapore
PPTX
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
PDF
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
PDF
React & Redux, how to scale?
PDF
Make your animations perform well - Anna Migas - Codemotion Rome 2017
PDF
Rob Gruhl and Erik Erikson - What We Learned in 18 Serverless Months at Nords...
PPTX
How to build a SaaS solution in 60 days
We come in peace hybrid development with web assembly - Maayan Hanin
Charity Hound - Serverless, NoOps, The Tooth Fairy
Azure IoT Central
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
1. Let's study web-development
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
Ben Kehoe - Serverless Architecture for the Internet of Things
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Patrick Debois - From Serverless to Servicefull
Adopting Java for the Serverless world at Serverless Meetup Singapore
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
React & Redux, how to scale?
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Rob Gruhl and Erik Erikson - What We Learned in 18 Serverless Months at Nords...
How to build a SaaS solution in 60 days
Ad

Similar to "Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (KodeFox, Inc.) (20)

PPTX
Rise of the hybrids
PPTX
React Native - Build Native Mobile App
PDF
React Native Guide A Hybrid Framework for Mobile Apps
PDF
Advantages of building Social Media Apps in React Native
PDF
LAP II - Lezione 01 Introduzione al corso
PPTX
React Native And Its Ecosystem Presentation
PDF
Cross-platform mobile that Works - Coobers
PDF
HTML5 Can't Do That
PPTX
9 reasons why programmers should learn react native
PDF
Developing Apps With React Native
PPTX
Developing a Modern Mobile App Strategy
PPTX
Mobile Web Apps
PPTX
HTML5: The Apps, the Frameworks, the Controversy
PPTX
Native vs hybrid approach Mobile App Development
PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
PDF
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
PDF
A Guide to Mobile App Development - Web vs Native vs Hybrid.pdf
PDF
Reasons to Choose React Native for building Social Media/Networking Apps!
PDF
Native, Web App, or Hybrid: Which Should You Choose?
PDF
What to choose for Mobile app development- React Native vs Native.
Rise of the hybrids
React Native - Build Native Mobile App
React Native Guide A Hybrid Framework for Mobile Apps
Advantages of building Social Media Apps in React Native
LAP II - Lezione 01 Introduzione al corso
React Native And Its Ecosystem Presentation
Cross-platform mobile that Works - Coobers
HTML5 Can't Do That
9 reasons why programmers should learn react native
Developing Apps With React Native
Developing a Modern Mobile App Strategy
Mobile Web Apps
HTML5: The Apps, the Frameworks, the Controversy
Native vs hybrid approach Mobile App Development
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
A Guide to Mobile App Development - Web vs Native vs Hybrid.pdf
Reasons to Choose React Native for building Social Media/Networking Apps!
Native, Web App, or Hybrid: Which Should You Choose?
What to choose for Mobile app development- React Native vs Native.
Ad

More from Tech in Asia ID (20)

PDF
Sesi Tech in Asia PDC'21.pdf
PDF
"ILO's Work on Skills Development" by Project Coordinators International Labo...
PDF
"Women in STEM: Leveraging Talent in ICT Sector" by Maya Juwita (Executive Di...
PDF
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Ketiga Tahun 2018
PDF
LinkedIn Pitch Deck
PDF
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Kedua Tahun 2018
PDF
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Pertama Tahun 2018
PDF
Laporan Kondisi Pendanaan Startup di Indonesia Tahun 2017
PDF
"Less Painful iOS Development" by Samuel Edwin (Tokopedia)
PDF
"Product Development Story Loket.com" by Aruna Laksana (Loket.com)
PDF
"Making Data Actionable" by Budiman Rusly (KMK Online)
PDF
"DOKU under the hood : Infrastructure and Cloud Services Technology" by M. T...
PPTX
Citcall : Real-Time User Verification with Missed-Call Based OTP
PDF
"Functional Programming in a Nutshell" by Adityo Pratomo (Froyo Framework)
PDF
"Building High Performance Search Feature" by Setyo Legowo (UrbanIndo)
PDF
"Building Effective Developer-Designer Relationships" by Ifnu Bima (Blibli.com)
PDF
"Data Informed vs Data Driven" by Casper Sermsuksan (Kulina)
PDF
"Planning Your Analytics Implementation" by Bachtiar Rifai (Kofera Technology)
PDF
"How To Build and Lead a Winning Data Team" by Cahyo Listyanto (Bizzy.co.id)
PDF
"How Scrum Motivates People" by Rudy Rahadian (XL Axiata)
Sesi Tech in Asia PDC'21.pdf
"ILO's Work on Skills Development" by Project Coordinators International Labo...
"Women in STEM: Leveraging Talent in ICT Sector" by Maya Juwita (Executive Di...
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Ketiga Tahun 2018
LinkedIn Pitch Deck
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Kedua Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Pertama Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Tahun 2017
"Less Painful iOS Development" by Samuel Edwin (Tokopedia)
"Product Development Story Loket.com" by Aruna Laksana (Loket.com)
"Making Data Actionable" by Budiman Rusly (KMK Online)
"DOKU under the hood : Infrastructure and Cloud Services Technology" by M. T...
Citcall : Real-Time User Verification with Missed-Call Based OTP
"Functional Programming in a Nutshell" by Adityo Pratomo (Froyo Framework)
"Building High Performance Search Feature" by Setyo Legowo (UrbanIndo)
"Building Effective Developer-Designer Relationships" by Ifnu Bima (Blibli.com)
"Data Informed vs Data Driven" by Casper Sermsuksan (Kulina)
"Planning Your Analytics Implementation" by Bachtiar Rifai (Kofera Technology)
"How To Build and Lead a Winning Data Team" by Cahyo Listyanto (Bizzy.co.id)
"How Scrum Motivates People" by Rudy Rahadian (XL Axiata)

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Cloud computing and distributed systems.
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
Teaching material agriculture food technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Empathic Computing: Creating Shared Understanding
DOCX
The AUB Centre for AI in Media Proposal.docx
Understanding_Digital_Forensics_Presentation.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Cloud computing and distributed systems.
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
Teaching material agriculture food technology
Machine learning based COVID-19 study performance prediction
Per capita expenditure prediction using model stacking based on satellite ima...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Unlocking AI with Model Context Protocol (MCP)
Network Security Unit 5.pdf for BCA BBA.
“AI and Expert System Decision Support & Business Intelligence Systems”
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
NewMind AI Weekly Chronicles - August'25 Week I
MYSQL Presentation for SQL database connectivity
Empathic Computing: Creating Shared Understanding
The AUB Centre for AI in Media Proposal.docx

"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (KodeFox, Inc.)

  • 2. LET’S IMAGINE
 YOU’RE STARTING A NEW DIGITAL PRODUCT
 TODAY…
  • 3. WHAT ARE THE CHOICES
 YOU NEED TO MAKE? STARTING FRESH
  • 4. STARTING FRESH CHOICES ▸ Desktop, mobile, web.. or all of the above? ▸ Which technology stack to choose? ▸ How to recruit and build a team? ▸ Which features/platform to get to market first?
  • 5. ▸ Full-size computer ▸ Smartphone ▸ Smart TV ▸ Tablet ▸ Wearables ▸ VR INTERFACES TODAY
  • 6. MOBILE IS KING If you expect to compete you MUST prioritize mobile. ▸ Mobile is the primary interface for most users ▸ Vast majority of time is spent on mobile devices ▸ Online revenue and commerce is rapidly moving toward mobile
  • 7. MOBILE WEB VS MOBILE APPS LET’S TALK ABOUT
  • 8. MOBILE WEB VS MOBILE APP THE WEB IS A COMPELLING PLATFORM ▸ Open Standards ▸ Cross-platform ▸ URLs are awesome for usability ▸ Your site is just a Google search away ▸ No installation required ▸ We’ve become good at navigating the web’s limitations
  • 9. THE WEB PLATFORM 20 YEARS OF INFLUENCE A lot of the really exciting application design paradigms originated from the web. In many ways, this is a product of the innovation required to leverage the web for delivering applications.
  • 11. THE WEB IS NOT CAPABLE OF DELIVERING IMMERSIVE EXPERIENCES COMPARABLE WITH NATIVE APPS.
  • 12. FOR EXAMPLE ▸ Rich gestures and interactions ▸ Natural-feeling animations at 60fps ▸ Gyro, accelerometer ▸ Location services ▸ Push notifications ▸ Microphone, Music, Camera ▸ Bluetooth, NFC, Biometrics ▸ Offline Experiences ▸ Background services ▸ Native APIs such as contacts and sharing THE MOBILE EXPERIENCE
  • 13. TOP MOBILE APPS IF YOU’RE IN A HIGHLY COMPETITIVE SPACE Delivering a mobile app is NOT optional.
  • 14. IN MOST CASES You’ll need to deliver on ▸ Android ▸ iPhone ▸ Web … at the minimum.
  • 16. DELIVERING A PRODUCT LET’S DO THIS: 1. Hire a dedicated Android team that understands Java and Android Studio 2. Hire a rockstar iOS team that understands Swift and Xcode and Native SDKs 3. Hire a web team to do the HTML, CSS, JavaScript (and one of the 387 JS frameworks available today) (Protip: You’ll need a backend too)
  • 17. YOUR USERS WILL BE VERY HAPPY.
  • 18. PAYING THREE SEPARATE TEAMS YOU’LL BE BUILDING MOST FEATURES THREE TIMES AND…
  • 19. DELIVERING A PRODUCT SOME COMPANIES CAN AFFORD THREE TEAMS But there are still challenges to this approach… ▸ The teams tend to be somewhat siloed ▸ Keeping feature parity between platforms is challenging ▸ It’s difficult to manage all those engineers ▸ Customer support for three different products
  • 20. SHIP IT IDEALLY… We just want to build our App once and deliver it to all our awesome users. Even if they’re using Android. or iPhone. (or worse, Windows Phone)
  • 23. CROSS-PLATFORM TECHNOLOGIES TWO APPROACHES TO CROSS-PLATFORM ▸ HTML5 Hybrid Approach (sometimes called a webview)
 - for example Cordova or Ionic ▸ A framework that abstracts each platform’s native view components
 - such as Xamarin, NativeScript and React Native Both approaches need to expose features from the underlying SDK such as access to camera or GPS.
  • 24. HTML5 HYBRID / WEBVIEW LET’S TALK ABOUT
  • 25. HTML5 BACK IN 2009, WE GOT
 A HOT NEW THING CALLED HTML5 ▸ Flash wasn’t winning on mobile ▸ HTML5 was riding a wave of excitement ▸ Everyone thought HTML5 was the answer to cross-platform ▸ PhoneGap and friends made some strong promises for mobile
  • 26. WHY? The HTML5 Hybrid approach essentially augments the normal web technologies with access to hardware features such as camera/ location/bluetooth. Everyone was already familiar with web technologies. HTML5
  • 27. THE FACEBOOK HYBRID APP ▸ Around that time, Facebook did not have a successful mobile app. ▸ They decided to build on HTML5 hybrid technology ▸ Their hybrid app was released in 2010 for both iPhone and Android
  • 29. “OUR BIGGEST MISTAKE WAS BETTING TOO MUCH ON HTML5“ Mark Zuckerberg - 2012 THE FACEBOOK HYBRID APP
  • 30. THE FACEBOOK HYBRID APP FACEBOOK WENT BACK AND FORMED A NATIVE TEAM FOR IOS
 
 AND ANOTHER FOR ANDROID
  • 31. IS NOT AN OPTION IF YOU'RE IN THE TOP 100
 OR YOU COMPETE IN THAT LEAGUE,
 SACRIFICING THE USER EXPERIENCE
  • 32. WEB-BASED TECHNOLOGY HAS IMPROVED A LOT But ultimately, it can’t compete with native on user experience or performance. ▸ Animations ▸ Gestures ▸ Response time ▸ Physics ▸ Memory consumption HTML5
  • 33. WHAT'S THE IDEAL SOLUTION for cross-platform?
  • 34. THE CROSS PLATFORM HOLY GRAIL WE WANT ALL OF THE FOLLOWING ▸ One expressive language/framework across iOS, Android (and ideally Web too) ▸ Native level performance ▸ Reasonable amount of code re-use while maintaining the native look and feel for each platform ▸ Excellent user experience ▸ 60fps animations
  • 36. REACT FOR THE WEB REACT Just a year or so after their Hybrid App situation,
 Facebook dreamed up a new thing called React. ▸ React was new and controversial ▸ Angular was the dominant web framework ▸ The early adopters of React were fueling some incredible innovation in the front- end space. ▸ A lot of these ideas were very unpopular
  • 37. “REACT IS PACKED WITH IDEAS THAT WERE RADICAL AT THE TIME OF ITS INTRODUCTION.” Dan Abramov REACT FOR THE WEB
  • 38. REACT FOR THE WEB We could spend a whole talk on how transformational React was at the time. ▸ Declarative UI ▸ View as a function of state ▸ Immutability ▸ Composable UI components ▸ Batched, asynchronous rendering
  • 39. BUT THERE’S ONE IMPORTANT CONCEPT I WANT TO EXPLORE…
  • 40. REACT
  • 41. VIEW LOGIC IT TELLS YOU VERY LITTLE ABOUT THE UNDERLYING DISPLAY MEDIUM If you look at that piece of code …
  • 42. REACT
  • 43. “THE BROWSER IS JUST AN IMPLEMENTATION DETAIL” Smart people in the React Community REACT
  • 44. REACT In theory, React views could target any display medium, not just a web browser. In fact, several teams started trying it: ▸ Flipboard -> HTML5 Canvas ▸ Netflix -> “Gibbon” for Smart TVs ▸ (Some brave people) -> Terminal Interface ▸ … even a PDF renderer
  • 45. REACT NATIVE REACT CONF, JANUARY 2015
  • 46. REACT NATIVE ▸ The same ideas powering React ▸ Truly native view components ▸ No HTML, CSS or Webviews ▸ Emphasis on performance ▸ Modern JavaScript ▸ iOS, Android and even Windows!
  • 48. LEARN ONCE, WRITE ANYWHERE. React Native
  • 50. REACT NATIVE CODE RE-USE ‣ Reasonable amount of code re-use while maintaining the native look and feel for each platform. ‣ Android should feel like Android; iOS like iOS. ‣ You CAN maximize for code re-use and brand your app with a similar look/feel across platforms if you choose.
  • 51. REACT NATIVE CODE RE-USE ‣ Your views, styling and business logic is 100% JavaScript ‣ You can even get some code re-use with React for web (especially business logic)
  • 53. REACT NATIVE PERFORMANCE ▸ Async, batched Rendering ▸ UI on a separate thread ▸ Take advantage of multi-core architectures
  • 55. REACT NATIVE STYLING & LAYOUT ▸ Styling and Layout is done 100% in JavaScript ▸ Some ideas are borrowed from CSS, specifically Flexbox ▸ Flexbox provides a powerful way to describe your layout.
  • 57. REACT NATIVE ANIMATIONS ▸ React Native provides powerful, declarative animation constructs. ▸ The animations run fully in native, so the performance is smooth. ▸ Once you learn the API, it’s fairly intuitive. ▸ You get access to gestures such as swipes and scroll-based animations.
  • 58. REACT NATIVE REACT NATIVE AS A BUSINESS DECISION
  • 60. ONE OF THE REALLY GREAT THINGS ABOUT THE WEB… The Developer Experience is top notch.
  • 61. DEVELOPER EXPERIENCE BRINGING THE BEST OF THE WEB TO NATIVE ▸ Almost zero compile time ▸ Hot Reloading ▸ Develop on multiple devices simultaneously ▸ Dev tools make debugging painless ▸ Powerful layout using Flexbox
  • 63. JAVASCRIPT FOR REAL? ▸ JS is not as bad as it used to be! ▸ React Native is built on modern JS or “ES Next” ▸ We get powerful constructs such as async/await and Promises ▸ Optional Typing and strong compile-time guarantees
  • 64. YOU DON’T HAVE TO USE JS ACTUALLY, TECHNICALLY
  • 65. JAVASCRIPT ALTERNATIVES THERE ARE LANGUAGES THAT WILL COMPILE TO JS ▸ TypeScript (from Microsoft) ▸ Scala ▸ ClojureScript ▸ Reason — New from the creators of React! ▸ Sound type system. Fully supported React Bindings. ▸ Used already in production by Facebook
  • 67. JAVASCRIPT ALTERNATIVES THE COMMUNITY AROUND REACT NATIVE IS GREAT ▸ Open Source UI kits, Navigation ▸ Dev Tooling ▸ Bindings to third-party SDKs (such as Voip or Analytics) ▸ Community Support ▸ Learning Resources
  • 69. INSTANTLY GET STARTED EXPO ROCKS ▸ Go to the website ▸ Scan the QR code with your phone ▸ Edit code and instantly see the results on your device!
  • 70. SO WHAT’S THE FUTURE OF NATIVE CODE?
  • 71. FUTURE OF NATIVE CODE CAN REACT NATIVE REPLACE JAVA/SWIFT? ▸ Not Really ▸ React Native is written in those native languages ▸ All the components that you use in your RN app are native components built in native languages ▸ However, we’re seeing a shift where native languages are used by library/ component authors and React Native is used by app developers.
  • 72. REACT NATIVE FRONT-END ENGINEERING IS GOING THROUGH A SORT OF RENAISSANCE ▸ Languages are evolving. ▸ Developer experience is improving. ▸ Barriers are coming down.
  • 73. THANK YOU @sstur_ I’m Simon. I run a software agency: 
 We build and consult React Native.