SlideShare a Scribd company logo
Introduction to React-Native
Waqqas Jabbar
13th July 2018
My Introduction
2000
NUST
2008
Right Hand Soft
Pvt. Ltd.
2012
Vadion (formally
Softrove)
2010
2016
20172004
2018
C C++ C# Web Mobile (RN)
PK10K - Training 10,000 Mobile App Developers
● Meetup
https://www.meetup.com/PK10-
React-Native-Mobile-App-
Development-Workship/
● Facebook Group
https://www.facebook.com/groups/1
0k.dev.pk/
Agenda
● Concepts
● FAQs
● Demos
○ Expo Demo
Clarify the ecosystem
● React.js
● React-Native
● Redux
● Flow
● JSX
● Babel
● Node
React.js: Basics
● Declarative Components
● Virtual DOM (Speed)
● One-way data binding ( VS
angular)
A JavaScript library for building user
interfaces
React.js: Components
● Components
○ Types
■ Stateless (props only)
■ Stateful (state)
○ render() function
○ Life-cycle
● Props
○ Allow arbitrary input to be passed to a component
○ User for parent-child communication
● State
○ Store data of component
React-Native
● Learn once, write anywhere (previous: write once, run anywhere)
○ Provide native experience
● Built on React.js
● Available for
○ Android: 4.1+
○ iOS: 8+
Why React-Native
● Faster development speed
● Lower cost of development
○ Code reuse
○ Easy to find developers
● Ship across multiple platform
● Over the Air (OTA) updates
React-Native: Architecture
● JS code running in Virtual
Machine (VM)
Who is using React-Native
Showcase
Prerequisites to React-Native Development
● JavaScript (Preferably ES6)
● Basic XCode/Android Studio usage
● Basic understanding on npm
Development Environment
● Any JavaScript Editor ( WebStorm, Atom)
● XCode
● Android Studio
● React-Native CLI
● Genymotion
● nvm ( Node version manager)
● node/npm
Development Experience
● Close to web
● Code changes instantaneously updated on mobile
● Use chrome for debugging
Complimentary Libraries
● React Navigation (https://reactnavigation.org/)
● React Redux (https://redux.js.org/)
● Redux Sagas (https://redux-saga.js.org/)
● Mobx (https://mobx.js.org/)
Search at https://js.coach/?collection=React+Native
UI Libraries
● React-native-elements (https://react-native-training.github.io/react-native-
elements/)
● Nativebase (https://nativebase.io/)
● Use native components
Challenges in React-Native Development
● Frequent updates of React-Native
○ App should be updated regularly
● Third-party libraries can become outdated
react-native-git-upgrade
Debugging
● Google Chrome
● Performance Monitor
● Inspector
● Reactotron (https://infinite.red/reactotron)
JSX
● XML like syntax
● Convert JSX to JS
Styling
● Flexbox
● Styled-components for CSS
○ (https://www.styled-components.com/)
Platform Specific Code
● filename.android.js
filename.ios.js
● Platform.OS === ‘android’
Platform.OS === ‘ios’
● <Component>Android
● <Component>IOS
Starting a new app
● npm install -g react-native-cli
● react-native init MyProject
● cd MyProject
● react-native run-ios
● react-native run-android
Installing a package
● yarn add <package-name>
● react-native link <package-name>
Expo
https://expo.io/
● Wrapper on commonly used react-native libraries
● iOS and Android App
● OTA
● Avoid for production apps (for now atleast)
Ignite CLI
● CLI
● Boilerplates, Plugins
ignite new MyApp
https://github.com/waqqas/ignite-aag-boilerplate
(MIT License)
Frequently Asked Questions
FAQ: Do I need to learn XCode/Android Studio
Answer: Yes
You need to know how to link native libraries. Fortunately, it is simple and
normally you just have to do as documented and you would be fine
FAQ: Do I have to write native code
Answer: No (Normally)
You would be writing code is Javascript. If there is some native functionality
that is not available, you have to write bridging code. React-Native provide
primitives to do so
FAQ: Do I have to rewrite my native app in RN
Answer: Yes
You can reuse parts of the native code by exposing it to react-native bridge.
Writing RN bridge requires knowledge of RN internals, as well as native (both
iOS and Android) code
FAQ: What backend should I use with RN
Answer: Any backend
You can user REST APIs or Firebase
Demo app have both REST APIs and Firebase
FAQ: Can you use my favorite JS library in RN
Answer: Yes (Probably)
You can use moment, lodash, axios and other pure Javascript libraries (that
don’t have a browser-specific component)
FAQ: How does React-Native help my startup
Answer: Best for early startup
● Make MVP quickly
● Over The Air (OTA) update help you modify the app without going through
the app-store process
FAQ: React-Native VS Ionic VS NativeScript
Answer: React-Native is performance focus. Uses Native UI
● https://stackshare.io/stackups/ionic-vs-nativescript-vs-react-native
Demos
Thank you
https://www.linkedin.com/in/waqqasjabbar/
https://twitter.com/waqqasjabbar
https://www.facebook.com/waqqas.jabbar
https://medium.com/@waqqas/
https://www.upwork.com/fl/waqqasj
waqqas.jabbar@gmail.com

More Related Content

What's hot (20)

PPT
Starting with Reactjs
Thinh VoXuan
 
PPTX
React JS part 1
Diluka Wittahachchige
 
PPTX
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
Binary Studio
 
PPTX
Getting started with Redux js
Citrix
 
PDF
React Context API
NodeXperts
 
PDF
Continuous delivery@LesFurets - DC Continuous delivery meetup
Raphaël Brugier
 
PDF
React js use contexts and useContext hook
Piyush Jamwal
 
PPT
React js
Jai Santhosh
 
PPTX
A Brief Introduction to React.js
Doug Neiner
 
PDF
Introduction to ReactJS
Tu Hoang
 
PDF
Workshop React.js
Commit University
 
PDF
React.js+Redux Workshops
Marcin Grzywaczewski
 
PDF
Angular 2... so can I use it now??
Laurent Duveau
 
PDF
How to Redux
Ted Pennings
 
PDF
Redux and context api with react native app introduction, use cases, implemen...
Katy Slemon
 
PDF
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...
DicodingEvent
 
PPTX
7 Redux challenges
reactima
 
ODP
Docker - An Introduction
Knoldus Inc.
 
PDF
Redux Universal
Nikolaus Graf
 
PDF
Internationalizing react apps
George Bukhanov
 
Starting with Reactjs
Thinh VoXuan
 
React JS part 1
Diluka Wittahachchige
 
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
Binary Studio
 
Getting started with Redux js
Citrix
 
React Context API
NodeXperts
 
Continuous delivery@LesFurets - DC Continuous delivery meetup
Raphaël Brugier
 
React js use contexts and useContext hook
Piyush Jamwal
 
React js
Jai Santhosh
 
A Brief Introduction to React.js
Doug Neiner
 
Introduction to ReactJS
Tu Hoang
 
Workshop React.js
Commit University
 
React.js+Redux Workshops
Marcin Grzywaczewski
 
Angular 2... so can I use it now??
Laurent Duveau
 
How to Redux
Ted Pennings
 
Redux and context api with react native app introduction, use cases, implemen...
Katy Slemon
 
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...
DicodingEvent
 
7 Redux challenges
reactima
 
Docker - An Introduction
Knoldus Inc.
 
Redux Universal
Nikolaus Graf
 
Internationalizing react apps
George Bukhanov
 

Similar to Introduction to react native @ TIC NUST (20)

PPTX
Introduction to React Native
Waqqas Jabbar
 
PPTX
Introduction to React Native
Waqqas Jabbar
 
PPTX
Getting Started With React Native Presntation
Knoldus Inc.
 
PPTX
React native
Vikrant Negi
 
PPTX
Session 01_02-Introduction to React Native .pptx
VHiu94
 
PPTX
React Native
Heber Silva
 
PPTX
React native introduction (Mobile Warsaw)
Jarek Potiuk
 
PDF
An Introduction to ReactNative
Michał Taberski
 
PDF
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Codemotion
 
PDF
Introduzione a React Native - Facebook Developer Circle Rome
Matteo Manchi
 
PDF
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Codemotion
 
PPTX
React Native Building Mobile Apps with React.pptx
Ahex Technologies
 
PDF
Introduction to react native
Dani Akash
 
PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
GreeceJS
 
PDF
React native
Liran Ben Haim
 
PDF
React Native
vishal kumar
 
PPTX
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
Codemotion
 
PDF
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Kobkrit Viriyayudhakorn
 
PDF
l1-reactnativeintroduction-160816150540.pdf
Hương Trà Pé Xjnk
 
PPTX
React Native.pptx (2)
Emilio Rodriguez Martinez
 
Introduction to React Native
Waqqas Jabbar
 
Introduction to React Native
Waqqas Jabbar
 
Getting Started With React Native Presntation
Knoldus Inc.
 
React native
Vikrant Negi
 
Session 01_02-Introduction to React Native .pptx
VHiu94
 
React Native
Heber Silva
 
React native introduction (Mobile Warsaw)
Jarek Potiuk
 
An Introduction to ReactNative
Michał Taberski
 
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Codemotion
 
Introduzione a React Native - Facebook Developer Circle Rome
Matteo Manchi
 
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Codemotion
 
React Native Building Mobile Apps with React.pptx
Ahex Technologies
 
Introduction to react native
Dani Akash
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
GreeceJS
 
React native
Liran Ben Haim
 
React Native
vishal kumar
 
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
Codemotion
 
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Kobkrit Viriyayudhakorn
 
l1-reactnativeintroduction-160816150540.pdf
Hương Trà Pé Xjnk
 
React Native.pptx (2)
Emilio Rodriguez Martinez
 
Ad

More from Waqqas Jabbar (11)

PPTX
Jump into React-Native (Class 6)
Waqqas Jabbar
 
PPTX
Jump into React-Native (Class 5)
Waqqas Jabbar
 
PPTX
Jump into React-Native (Class 4)
Waqqas Jabbar
 
PPTX
Jump into React Native (Class 3)
Waqqas Jabbar
 
PPTX
Jump into React-Native (Class 2/6)
Waqqas Jabbar
 
PPTX
Jump into React-Native (Class 1)
Waqqas Jabbar
 
PPTX
Crud application using react native, redux and redux sagas
Waqqas Jabbar
 
ODP
Introduction To SVN
Waqqas Jabbar
 
ODP
Makefile Generation From Autotools
Waqqas Jabbar
 
ODP
Introduction To Makefile
Waqqas Jabbar
 
ODP
Introduction To SVN
Waqqas Jabbar
 
Jump into React-Native (Class 6)
Waqqas Jabbar
 
Jump into React-Native (Class 5)
Waqqas Jabbar
 
Jump into React-Native (Class 4)
Waqqas Jabbar
 
Jump into React Native (Class 3)
Waqqas Jabbar
 
Jump into React-Native (Class 2/6)
Waqqas Jabbar
 
Jump into React-Native (Class 1)
Waqqas Jabbar
 
Crud application using react native, redux and redux sagas
Waqqas Jabbar
 
Introduction To SVN
Waqqas Jabbar
 
Makefile Generation From Autotools
Waqqas Jabbar
 
Introduction To Makefile
Waqqas Jabbar
 
Introduction To SVN
Waqqas Jabbar
 
Ad

Recently uploaded (20)

PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
PDF
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
PPTX
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
PDF
GDG Cloud Southlake #44: Eyal Bukchin: Tightening the Kubernetes Feedback Loo...
James Anderson
 
PDF
Why aren't you using FME Flow's CPU Time?
Safe Software
 
PDF
Understanding AI Optimization AIO, LLMO, and GEO
CoDigital
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
PDF
Understanding The True Cost of DynamoDB Webinar
ScyllaDB
 
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
PDF
99 Bottles of Trust on the Wall — Operational Principles for Trust in Cyber C...
treyka
 
PDF
Bridging CAD, IBM TRIRIGA & GIS with FME: The Portland Public Schools Case
Safe Software
 
PDF
“Scaling i.MX Applications Processors’ Native Edge AI with Discrete AI Accele...
Edge AI and Vision Alliance
 
PDF
Pipeline Industry IoT - Real Time Data Monitoring
Safe Software
 
PPTX
Smart Factory Monitoring IIoT in Machine and Production Operations.pptx
Rejig Digital
 
PDF
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
PDF
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
GDG Cloud Southlake #44: Eyal Bukchin: Tightening the Kubernetes Feedback Loo...
James Anderson
 
Why aren't you using FME Flow's CPU Time?
Safe Software
 
Understanding AI Optimization AIO, LLMO, and GEO
CoDigital
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
Understanding The True Cost of DynamoDB Webinar
ScyllaDB
 
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
99 Bottles of Trust on the Wall — Operational Principles for Trust in Cyber C...
treyka
 
Bridging CAD, IBM TRIRIGA & GIS with FME: The Portland Public Schools Case
Safe Software
 
“Scaling i.MX Applications Processors’ Native Edge AI with Discrete AI Accele...
Edge AI and Vision Alliance
 
Pipeline Industry IoT - Real Time Data Monitoring
Safe Software
 
Smart Factory Monitoring IIoT in Machine and Production Operations.pptx
Rejig Digital
 
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 

Introduction to react native @ TIC NUST

Editor's Notes

  • #2: Thank you to NIC
  • #3: Link to people
  • #7: https://blog.codecentric.de/en/2017/11/developing-modern-offline-apps-reactjs-redux-electron-part-2-reactjs-basics/
  • #8: https://reactjs.org/docs/hello-world.html
  • #12: https://facebook.github.io/react-native/showcase.html
  • #14: https://facebook.github.io/react-native/docs/getting-started.html
  • #20: https://facebook.github.io/jsx/ https://reactjs.org/docs/introducing-jsx.html https://reactjs.org/docs/jsx-in-depth.html
  • #25: https://infinite.red/ignite