SlideShare a Scribd company logo
ITS485 Lecture 1:
React Native Introduction
Dr. Kobkrit Viriyayudhakorn
iApp Technology Limited
http://www.kobkrit.com
l1-reactnativeintroduction-160816150540.pdf
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/
l1-reactnativeintroduction-160816150540.pdf
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.
l1-reactnativeintroduction-160816150540.pdf
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
l1-reactnativeintroduction-160816150540.pdf
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
Ad

More Related Content

Similar to l1-reactnativeintroduction-160816150540.pdf (20)

Ilya Ivanov - Advanced React-Native
Ilya Ivanov - Advanced React-NativeIlya Ivanov - Advanced React-Native
Ilya Ivanov - Advanced React-Native
OdessaJS Conf
 
Putting the Native in React Native - React Native Boston
Putting the Native in React Native - React Native BostonPutting the Native in React Native - React Native Boston
Putting the Native in React Native - React Native Boston
stan229
 
Web Development - Roadmap to MERN stack development
Web Development - Roadmap to MERN stack developmentWeb Development - Roadmap to MERN stack development
Web Development - Roadmap to MERN stack development
SwapnilNarayan
 
Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
Phil Leggetter
 
An Angular developer moving to React
An Angular developer moving to ReactAn Angular developer moving to React
An Angular developer moving to React
Souvik Basu
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Heiko Voigt
 
React Tech Salon
React Tech SalonReact Tech Salon
React Tech Salon
Chenguang ZHANG
 
React Native: Introduction
React Native: IntroductionReact Native: Introduction
React Native: Introduction
InnerFood
 
An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNative
Michał Taberski
 
React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"
Itaru Kitagawa
 
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdfWessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
Oursky
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
sparkfabrik
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
IT Arena
 
Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo Mobile
Andrew Ferrier
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid Does
Kevin McMahon
 
Top React Native Interview Questions and Answers in 2023
Top React Native Interview Questions and Answers in 2023Top React Native Interview Questions and Answers in 2023
Top React Native Interview Questions and Answers in 2023
Instaily Academy
 
Reactjs notes.pptx for web development- tutorial and theory
Reactjs  notes.pptx for web development- tutorial and theoryReactjs  notes.pptx for web development- tutorial and theory
Reactjs notes.pptx for web development- tutorial and theory
jobinThomas54
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
Paul van Zyl
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
Imam Raza
 
Ilya Ivanov - Advanced React-Native
Ilya Ivanov - Advanced React-NativeIlya Ivanov - Advanced React-Native
Ilya Ivanov - Advanced React-Native
OdessaJS Conf
 
Putting the Native in React Native - React Native Boston
Putting the Native in React Native - React Native BostonPutting the Native in React Native - React Native Boston
Putting the Native in React Native - React Native Boston
stan229
 
Web Development - Roadmap to MERN stack development
Web Development - Roadmap to MERN stack developmentWeb Development - Roadmap to MERN stack development
Web Development - Roadmap to MERN stack development
SwapnilNarayan
 
Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
Phil Leggetter
 
An Angular developer moving to React
An Angular developer moving to ReactAn Angular developer moving to React
An Angular developer moving to React
Souvik Basu
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Heiko Voigt
 
React Native: Introduction
React Native: IntroductionReact Native: Introduction
React Native: Introduction
InnerFood
 
An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNative
Michał Taberski
 
React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"
Itaru Kitagawa
 
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdfWessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
Oursky
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
sparkfabrik
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
IT Arena
 
Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo Mobile
Andrew Ferrier
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid Does
Kevin McMahon
 
Top React Native Interview Questions and Answers in 2023
Top React Native Interview Questions and Answers in 2023Top React Native Interview Questions and Answers in 2023
Top React Native Interview Questions and Answers in 2023
Instaily Academy
 
Reactjs notes.pptx for web development- tutorial and theory
Reactjs  notes.pptx for web development- tutorial and theoryReactjs  notes.pptx for web development- tutorial and theory
Reactjs notes.pptx for web development- tutorial and theory
jobinThomas54
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
Paul van Zyl
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
Imam Raza
 

Recently uploaded (20)

Evolution of Tree Felling Equipment, From Manual to Mechanized Solutions
Evolution of Tree Felling Equipment, From Manual to Mechanized SolutionsEvolution of Tree Felling Equipment, From Manual to Mechanized Solutions
Evolution of Tree Felling Equipment, From Manual to Mechanized Solutions
ganeshdukare428
 
Hot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t Skip
Hot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t SkipHot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t Skip
Hot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t Skip
Motronix
 
USINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdf
USINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdfUSINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdf
USINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdf
truongtuan283tvt
 
caterpillar 322 excavator service manual
caterpillar 322 excavator service manualcaterpillar 322 excavator service manual
caterpillar 322 excavator service manual
robert santiago
 
Traffic Pedestrian Shopping Functions.pptx
Traffic Pedestrian Shopping Functions.pptxTraffic Pedestrian Shopping Functions.pptx
Traffic Pedestrian Shopping Functions.pptx
lllllwlwwwjw
 
Make Personalised Millwork Solutions Using Accurate Draughting
Make Personalised Millwork Solutions Using Accurate DraughtingMake Personalised Millwork Solutions Using Accurate Draughting
Make Personalised Millwork Solutions Using Accurate Draughting
Synnoptechcad Solutions
 
book_data_strategy_thesolution desght menothly
book_data_strategy_thesolution desght menothlybook_data_strategy_thesolution desght menothly
book_data_strategy_thesolution desght menothly
santosh162
 
Belajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anak
Belajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anakBelajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anak
Belajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anak
Aan272
 
THE PROGRAMMABLE LOGIC CONTROLLER (PLC )
THE PROGRAMMABLE LOGIC CONTROLLER (PLC )THE PROGRAMMABLE LOGIC CONTROLLER (PLC )
THE PROGRAMMABLE LOGIC CONTROLLER (PLC )
omarkhaled681127
 
The value and Benefits of Part-Time Jobs.docx
The value and Benefits of Part-Time Jobs.docxThe value and Benefits of Part-Time Jobs.docx
The value and Benefits of Part-Time Jobs.docx
AkbarKhan935143
 
E bike project report new full SAURABH PANDEY
E bike project report new full SAURABH PANDEYE bike project report new full SAURABH PANDEY
E bike project report new full SAURABH PANDEY
KMCLU
 
An Overview of Electrical Actuation Mechanisms in Automation
An Overview of Electrical Actuation Mechanisms in AutomationAn Overview of Electrical Actuation Mechanisms in Automation
An Overview of Electrical Actuation Mechanisms in Automation
Infopitaara
 
Download New Holland E75CSR workshop manual with troubleshooting.pdf
Download New Holland E75CSR workshop manual with troubleshooting.pdfDownload New Holland E75CSR workshop manual with troubleshooting.pdf
Download New Holland E75CSR workshop manual with troubleshooting.pdf
Service Repair Manual
 
Tx 4x2 Service Manual John Deere Gator.pdf
Tx 4x2 Service Manual John Deere Gator.pdfTx 4x2 Service Manual John Deere Gator.pdf
Tx 4x2 Service Manual John Deere Gator.pdf
Service Repair Manual
 
23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx
23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx
23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx
LutfiNur6
 
John Deere HPX815E Repair Guide Download.pdf
John Deere HPX815E Repair Guide Download.pdfJohn Deere HPX815E Repair Guide Download.pdf
John Deere HPX815E Repair Guide Download.pdf
Service Repair Manual
 
TM151119 Transmission Problems Repair Manual
TM151119 Transmission Problems Repair ManualTM151119 Transmission Problems Repair Manual
TM151119 Transmission Problems Repair Manual
Service Repair Manual
 
Service Manual John Deere Gator 6x4 download.pdf
Service Manual John Deere Gator 6x4 download.pdfService Manual John Deere Gator 6x4 download.pdf
Service Manual John Deere Gator 6x4 download.pdf
Service Repair Manual
 
John Deere E100, E110, E120 Service manual.pdf
John Deere E100, E110, E120 Service manual.pdfJohn Deere E100, E110, E120 Service manual.pdf
John Deere E100, E110, E120 Service manual.pdf
Service Repair Manual
 
SM John Deere 331G & 333G Repair Schedule & Diagnostic.pdf
SM John Deere 331G & 333G Repair Schedule & Diagnostic.pdfSM John Deere 331G & 333G Repair Schedule & Diagnostic.pdf
SM John Deere 331G & 333G Repair Schedule & Diagnostic.pdf
Service Repair Manual
 
Evolution of Tree Felling Equipment, From Manual to Mechanized Solutions
Evolution of Tree Felling Equipment, From Manual to Mechanized SolutionsEvolution of Tree Felling Equipment, From Manual to Mechanized Solutions
Evolution of Tree Felling Equipment, From Manual to Mechanized Solutions
ganeshdukare428
 
Hot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t Skip
Hot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t SkipHot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t Skip
Hot Weather, Smooth Performance Audi Q5 Transmission Services You Can’t Skip
Motronix
 
USINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdf
USINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdfUSINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdf
USINGTHEFUNCTIONTHEORYTOEXPLAINDUECAUSEINTHEINTERFLORACASE.pdf
truongtuan283tvt
 
caterpillar 322 excavator service manual
caterpillar 322 excavator service manualcaterpillar 322 excavator service manual
caterpillar 322 excavator service manual
robert santiago
 
Traffic Pedestrian Shopping Functions.pptx
Traffic Pedestrian Shopping Functions.pptxTraffic Pedestrian Shopping Functions.pptx
Traffic Pedestrian Shopping Functions.pptx
lllllwlwwwjw
 
Make Personalised Millwork Solutions Using Accurate Draughting
Make Personalised Millwork Solutions Using Accurate DraughtingMake Personalised Millwork Solutions Using Accurate Draughting
Make Personalised Millwork Solutions Using Accurate Draughting
Synnoptechcad Solutions
 
book_data_strategy_thesolution desght menothly
book_data_strategy_thesolution desght menothlybook_data_strategy_thesolution desght menothly
book_data_strategy_thesolution desght menothly
santosh162
 
Belajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anak
Belajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anakBelajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anak
Belajar_ huruf_hijaiyah kelas 1 sekolah dasar anak anak
Aan272
 
THE PROGRAMMABLE LOGIC CONTROLLER (PLC )
THE PROGRAMMABLE LOGIC CONTROLLER (PLC )THE PROGRAMMABLE LOGIC CONTROLLER (PLC )
THE PROGRAMMABLE LOGIC CONTROLLER (PLC )
omarkhaled681127
 
The value and Benefits of Part-Time Jobs.docx
The value and Benefits of Part-Time Jobs.docxThe value and Benefits of Part-Time Jobs.docx
The value and Benefits of Part-Time Jobs.docx
AkbarKhan935143
 
E bike project report new full SAURABH PANDEY
E bike project report new full SAURABH PANDEYE bike project report new full SAURABH PANDEY
E bike project report new full SAURABH PANDEY
KMCLU
 
An Overview of Electrical Actuation Mechanisms in Automation
An Overview of Electrical Actuation Mechanisms in AutomationAn Overview of Electrical Actuation Mechanisms in Automation
An Overview of Electrical Actuation Mechanisms in Automation
Infopitaara
 
Download New Holland E75CSR workshop manual with troubleshooting.pdf
Download New Holland E75CSR workshop manual with troubleshooting.pdfDownload New Holland E75CSR workshop manual with troubleshooting.pdf
Download New Holland E75CSR workshop manual with troubleshooting.pdf
Service Repair Manual
 
Tx 4x2 Service Manual John Deere Gator.pdf
Tx 4x2 Service Manual John Deere Gator.pdfTx 4x2 Service Manual John Deere Gator.pdf
Tx 4x2 Service Manual John Deere Gator.pdf
Service Repair Manual
 
23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx
23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx
23090120014_Ahmad Lutfi Nur Wahid_Tugas Sanitasi.docx
LutfiNur6
 
John Deere HPX815E Repair Guide Download.pdf
John Deere HPX815E Repair Guide Download.pdfJohn Deere HPX815E Repair Guide Download.pdf
John Deere HPX815E Repair Guide Download.pdf
Service Repair Manual
 
TM151119 Transmission Problems Repair Manual
TM151119 Transmission Problems Repair ManualTM151119 Transmission Problems Repair Manual
TM151119 Transmission Problems Repair Manual
Service Repair Manual
 
Service Manual John Deere Gator 6x4 download.pdf
Service Manual John Deere Gator 6x4 download.pdfService Manual John Deere Gator 6x4 download.pdf
Service Manual John Deere Gator 6x4 download.pdf
Service Repair Manual
 
John Deere E100, E110, E120 Service manual.pdf
John Deere E100, E110, E120 Service manual.pdfJohn Deere E100, E110, E120 Service manual.pdf
John Deere E100, E110, E120 Service manual.pdf
Service Repair Manual
 
SM John Deere 331G & 333G Repair Schedule & Diagnostic.pdf
SM John Deere 331G & 333G Repair Schedule & Diagnostic.pdfSM John Deere 331G & 333G Repair Schedule & Diagnostic.pdf
SM John Deere 331G & 333G Repair Schedule & Diagnostic.pdf
Service Repair Manual
 
Ad

l1-reactnativeintroduction-160816150540.pdf

  • 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