React Native allows developers to build native mobile apps using JavaScript and React. It uses the same basic codebase to build apps for iOS and Android. While React Native simplifies development and allows sharing of code between platforms, it still lacks many features required for large, complex apps. Additional libraries and tools are needed to add capabilities like state management, debugging, and deployment. Choosing React Native involves tradeoffs between cross-platform needs and native app capabilities that developers must consider for their specific projects and timelines.
2. 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
3. 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
6. Go native ⟶ Xcode, Android Studio
Go cross-platform ⟶ hybrid (HTML 5)
7. 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
8. Out of the Jungle
Facebook decides to go "close-to-native"
Cross-platform of course
9. 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
10. React
JavaScript library to build user interfaces
Facebook, 2011
Open source since 2013
Widely used in the web
11. React
Web
JSX* ⟶ DOM elements
React Native
Mobile
JSX* ⟶ Native views
* JavaScript eXtension
12. 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
13. What can I do with React Native?
Everything a native app can do
14. Hello World
Download and install Xcode and Xcode
command line tools
Download and install JDK and
Android Studio
34. Hello Good World
JavaScript is "easy"
Very straightforward and satisfactory first tries
Hot reloading
Documentation is not bad
Large community (issues rather than StackOverflow)
46. 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
47. 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
50. 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.