SlideShare a Scribd company logo
ITS485 Lecture 1: 

React Native Introduction
Dr. Kobkrit Viriyayudhakorn
iApp Technology Limited

http://www.kobkrit.com
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Course Outline
Course Outline
Grading Policy
• Quizzes: 10%
• At the beginning of the class (Always
be on time).
• Term Project: 20%
• Midterm exam: 35% (Open Books)
• Final exam: 35% (Open Books)

Term Project
• Making a 5-10 Screens Mobile Application.
• Group & Project Assignment after the midterm exam.
• Set up a group of three. (36/3 = 12 groups)
• 15% - Group scores - Usefulness, App Business
Model, UI, UX, Functionality, Code Style, and
Pitching.
• 5% - Individual scores - App development questions
target to each person during presentation.
• 10 minutes presentation: Pitching 3 minutes, Code
Explanation 2 minutes, Question & Answering 5
minutes.
Books & Reference
• https://facebook.github.io/reactnative/
• Bonnie Eisenman, Learning React Native Building
Native Mobile Apps with JavaScript, O'Reilly
Media, December 2015.
• https://github.com/jondot/awesome-react-native
• https://js.coach/react-native/
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
What is React Native?
• JavaScript framework for building iOS and Android
mobile apps.
• Based on popular JavaScript Web framework called
React.
• Created by Facebook. Firstly release iOS version on
March 2015 and Android version on September
2015
• Writing the app by using JavaScript and XML-esque
markup (JSX)
• React-Native bridges and invokes the Native
rendering API in Objective-C (iOS) and Java
(Android)
Approach of Mobile App Dev.
Approach Platform Logic UI UX Dev Time*
Native
Object C, Swift
(iOS), Java
(Android)
Native Native Smooth 6-24 weeks
HTML5
Hybrid
PhoneGap,
Cordova, Ionic
JS
HTML,

CSS
Laggy 2-8 weeks
Native
Hybrid
React Native,

NativeScript
JS Native Smooth 2-8 weeks
* 20-30 screens mobile apps approximated based on instructor experiences
Why React Native?
• Native Experience
• One language rules them all, JavaScript.
• Fast & Great Development Experience
• Don’t Waste Time Recompiling (Hot Reloading)
• 80% Share code between Android & iOS
• Great Debugging Tool using Chrome Developer Tools
• Be able to bridge with Native Code when we need to.
Native Experience
Hot Reloading
Debugging with Chrome Developer Tools
Why not React Native?
• React-Native is still relatively young compared with
Native iOS and Android Communities (Released on
2015)
• Some of Native API still are not supported. (But you
can use the native libraries through)
• Add one additional layer to mobile app project.
What is React?
• Declarative, Efficient,
and Flexible
JavaScript Library that
Building User
Interface on Website.
• React Native is rooted
from React.
• React treats every
thing as a Component.
A React Component
How React Native Works?
• Q: How a Web framework (React) can be improved and
become a Native Mobile Development Platform?
• A: Flexibility of React’s Virtual DOM
• React aimed to make Web application fast as much as
possible.
• DOM Changing (Changing the content of webpage)
dynamically is expensive step. Re-rendering DOM is
significant impact on performance.
• Rather than directly render change DOM in the page, React
compute the only diff that need to be render in memory by
Virtual DOM and re-renders the minimal amount necessary.
Virtual Dom, Technique of React => Root of React Native
Another Benefits of Virtual
DOM
• Performance benefits.
• Abstraction layers.
• FB Engineer: What if React could render to a target
other than the Web Browser’s DOM?
• Instead of rendering HTML/CSS to the browser’s
DOM. Why can’t we rendering mobile app by using
Objective-C APIs to render to iOS, and invokes
Java to render to Android.
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Rendering Lifecycle
Mounting Component
Re-rendering Component
Async Rules
• Good benefits of JavaScript is their asynchronous
natures.
• React-Native is running on separated thread using
JavaScript asynchronous call via the event bridge
to invokes the host native platform’s underlying APIs
and UI elements. (Objective-C, Java)
• Since, React-Native don’t run on the main UI
rendering thread, it can do asynchronous call without
impact user’s experience (such as delay).
Android

Native

UI
Event Bridge
JS World Android World
Thread 1 Main Thread
AsyncCall
(Non-Blocking)
How React-Native Draw?
• React for the Web, render normal HTML elements
• React Native, render cross-platform (or platform-
specific) native UI component.
Cross Platform (iOS, Android) Platform Specific
<DatePickerIOS>
Example of Platform Specific
Components
<Switch>
<SwitchIOS><SwitchAndroid>
JSX
• Combining JavaScript and XML-markup syntax to create view.
• Single File Concept (Write down at Component Class), Not
Seperate Files (Split HTML, CSS, JS)
• Separation of concerns > Separation of technologies
JSX (Underlined) Rendered View
Styling
• In Web, We have CSS, necessary part of the Web.
• In React-Native, We have something similar to CSS,
called Flexbox Layout Model.
{ background-color : ‘white’}
{ backgroundColor : ‘white’}
CSS
Camel Case in React
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React-Native Support
• Mac OS can develop
• iOS
• Android
• Windows OS can develop
• Only Android
HomeBrew Installation
• Open Terminal (Click on Find icon on the top right
of the screen)
• Type “Terminal”
• Enter $ /usr/bin/ruby -e "$(curl -fsSL https://
raw.githubusercontent.com/Homebrew/install/
master/install)"
Install React-Native in Mac
for iOS Development.
React-Native-Cli Command
Try
• $ react-native init sampleProject
• $ cd sampleProject
• $ react-native run-ios
IDE
• Any Text Editor is fine.
• Atom
• React
• React-Snippet
• Atom-React-Native-CSS
• Atom-React-Native-
Autocomplete
• Sublimes
• Visual Studio Code
Project Structure
Download Lecture Note
After Class & Video
http://www.kobkrit.com

More Related Content

PDF
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
PDF
[React Native Tutorial] Lecture 6: Component, Props, and Network
PDF
Developing, building, testing and deploying react native apps
PDF
React && React Native workshop
PDF
React Native Firebase
PPTX
React Native: Introduction
PPTX
React js basics
PDF
Introduction to React Native
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
[React Native Tutorial] Lecture 6: Component, Props, and Network
Developing, building, testing and deploying react native apps
React && React Native workshop
React Native Firebase
React Native: Introduction
React js basics
Introduction to React Native

What's hot (20)

PDF
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
PDF
Introduction to react native
PDF
An Overview of the React Ecosystem
PPTX
React native introduction
PDF
Intro To React Native
PDF
React + Redux for Web Developers
PPT
React js
PDF
React native: building native iOS apps with javascript
PPTX
React js Online Training
PDF
Understanding Facebook's React.js
PPTX
React JS: A Secret Preview
PPTX
React Native for ReactJS Devs
PDF
React Native Workshop - React Alicante
PDF
Introduction to React Native & Redux
PPSX
React introduction
PDF
Optimizing React Native views for pre-animation
PDF
Lo mejor y peor de React Native @ValenciaJS
PDF
JOSA TechTalks - Better Web Apps with React and Redux
PPTX
Reactjs
PPTX
React js
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
Introduction to react native
An Overview of the React Ecosystem
React native introduction
Intro To React Native
React + Redux for Web Developers
React js
React native: building native iOS apps with javascript
React js Online Training
Understanding Facebook's React.js
React JS: A Secret Preview
React Native for ReactJS Devs
React Native Workshop - React Alicante
Introduction to React Native & Redux
React introduction
Optimizing React Native views for pre-animation
Lo mejor y peor de React Native @ValenciaJS
JOSA TechTalks - Better Web Apps with React and Redux
Reactjs
React js
Ad

Similar to React Native Introduction: Making Real iOS and Android Mobile App By JavaScript (20)

PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
PPTX
Introduction to react native with redux
PPTX
UCCSC 2016
PPTX
An evening with React Native
PPTX
React Native - Build Native Mobile App
PDF
React.js - and how it changed our thinking about UI
PPTX
React Native - Framework For Mobile App (Seminar)
PDF
Web Development with Delphi and React - ITDevCon 2016
PPTX
Ilya Ivanov - Advanced React-Native
PPTX
An Angular developer moving to React
PDF
Building front-end apps that Scale - FOSDEM 2014
PDF
React Tech Salon
PDF
React UI Development: Introduction to "UI Component as API"
PPTX
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
PPTX
Web Development - Roadmap to MERN stack development
PDF
Putting the Native in React Native - React Native Boston
PDF
A guide to hiring a great developer to build your first app (redacted version)
PPTX
From React to React Native - Things I wish I knew when I started
PDF
Top JavaScript Frameworks for Mobile App Development
PDF
An Introduction to ReactNative
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
Introduction to react native with redux
UCCSC 2016
An evening with React Native
React Native - Build Native Mobile App
React.js - and how it changed our thinking about UI
React Native - Framework For Mobile App (Seminar)
Web Development with Delphi and React - ITDevCon 2016
Ilya Ivanov - Advanced React-Native
An Angular developer moving to React
Building front-end apps that Scale - FOSDEM 2014
React Tech Salon
React UI Development: Introduction to "UI Component as API"
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Web Development - Roadmap to MERN stack development
Putting the Native in React Native - React Native Boston
A guide to hiring a great developer to build your first app (redacted version)
From React to React Native - Things I wish I knew when I started
Top JavaScript Frameworks for Mobile App Development
An Introduction to ReactNative
Ad

More from Kobkrit Viriyayudhakorn (20)

PDF
Thai E-Voting System
PPTX
Thai National ID Card OCR
PPTX
Chochae Robot - Thai voice communication extension pack for Service Robot
PDF
ศักยภาพของ AI สู่โอกาสใหม่แห่งการแข่งขันและความสำเร็จ (Thai AI updates in yea...
PDF
Thai Text processing by Transfer Learning using Transformer (Bert)
PDF
How Emoticon Affects Chatbot Users
PPTX
หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)
PDF
Check Raka Chatbot Pitching Presentation
PPTX
[Lecture 3] AI and Deep Learning: Logistic Regression (Coding)
PPTX
[Lecture 4] AI and Deep Learning: Neural Network (Theory)
PPTX
[Lecture 2] AI and Deep Learning: Logistic Regression (Theory)
PDF
ITS488 Lecture 6: Music and Sound Effect & GVR Try out.
PDF
Lecture 12: React-Native Firebase Authentication
PDF
Unity Google VR Cardboard Deployment on iOS and Android
PDF
ITS488 Lecture 4: Google VR Cardboard Game Development: Basket Ball Game #2
PDF
Lecture 4: ITS488 Digital Content Creation with Unity - Game and VR Programming
PDF
Lecture 2: C# Programming for VR application in Unity
PDF
Lecture 1 Introduction to VR Programming
PDF
Thai Word Embedding with Tensorflow
PDF
Lecture 3 - ES6 Script Advanced for React-Native
Thai E-Voting System
Thai National ID Card OCR
Chochae Robot - Thai voice communication extension pack for Service Robot
ศักยภาพของ AI สู่โอกาสใหม่แห่งการแข่งขันและความสำเร็จ (Thai AI updates in yea...
Thai Text processing by Transfer Learning using Transformer (Bert)
How Emoticon Affects Chatbot Users
หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)
Check Raka Chatbot Pitching Presentation
[Lecture 3] AI and Deep Learning: Logistic Regression (Coding)
[Lecture 4] AI and Deep Learning: Neural Network (Theory)
[Lecture 2] AI and Deep Learning: Logistic Regression (Theory)
ITS488 Lecture 6: Music and Sound Effect & GVR Try out.
Lecture 12: React-Native Firebase Authentication
Unity Google VR Cardboard Deployment on iOS and Android
ITS488 Lecture 4: Google VR Cardboard Game Development: Basket Ball Game #2
Lecture 4: ITS488 Digital Content Creation with Unity - Game and VR Programming
Lecture 2: C# Programming for VR application in Unity
Lecture 1 Introduction to VR Programming
Thai Word Embedding with Tensorflow
Lecture 3 - ES6 Script Advanced for React-Native

Recently uploaded (20)

PDF
DevOps & Developer Experience Summer BBQ
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Event Presentation Google Cloud Next Extended 2025
PDF
cuic standard and advanced reporting.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Cloud computing and distributed systems.
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Newfamily of error-correcting codes based on genetic algorithms
PDF
Advanced IT Governance
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
SAP855240_ALP - Defining the Global Template PUBLIC.pdf
PDF
CIFDAQ's Teaching Thursday: Moving Averages Made Simple
DevOps & Developer Experience Summer BBQ
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Understanding_Digital_Forensics_Presentation.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Event Presentation Google Cloud Next Extended 2025
cuic standard and advanced reporting.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Cloud computing and distributed systems.
Advanced Soft Computing BINUS July 2025.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Newfamily of error-correcting codes based on genetic algorithms
Advanced IT Governance
NewMind AI Weekly Chronicles - August'25 Week I
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
SAP855240_ALP - Defining the Global Template PUBLIC.pdf
CIFDAQ's Teaching Thursday: Moving Averages Made Simple

React Native Introduction: Making Real iOS and Android Mobile App By JavaScript

  • 1. ITS485 Lecture 1: 
 React Native Introduction Dr. Kobkrit Viriyayudhakorn iApp Technology Limited
 http://www.kobkrit.com
  • 5. Grading Policy • Quizzes: 10% • At the beginning of the class (Always be on time). • Term Project: 20% • Midterm exam: 35% (Open Books) • Final exam: 35% (Open Books)

  • 6. Term Project • Making a 5-10 Screens Mobile Application. • Group & Project Assignment after the midterm exam. • Set up a group of three. (36/3 = 12 groups) • 15% - Group scores - Usefulness, App Business Model, UI, UX, Functionality, Code Style, and Pitching. • 5% - Individual scores - App development questions target to each person during presentation. • 10 minutes presentation: Pitching 3 minutes, Code Explanation 2 minutes, Question & Answering 5 minutes.
  • 7. Books & Reference • https://facebook.github.io/reactnative/ • Bonnie Eisenman, Learning React Native Building Native Mobile Apps with JavaScript, O'Reilly Media, December 2015. • https://github.com/jondot/awesome-react-native • https://js.coach/react-native/
  • 9. What is React Native? • JavaScript framework for building iOS and Android mobile apps. • Based on popular JavaScript Web framework called React. • Created by Facebook. Firstly release iOS version on March 2015 and Android version on September 2015 • Writing the app by using JavaScript and XML-esque markup (JSX) • React-Native bridges and invokes the Native rendering API in Objective-C (iOS) and Java (Android)
  • 10. Approach of Mobile App Dev. Approach Platform Logic UI UX Dev Time* Native Object C, Swift (iOS), Java (Android) Native Native Smooth 6-24 weeks HTML5 Hybrid PhoneGap, Cordova, Ionic JS HTML,
 CSS Laggy 2-8 weeks Native Hybrid React Native,
 NativeScript JS Native Smooth 2-8 weeks * 20-30 screens mobile apps approximated based on instructor experiences
  • 11. Why React Native? • Native Experience • One language rules them all, JavaScript. • Fast & Great Development Experience • Don’t Waste Time Recompiling (Hot Reloading) • 80% Share code between Android & iOS • Great Debugging Tool using Chrome Developer Tools • Be able to bridge with Native Code when we need to.
  • 14. Debugging with Chrome Developer Tools
  • 15. Why not React Native? • React-Native is still relatively young compared with Native iOS and Android Communities (Released on 2015) • Some of Native API still are not supported. (But you can use the native libraries through) • Add one additional layer to mobile app project.
  • 16. What is React? • Declarative, Efficient, and Flexible JavaScript Library that Building User Interface on Website. • React Native is rooted from React. • React treats every thing as a Component. A React Component
  • 17. How React Native Works? • Q: How a Web framework (React) can be improved and become a Native Mobile Development Platform? • A: Flexibility of React’s Virtual DOM • React aimed to make Web application fast as much as possible. • DOM Changing (Changing the content of webpage) dynamically is expensive step. Re-rendering DOM is significant impact on performance. • Rather than directly render change DOM in the page, React compute the only diff that need to be render in memory by Virtual DOM and re-renders the minimal amount necessary.
  • 18. Virtual Dom, Technique of React => Root of React Native
  • 19. Another Benefits of Virtual DOM • Performance benefits. • Abstraction layers. • FB Engineer: What if React could render to a target other than the Web Browser’s DOM? • Instead of rendering HTML/CSS to the browser’s DOM. Why can’t we rendering mobile app by using Objective-C APIs to render to iOS, and invokes Java to render to Android.
  • 22. Async Rules • Good benefits of JavaScript is their asynchronous natures. • React-Native is running on separated thread using JavaScript asynchronous call via the event bridge to invokes the host native platform’s underlying APIs and UI elements. (Objective-C, Java) • Since, React-Native don’t run on the main UI rendering thread, it can do asynchronous call without impact user’s experience (such as delay).
  • 23. Android
 Native
 UI Event Bridge JS World Android World Thread 1 Main Thread AsyncCall (Non-Blocking)
  • 24. How React-Native Draw? • React for the Web, render normal HTML elements • React Native, render cross-platform (or platform- specific) native UI component. Cross Platform (iOS, Android) Platform Specific <DatePickerIOS>
  • 25. Example of Platform Specific Components <Switch> <SwitchIOS><SwitchAndroid>
  • 26. JSX • Combining JavaScript and XML-markup syntax to create view. • Single File Concept (Write down at Component Class), Not Seperate Files (Split HTML, CSS, JS) • Separation of concerns > Separation of technologies JSX (Underlined) Rendered View
  • 27. Styling • In Web, We have CSS, necessary part of the Web. • In React-Native, We have something similar to CSS, called Flexbox Layout Model. { background-color : ‘white’} { backgroundColor : ‘white’} CSS Camel Case in React
  • 29. React-Native Support • Mac OS can develop • iOS • Android • Windows OS can develop • Only Android
  • 30. HomeBrew Installation • Open Terminal (Click on Find icon on the top right of the screen) • Type “Terminal” • Enter $ /usr/bin/ruby -e "$(curl -fsSL https:// raw.githubusercontent.com/Homebrew/install/ master/install)"
  • 31. Install React-Native in Mac for iOS Development.
  • 33. Try • $ react-native init sampleProject • $ cd sampleProject • $ react-native run-ios
  • 34. IDE • Any Text Editor is fine. • Atom • React • React-Snippet • Atom-React-Native-CSS • Atom-React-Native- Autocomplete • Sublimes • Visual Studio Code
  • 36. Download Lecture Note After Class & Video http://www.kobkrit.com