SlideShare a Scribd company logo
React Native?
A developer's perspective
GenevaWeb, November 19, 2018 - Boris Conforty
I have an idea

My boss has an idea

I want to explore and find an idea

I want to learn and find a job

I need and app for my multi-billion people user base
I am a developer*

I want to become a developer*

I want to hire a developer*

I'm just curious about technology*

I'm Facebook
* mobile
React Native? A developer's perspective
The Google Joongle
Hundreds of opinions and stories 

Tens of tools

Numerous languages
Go native ⟶ Xcode, Android Studio

Go cross-platform ⟶ hybrid (HTML 5)
Richest Man in the Jungle
"The biggest mistake we made as a company was betting
too much on HTML5 as opposed to native"



M. Zuckerberg, 2012
Out of the Jungle
Facebook decides to go "close-to-native"

Cross-platform of course
React Native
iOS and Android apps built on a Mac, Windows or Linux

Facebook, 2013

Public and open source since 2015

Currently being ported to macOS, Windows, Ubuntu, the
web, and others
React
JavaScript library to build user interfaces 

Facebook, 2011

Open source since 2013

Widely used in the web
React

Web

JSX* ⟶ DOM elements

React Native

Mobile

JSX* ⟶ Native views

* JavaScript eXtension
JavaScript
One of the most accessible and popular programming
languages 

Dates back to Netscape, 1995

Initially used by web browsers only

Now widely used on servers and in mobile apps
What can I do with React Native?
Everything a native app can do
Hello World
Download and install Xcode and Xcode
command line tools

Download and install JDK and

Android Studio
$ brew install node

$ brew install watchman

$ npm install -g react-native-cli
$ react-native init AwesomeProject

$ cd AwesomeProject
$ react-native run-ios
$ react-native run-android
JavaScript ⟶ App.js, index.js

JavaScript Tools ⟶ Babel, Flow

Libraries ⟶ Node, yarn

Packager/Build ⟶ Buck, Watchman

Native ⟶ Android, iOS

Other ⟶ Git
Hello World
Tutorial by Facebook

https://facebook.github.io/react-native/docs/getting-started.html
Hello Real World
Read

Documentation

Tutorials

Blog posts, articles
Experiment

Hello Planet

Hello Universe

Hello My App At Last
Your JavaScript Third-Party JavaScript
React Library
Bridge
Bridge
React Library
Your Native Code Third-Party Native Code
Native SDK
Your JavaScript Third-Party JavaScript
React Library
Bridge
Bridge
React Library
Your Native Code Third-Party Native Code
Native SDK
Your JavaScript Third-Party JavaScript
React Library
Bridge
Bridge
React Library
Your Native Code Third-Party Native Code
Native SDK
"JavaScript lacks plenty of important features required to
adequately write and maintain massive applications"
Analyze source code to
flag programming errors,
bugs, stylistic errors,
and suspicious
constructs
Plugins

Flow

ESLint

Others
Editors

Atom

Visual Studio Code

Others
Flow? TypeScript?
None? Other?
Atom? Visual Studio Code?
Other?
ESLint? JSLint? JSHint?
None? Other?
Boilerplate configuration?
Personalized?
My App React Native
React Native lacks plenty of important features required to
adequately write and maintain real applications
Redux

"Redux is a predictable state container for JavaScript apps"

Saga

"An alternative side effect model for Redux apps"
Other Third-Party Packages

Navigation

Proper table view

Vector icons

Support for iPhone X series

Many others
React Native lacks plenty of important features required to
adequately debug applications
Hello Real World
Debug Native Code

Xcode

Android Studio

Debug JavaScript

Chrome

Editor with plugins

Reactotron
Gold Standards
JavaScript "patches" ⟶ No

File organization ⟶ No

Debugging tools ⟶ No

Third-party libraries (a lot!) ⟶ No
Hello Good World
JavaScript is "easy"

Very straightforward and satisfactory first tries

Hot reloading

Documentation is not bad

Large community (issues rather than StackOverflow)
Difficulty
Time
Difficulty
Time
Difficulty
Time
Difficulty
Time
React Native
Updates, Issues
and Package Rebuilds
Tools
Updates and Issues
JavaScript Typing and Linting
Understand, Configure, Update
Third-Party Libraries
Search, Updates, Debug, Fixes
My Code React Native
Debugging JavaScript
Relatively easy

Several options

Our choice:

• Visual Studio Code

• Reactotron
Debugging Native Code
Relatively easy*

Xcode & Android Studio
* You're a native developer
Debugging JavaScript-Native Bridge
Less straightforward

Use both JavaScript and native tools
Deployment
To testers

To public (App Store and Play Store)
Deployment
To testers

To public (App Store and Play Store)

Of JavaScript code!

Our choice:

• Microsoft App Center
Tools - Summary
So what
Most of JavaScript code shared between platforms

JavaScript proficiency easy to find

JavaScript proficiency easy to recycle

Native skills* might still be required
* Quite advanced maybe
Need for mobile development ⟶ Native SDKs and tools 

Need for cross-platform ⟶ Hybrid

Need for close-to-native ⟶ React Native

Need for integrated toolkit ⟶ Flutter
2013 20182017201620152014
React Native
Ionic
Xamarin
Flutter
The End
...or The Beginning*
* Good luck!
Question
After my presentation, I was asked whether I'd choose
React Native again if I could go a year an a half back in time.
The answer is "yes". If I'd choose React Native now? The
answer is "yes, probably". If I'd choose React Native in a
year? I'll leave that open.

More Related Content

PPTX
React native
PDF
Experiences building apps with React Native @DomCode 2016
PDF
Building an Open Source iOS app: lessons learned
PDF
Drag and Drop UI Development with React Native
PDF
From zero to hero with React Native!
PDF
LAP II - Lezione 01 Introduzione al corso
PDF
React native first impression
PDF
React native in the wild @ Codemotion 2016 in Rome
React native
Experiences building apps with React Native @DomCode 2016
Building an Open Source iOS app: lessons learned
Drag and Drop UI Development with React Native
From zero to hero with React Native!
LAP II - Lezione 01 Introduzione al corso
React native first impression
React native in the wild @ Codemotion 2016 in Rome

What's hot (20)

PPTX
React Native
PDF
From React to React Native
PPTX
9 reasons why programmers should learn react native
ODP
Novice Programmers Workshop
PPTX
Creating books app with react native
PPTX
React Native
PDF
Lezione 03 Introduzione a react
PPTX
Introduction to React native
PPTX
React Native
PDF
Guy haviv - History of GUI visual design
PDF
Going Native With React
PDF
React-Native for multi-platform mobile applications @ Codemotion Rome 2017
PDF
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
PPTX
Javascript Apps at Build Artifacts
PPT
Getting Started with Android
PDF
A tour of React Native
PDF
Vn-info meetup on Node.js
PPTX
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
PDF
React native
PPTX
HTML5 for dummies
React Native
From React to React Native
9 reasons why programmers should learn react native
Novice Programmers Workshop
Creating books app with react native
React Native
Lezione 03 Introduzione a react
Introduction to React native
React Native
Guy haviv - History of GUI visual design
Going Native With React
React-Native for multi-platform mobile applications @ Codemotion Rome 2017
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Javascript Apps at Build Artifacts
Getting Started with Android
A tour of React Native
Vn-info meetup on Node.js
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
React native
HTML5 for dummies
Ad

Similar to React Native? A developer's perspective (20)

PPTX
React Native - Build Native Mobile App
PPTX
Introduction to React Native
PDF
React Native Guide A Hybrid Framework for Mobile Apps
PDF
When to choose and avoid react native for mobile app development
PPTX
Why React Native is the Future?
PPTX
How native is React Native? | React Native vs Native App Development
PDF
What to choose for Mobile app development- React Native vs Native.
PDF
Getting Started with React Native (and should I use it at all?)
PPTX
Difference between React JS and React Native
PPTX
Session 01_02-Introduction to React Native .pptx
PPTX
React vs React Native: Key differences).pptx
PDF
React Native_ Pros and Cons for Mobile app development.pdf
PDF
React Native VS Native: Which is Better for App Development?
PDF
Reactjs Vs React Native – Key Difference, Advantages, And Disadvantages
PDF
React Native App Development_ The Ultimate Guide In 2022.pdf
PDF
Why is React Native the Best Choice for Mobile App Development.pdf
PPTX
React Native And Its Ecosystem Presentation
PPTX
Introduction to React Native
PPTX
React vs React Native
PPTX
From React to React Native - Things I wish I knew when I started
React Native - Build Native Mobile App
Introduction to React Native
React Native Guide A Hybrid Framework for Mobile Apps
When to choose and avoid react native for mobile app development
Why React Native is the Future?
How native is React Native? | React Native vs Native App Development
What to choose for Mobile app development- React Native vs Native.
Getting Started with React Native (and should I use it at all?)
Difference between React JS and React Native
Session 01_02-Introduction to React Native .pptx
React vs React Native: Key differences).pptx
React Native_ Pros and Cons for Mobile app development.pdf
React Native VS Native: Which is Better for App Development?
Reactjs Vs React Native – Key Difference, Advantages, And Disadvantages
React Native App Development_ The Ultimate Guide In 2022.pdf
Why is React Native the Best Choice for Mobile App Development.pdf
React Native And Its Ecosystem Presentation
Introduction to React Native
React vs React Native
From React to React Native - Things I wish I knew when I started
Ad

Recently uploaded (20)

PPT
JAVA ppt tutorial basics to learn java programming
PDF
The Role of Automation and AI in EHS Management for Data Centers.pdf
PDF
Become an Agentblazer Champion Challenge
PDF
Become an Agentblazer Champion Challenge Kickoff
PPTX
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
PDF
Understanding NFT Marketplace Development_ Trends and Innovations.pdf
PDF
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Benefits of DCCM for Genesys Contact Center
PDF
How to Choose the Most Effective Social Media Agency in Bangalore.pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
System and Network Administraation Chapter 3
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Presentation of Computer CLASS 2 .pptx
PDF
Build Multi-agent using Agent Development Kit
PDF
A REACT POMODORO TIMER WEB APPLICATION.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
AI in Product Development-omnex systems
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
JAVA ppt tutorial basics to learn java programming
The Role of Automation and AI in EHS Management for Data Centers.pdf
Become an Agentblazer Champion Challenge
Become an Agentblazer Champion Challenge Kickoff
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
Understanding NFT Marketplace Development_ Trends and Innovations.pdf
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Benefits of DCCM for Genesys Contact Center
How to Choose the Most Effective Social Media Agency in Bangalore.pdf
top salesforce developer skills in 2025.pdf
System and Network Administraation Chapter 3
ManageIQ - Sprint 268 Review - Slide Deck
Presentation of Computer CLASS 2 .pptx
Build Multi-agent using Agent Development Kit
A REACT POMODORO TIMER WEB APPLICATION.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
AI in Product Development-omnex systems
Online Work Permit System for Fast Permit Processing
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...

React Native? A developer's perspective