React Native
Unleash the power of
react in your device
AMSTERDAM 11-12 MAY 2016
HELLO!I am Eduard Tomàs 
You can find me at @eiximenis
I work @ PlainConcepts
http://www.plainconcepts.com
What is React
Native?
And what makes it different?
That have native UI
React Native is a
library to build
mobile apps
Using JavaScript and
the same workflow and
tools that we use to
build web applications
What makes React Native fresh and powerful is…
But these are’nt
the most
important things…
React Native
brings the “React
way” to mobile
development
“Thinking in
React”
Only components
Single source of truth
One direction data flow
Reusable Stateless
Components
Avoiding state in your
components not only make
them reusable… also can
save your life!
State should be stored in a
single point.
Components should have only
“read acces” to this state
Components should expose
an API to change its behavior
React Native
architecture
Not a “write
once” solution
At least not yet!
JavaScript code can be
shared with iOS and Android
applications
UI code (React components)
is not totally reusable.
Most components are shared
between platforms but some
does’nt
This is improving
UI is fully native
Virtual DOM generated by
components is translated to
real native UI
components.
A react native button is
really a UIButton or a
android.widget.Button
And about
JavaScript…
JavaScript is bundled in the
application package
JavaScript is executed
using JavaScript Core (part
of WebKit project)
JavaScript runs in an
Asynchronous way…
… with native methods
calls batched…
… exchanging serializable
messages (not sharing
mutable data)
What about
styling?
React Native contains a custom implementation of
CSS
Based on JavaScript objects (no CSS files exist)
React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016
What about
layouts?
Layout in Android and iOS differs a lot
React Native relies on its own layout system
Basic implementation of CSS flexbox standard
“Functional” UI
f is a pure function A pure function is a
function with no
side effects
𝑈𝐼 = 𝑓 𝑑𝑎𝑡𝑎
React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016
𝑈𝐼 = 𝑓 𝑐𝑜𝑢𝑛𝑡
𝑈𝐼 = 𝑓 𝑐𝑜𝑢𝑛𝑡 =
𝑑𝑖𝑣(
𝑠𝑝𝑎𝑛 ′𝐶𝑜𝑢𝑛𝑡′
+ 𝑐𝑜𝑢𝑛𝑡
𝑏𝑢𝑡𝑡𝑜𝑛 ′𝐴𝑑𝑑 + 1′
)
React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016
React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016
Previous code was from a web
project. In mobile <div> and <span>
mean nothing but same principles
apply.
Only component names change
From web
to mobile
React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016
Updating the
state
State should be on a single
place, usually in the “top
most” component
React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016
CounterPage
TopMost component
holding state
Receives events from
Counter component and
updates its own state
Counter
Stateless component
Have “read only” view of
data in their props
Communicates via events
One direction data flow
WANT BIG IMPACT?
USE BIG
IMAGE.
Time to code…
The “mobile
workflow”
Code something
Compile
Deploy on emulator
Do some changes
Compile again
Deploy again
And again, and again…
The “React Native
Workflow”
Code something
Deploy on emulator
Do some changes
Refresh on emulator
Never deploy again
Just change code and
refresh
The debugging
experience
Debugging code is
performed through Chrome
As any web application
Navigation
React Native offers one top
most component
(Navigator) to handle
application navigation
Offers an API similar to the
HTML5 PushState.
Each scene (screen) is a
top react component
WANT BIG IMPACT?
USE BIG
IMAGE.
Show me in action!
React Native APIs
React Native come with a
lot of APIs to do basic stuff
Most of these APIs exists
for both Android and iOS
AppState: manages the application state and notifies
changes
AsyncStorage: Persistent key/value storage
CameraRoll: Provides access to local camera roll or gallery
Vibration: Access to the underlying vibration API
fetch: API for performing HTTP Requests. Mimics the same
API available in some browsers (i. e. Chrome)
GeoLocation: API for accessing the geo location data.
Mimics the same HTML5 API.
…
Q: Can I interoperate
with native code?
Yes, you can create a
native module using ObjC
(for iOS) or Java (for
Android)
A native module is a class
For iOS must to conform the
RCTBridgeModule protocol
For Anrdoid must extend
ReactContextBaseJavaModule
class
Q: Can I use native
UI controls?
Yes, you can expose native
UI controls to JavaScript
You can bridge native
properties to/from
JavaScript code
Can dispatch events from the UI
control to JavaScript code
Any questions?
You can find me at @eiximenis or contact me using
etomas@plainconcepts.com
Thanks!
Info@plainconcepts.com
Avinguda Josep Tarradellas, 10, 6º 1ª
08029 Barcelona, España
+34 93 3607 114
Barcelona

More Related Content

PDF
Experiences building apps with React Native @UtrechtJS May 2016
PDF
An iOS Developer's Perspective on React Native
PDF
Intro to react native
PDF
Experiences building apps with React Native @DomCode 2016
PPTX
Creating books app with react native
PDF
Optimizing React Native views for pre-animation
PDF
Putting the Native in React Native - React Native Boston
PDF
From zero to hero with React Native!
Experiences building apps with React Native @UtrechtJS May 2016
An iOS Developer's Perspective on React Native
Intro to react native
Experiences building apps with React Native @DomCode 2016
Creating books app with react native
Optimizing React Native views for pre-animation
Putting the Native in React Native - React Native Boston
From zero to hero with React Native!

What's hot (20)

PDF
Introduction to React Native
PDF
When to (use / not use) React Native.
PDF
React Native in a nutshell
PPTX
React Native Intro
PDF
Getting Started with React Native (and should I use it at all?)
PPTX
React Native
PDF
React native-meetup-talk
PPTX
React native - React(ive) Way To Build Native Mobile Apps
PPTX
React Native
PPTX
React Native for ReactJS Devs
PDF
React Native: React Meetup 3
PDF
Lo mejor y peor de React Native @ValenciaJS
PDF
Алексей Волков "Введение в React Native"
PDF
Introduction to React Native & Rendering Charts / Graphs
PDF
Introduction to React Native
PPTX
PDF
Contributing to open source
PPTX
Advanced Appium
PPTX
Hands on react native
PDF
React native in the wild @ Codemotion 2016 in Rome
Introduction to React Native
When to (use / not use) React Native.
React Native in a nutshell
React Native Intro
Getting Started with React Native (and should I use it at all?)
React Native
React native-meetup-talk
React native - React(ive) Way To Build Native Mobile Apps
React Native
React Native for ReactJS Devs
React Native: React Meetup 3
Lo mejor y peor de React Native @ValenciaJS
Алексей Волков "Введение в React Native"
Introduction to React Native & Rendering Charts / Graphs
Introduction to React Native
Contributing to open source
Advanced Appium
Hands on react native
React native in the wild @ Codemotion 2016 in Rome

Viewers also liked (20)

PDF
Everything you always wanted to know about highly available distributed datab...
PDF
Microsoft &lt;3 Open Source: Un anno dopo!
PPTX
Welcome to Mordor - Daniel Kahn - Codemotion Amsterdam 2016
PDF
The rise and fall and rise of Virtual Reality - Adriaan Rijkens - Codemotion...
PDF
Death to Icon Fonts - Seren Davies - Codemotion Amsterdam 2016
PPTX
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
PDF
Angular2 and Redux - up & running - Nir Kaufman - Codemotion Amsterdam 2016
PDF
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
PDF
Distributed Companies: A WordPress.com Team Perspective - Davide Casali - Cod...
PDF
Demistifying the 3D Web
ODP
If security is hard, you are doing it wrong - Fabio Locati - Codemotion Amste...
PDF
NoSQL on the move
PDF
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
PDF
Engage and retain users in the mobile world
PDF
Customize and control connected devices
PDF
F# for the curly brace developer - Michael Newton - Codemotion Amsterdam 2016
PDF
Maker Experience: user centered toolkit for makers
PDF
Knowledge is Power: Getting out of trouble by understanding Git - Steve Smith...
PDF
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
PDF
Living on the Edge (Service) - Mark Heckler - Codemotion Amsterdam 2016
Everything you always wanted to know about highly available distributed datab...
Microsoft &lt;3 Open Source: Un anno dopo!
Welcome to Mordor - Daniel Kahn - Codemotion Amsterdam 2016
The rise and fall and rise of Virtual Reality - Adriaan Rijkens - Codemotion...
Death to Icon Fonts - Seren Davies - Codemotion Amsterdam 2016
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Angular2 and Redux - up & running - Nir Kaufman - Codemotion Amsterdam 2016
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
Distributed Companies: A WordPress.com Team Perspective - Davide Casali - Cod...
Demistifying the 3D Web
If security is hard, you are doing it wrong - Fabio Locati - Codemotion Amste...
NoSQL on the move
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Engage and retain users in the mobile world
Customize and control connected devices
F# for the curly brace developer - Michael Newton - Codemotion Amsterdam 2016
Maker Experience: user centered toolkit for makers
Knowledge is Power: Getting out of trouble by understanding Git - Steve Smith...
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Living on the Edge (Service) - Mark Heckler - Codemotion Amsterdam 2016

Similar to React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016 (20)

PPTX
React native - Unleash the power of your device
PDF
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
PDF
The Gist of React Native
PDF
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
PDF
React js vs react native a comparative analysis
PDF
l1-reactnativeintroduction-160816150540.pdf
PPTX
React native introduction (Mobile Warsaw)
PDF
Workshop 24: React Native Introduction
PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
PDF
Introduzione a React Native - Facebook Developer Circle Rome
PDF
PPTX
Introduction to react native @ TIC NUST
PDF
Introduction to react native
PDF
Top React Native Interview Questions and Answers in 2023
PPTX
React native
PPTX
React Native Building Mobile Apps with React.pptx
PDF
React native: building native iOS apps with javascript
PDF
Introduction to React Native
PPTX
Getting Started With React Native Presntation
PPTX
Introduction to React Native
React native - Unleash the power of your device
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
The Gist of React Native
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React js vs react native a comparative analysis
l1-reactnativeintroduction-160816150540.pdf
React native introduction (Mobile Warsaw)
Workshop 24: React Native Introduction
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
Introduzione a React Native - Facebook Developer Circle Rome
Introduction to react native @ TIC NUST
Introduction to react native
Top React Native Interview Questions and Answers in 2023
React native
React Native Building Mobile Apps with React.pptx
React native: building native iOS apps with javascript
Introduction to React Native
Getting Started With React Native Presntation
Introduction to React Native

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PPTX
How to use fields_get method in Odoo 18
PPTX
Blending method and technology for hydrogen.pptx
PPTX
Presentation - Principles of Instructional Design.pptx
PDF
Identification of potential depression in social media posts
PDF
substrate PowerPoint Presentation basic one
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
NewMind AI Journal Monthly Chronicles - August 2025
PDF
Human Computer Interaction Miterm Lesson
PPTX
Build automations faster and more reliably with UiPath ScreenPlay
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
Early detection and classification of bone marrow changes in lumbar vertebrae...
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
EIS-Webinar-Regulated-Industries-2025-08.pdf
Build Real-Time ML Apps with Python, Feast & NoSQL
Introduction to MCP and A2A Protocols: Enabling Agent Communication
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
How to use fields_get method in Odoo 18
Blending method and technology for hydrogen.pptx
Presentation - Principles of Instructional Design.pptx
Identification of potential depression in social media posts
substrate PowerPoint Presentation basic one
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
NewMind AI Journal Monthly Chronicles - August 2025
Human Computer Interaction Miterm Lesson
Build automations faster and more reliably with UiPath ScreenPlay
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf

React Native - Unleash the power of React in your device - Eduard Tomàs - Codemotion Amsterdam 2016

  • 1. React Native Unleash the power of react in your device AMSTERDAM 11-12 MAY 2016
  • 2. HELLO!I am Eduard Tomàs  You can find me at @eiximenis I work @ PlainConcepts http://www.plainconcepts.com
  • 3. What is React Native? And what makes it different?
  • 4. That have native UI React Native is a library to build mobile apps Using JavaScript and the same workflow and tools that we use to build web applications
  • 5. What makes React Native fresh and powerful is… But these are’nt the most important things…
  • 6. React Native brings the “React way” to mobile development
  • 8. Only components Single source of truth One direction data flow
  • 9. Reusable Stateless Components Avoiding state in your components not only make them reusable… also can save your life! State should be stored in a single point. Components should have only “read acces” to this state Components should expose an API to change its behavior
  • 11. Not a “write once” solution At least not yet! JavaScript code can be shared with iOS and Android applications UI code (React components) is not totally reusable. Most components are shared between platforms but some does’nt This is improving
  • 12. UI is fully native Virtual DOM generated by components is translated to real native UI components. A react native button is really a UIButton or a android.widget.Button
  • 13. And about JavaScript… JavaScript is bundled in the application package JavaScript is executed using JavaScript Core (part of WebKit project) JavaScript runs in an Asynchronous way… … with native methods calls batched… … exchanging serializable messages (not sharing mutable data)
  • 14. What about styling? React Native contains a custom implementation of CSS Based on JavaScript objects (no CSS files exist)
  • 16. What about layouts? Layout in Android and iOS differs a lot React Native relies on its own layout system Basic implementation of CSS flexbox standard
  • 18. f is a pure function A pure function is a function with no side effects 𝑈𝐼 = 𝑓 𝑑𝑎𝑡𝑎
  • 20. 𝑈𝐼 = 𝑓 𝑐𝑜𝑢𝑛𝑡
  • 21. 𝑈𝐼 = 𝑓 𝑐𝑜𝑢𝑛𝑡 = 𝑑𝑖𝑣( 𝑠𝑝𝑎𝑛 ′𝐶𝑜𝑢𝑛𝑡′ + 𝑐𝑜𝑢𝑛𝑡 𝑏𝑢𝑡𝑡𝑜𝑛 ′𝐴𝑑𝑑 + 1′ )
  • 24. Previous code was from a web project. In mobile <div> and <span> mean nothing but same principles apply. Only component names change From web to mobile
  • 26. Updating the state State should be on a single place, usually in the “top most” component
  • 28. CounterPage TopMost component holding state Receives events from Counter component and updates its own state Counter Stateless component Have “read only” view of data in their props Communicates via events One direction data flow
  • 29. WANT BIG IMPACT? USE BIG IMAGE. Time to code…
  • 30. The “mobile workflow” Code something Compile Deploy on emulator Do some changes Compile again Deploy again And again, and again…
  • 31. The “React Native Workflow” Code something Deploy on emulator Do some changes Refresh on emulator Never deploy again Just change code and refresh
  • 32. The debugging experience Debugging code is performed through Chrome As any web application
  • 33. Navigation React Native offers one top most component (Navigator) to handle application navigation Offers an API similar to the HTML5 PushState. Each scene (screen) is a top react component
  • 34. WANT BIG IMPACT? USE BIG IMAGE. Show me in action!
  • 35. React Native APIs React Native come with a lot of APIs to do basic stuff Most of these APIs exists for both Android and iOS
  • 36. AppState: manages the application state and notifies changes AsyncStorage: Persistent key/value storage CameraRoll: Provides access to local camera roll or gallery Vibration: Access to the underlying vibration API fetch: API for performing HTTP Requests. Mimics the same API available in some browsers (i. e. Chrome) GeoLocation: API for accessing the geo location data. Mimics the same HTML5 API. …
  • 37. Q: Can I interoperate with native code? Yes, you can create a native module using ObjC (for iOS) or Java (for Android) A native module is a class For iOS must to conform the RCTBridgeModule protocol For Anrdoid must extend ReactContextBaseJavaModule class
  • 38. Q: Can I use native UI controls? Yes, you can expose native UI controls to JavaScript You can bridge native properties to/from JavaScript code Can dispatch events from the UI control to JavaScript code
  • 39. Any questions? You can find me at @eiximenis or contact me using [email protected]
  • 41. [email protected] Avinguda Josep Tarradellas, 10, 6º 1ª 08029 Barcelona, España +34 93 3607 114 Barcelona