Expo - Zero to App.pptx

Expo RN:
Zero to App
Tony Kharioki
5yrs of React Native
- React Native coach @ SW
- Senior FE @ PXY
- Web3 @ Tamago
- Open-source ninja
- Co-author of React Interview
Guide
- Mentor
- Not a GDE
@kharioki
X(twitter), Instagram,
GitHub, Vercel, dev.to,
LinkedIn, Polywork,
Buildspace, Reddit,
Indie Hackers
https://kharioki.com
Key Takeaways
- Why Expo => understand why your best bet
is Expo
- Sift through the noise and get started
quick
- Recruit some of you to the Expo/React
Native side
Notes :
- Cross-Platform - focussed on iOS, Android
and web
- 0-100 very fast - We are gonna start
small/easy and 🚀
- Not dwell on React as much
Case Study
A client approaches you to build a mobile app for their product
Or
Your team wants to build a mobile app to supplement their web app
Or
You lied on job application and now take-home test involves building a
mobile app
When deciding on starting a mobile app
Platform
(iOS/Android/web)
Development Cost
Budget
Learning Curve
Languages
Ecosystem
Performance
Complexity
Maintenance
Deployment
Integrations
UX
Native APIs
Speed
Tasks:
UI
Web views
Permissions
Build Pipelines
State
Management
Analytics
Typescript/
dev tools
Upgrades
Versioning
Navigation
Testing
Caching
Native Modules
Styling OTA
Deep Linking
Notifications
Group tasks in a mental model
Priority
Complexity
State Management
UI
Build Pipeline Testing
Styling
Caching
Versioning
Typescript
Analytics
Permissions
Web Views
CI/CD
Navigation
Deep Linking
Native Modules
Upgrades
Database
OTA
Updates
Languages and Tools
Platforms
Java Kotlin Swift/Objective C React
React Native
Expo
App development is hard,
React and Expo make it easy!
So Why use React Native:
- Uses Proper native views
- Custom native clients
- Cross-platform support
- Multi-threading by default - New Architecture
And what was hard about React Native:
- High learning curve
- Dependency hell
- Deployment process
- Painful upgrading
Developing mobile apps with Expo
Expo => A set of tools for building with RN
Provides tools that are common in web dev:
- Reusable prebuilt runtime like browser
- A set of native APIs
- Very fast iteration speeds
- Integrated cloud services for seamless
deploying
Out-of-the-box support on Expo
Priority
Complexity
State Management
UI
Build Pipeline Testing
Styling
Caching
Versioning
Typescript
Analytics
Permissions
Web Views
CI/CD
Navigation
Deep Linking
Native Modules
Upgrades
Database
OTA
Updates
We’ll talk about these tools:
Expo CLI
Expo SDK
Expo Go
Expo Snack
Expo Application Services (EAS)
Expo Orbit
Expo Dev Client
Expo Workflows
Now the cool stuff…
Expo CLI
Helps us interface with the bundler, start
up a dev server and other dev tasks
By installing the package globally we can
quickly create and generate a new project
We don’t need any native code to get
started
Expo SDK A set of community packages versioned
together
- Each is typed
- Supports iOS, Android and Web
- It solves the dependency issue
- Examples: expo-camera, expo-splash-
screen, expo-font, expo-image-picker,
expo-location, etc
- All the native code is built ahead of time
into Expo Go
Expo Go
Is a reusable native runtime
- Downloadable from app store or play store
- Has most APIs you’ll need to make complex
apps
- Reduces amount of time from nothing to hello
world
- Makes it as easy as web dev
Expo Snack
Is a platform designed for running React Native apps in the browser.
Code created can be saved as “snacks” and even shared
- requires no setup & can be previewed immediately on real devices
- Great for web devs unfamiliar to native apis
- RN devs who want to prototype/share an idea
- Bug reporting
- Live code sessions
Expo - Zero to App.pptx
Expo Application Services
These are deeply integrated cloud services for Expo and React Native
apps.
- Makes it easier to deploy mobile applications
- Submit app with single command
- It bootstraps app’s native code signing & performs validation
- Sends the source code to EAS build servers
- CI servers return binary files, or push them to stores
Expo Orbit
A cool new way of launching builds
and running snacks in your
devices/simulators
- Is a macOS menu bar app
- Install and launch builds from
EAS
- Launch Snack projects in
simulators
- Install and launch apps from
local files
Expo - Zero to App.pptx
Expo Dev Client
What if we need to use native code?
- We need a custom dev client like expo Go
With special set of native features
- A dev client sits between the OS and the react
app
- To add custom native code, install any RN
module and rebuild app
Something like this:
Expo Workflows
Managed Workflow:
- Let’s us avoid working with
native code directly
- Maximizes cross-platform
configuration
- iOS/Android files are
managed by Expo CLI
- To upgrade simply configure
app.json file
Bare Workflow:
- Let’s us have full control
over everything
- Updating can be a pain
- Like RN project without
Expo
Expo - Zero to App.pptx
1 de 28

Recomendados

Mobile apps for web developers por
Mobile apps for web developersMobile apps for web developers
Mobile apps for web developersAppzio
70 vistas57 diapositivas
Enterprise Hybrid Feasibility Analysis por
Enterprise Hybrid Feasibility AnalysisEnterprise Hybrid Feasibility Analysis
Enterprise Hybrid Feasibility AnalysisLawrence Nyakiso
301 vistas23 diapositivas
Mobile application development platform por
Mobile application development platformMobile application development platform
Mobile application development platformi4consulting.org
456 vistas8 diapositivas
SenchaCon 2016: Cross-Platform Mobile App Development with Cordova and Visual... por
SenchaCon 2016: Cross-Platform Mobile App Development with Cordova and Visual...SenchaCon 2016: Cross-Platform Mobile App Development with Cordova and Visual...
SenchaCon 2016: Cross-Platform Mobile App Development with Cordova and Visual...Sencha
510 vistas40 diapositivas
Sencha Tooling - Senchacon Conference por
Sencha Tooling  - Senchacon ConferenceSencha Tooling  - Senchacon Conference
Sencha Tooling - Senchacon ConferenceSandeep Adwankar
65 vistas40 diapositivas
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker... por
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Ajeet Singh Raina
511 vistas49 diapositivas

Más contenido relacionado

Similar a Expo - Zero to App.pptx

Ionic App Platform Overview por
Ionic App Platform Overview Ionic App Platform Overview
Ionic App Platform Overview Ionic Framework
248 vistas20 diapositivas
Business model driven cloud adoption - what NI is doing in the cloud por
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloudErnest Mueller
1.8K vistas30 diapositivas
Codename one por
Codename oneCodename one
Codename oneSoftware Infrastructure
1.3K vistas225 diapositivas
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development por
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentDevOps.com
810 vistas41 diapositivas
dot net por
dot netdot net
dot netsambhajimeher
163 vistas10 diapositivas
Shanling_resume por
Shanling_resumeShanling_resume
Shanling_resumelucifer1986
259 vistas4 diapositivas

Similar a Expo - Zero to App.pptx(20)

Business model driven cloud adoption - what NI is doing in the cloud por Ernest Mueller
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
Ernest Mueller1.8K vistas
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development por DevOps.com
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
DevOps.com810 vistas
Shanling_resume por lucifer1986
Shanling_resumeShanling_resume
Shanling_resume
lucifer1986259 vistas
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A... por Heiko Voigt
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
Heiko Voigt227 vistas
Cross platform mobile app development tools review por Uday Kothari
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
Uday Kothari2.9K vistas
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch por Steve Drucker
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Steve Drucker37.1K vistas
Continuous delivery with azure app service por Nabeel Khan
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app service
Nabeel Khan590 vistas
What is Codename One - Transcript.pdf por ShaiAlmog1
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdf
ShaiAlmog1897 vistas
Ordina SOFTC Presentation - TFS and JAVA, better together por Ordina Belgium
Ordina SOFTC Presentation - TFS and JAVA, better togetherOrdina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better together
Ordina Belgium672 vistas
Mastinder singh visualcv_resume por Mastinder Singh
Mastinder singh visualcv_resumeMastinder singh visualcv_resume
Mastinder singh visualcv_resume
Mastinder Singh370 vistas
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T... por RIA RUI Society
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
RIA RUI Society5.2K vistas
Introduction to Docker - Vellore Institute of Technology por Ajeet Singh Raina
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina473 vistas
Fastlane - Automation and Continuous Delivery for iOS Apps por Sarath C
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS Apps
Sarath C1.1K vistas

Último

Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... por
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Donato Onofri
773 vistas34 diapositivas
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... por
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...HCLSoftware
6 vistas2 diapositivas
El Arte de lo Possible por
El Arte de lo PossibleEl Arte de lo Possible
El Arte de lo PossibleNeo4j
39 vistas35 diapositivas
Winter '24 Release Chat.pdf por
Winter '24 Release Chat.pdfWinter '24 Release Chat.pdf
Winter '24 Release Chat.pdfmelbourneauuser
9 vistas20 diapositivas
SAP FOR TYRE INDUSTRY.pdf por
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdfVirendra Rai, PMP
24 vistas3 diapositivas
Software evolution understanding: Automatic extraction of software identifier... por
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Ra'Fat Al-Msie'deen
7 vistas33 diapositivas

Último(20)

Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... por Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri773 vistas
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... por HCLSoftware
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
HCLSoftware6 vistas
El Arte de lo Possible por Neo4j
El Arte de lo PossibleEl Arte de lo Possible
El Arte de lo Possible
Neo4j39 vistas
Software evolution understanding: Automatic extraction of software identifier... por Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Fleet Management Software in India por Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 vistas
360 graden fabriek por info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349236 vistas
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit... por Deltares
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
Deltares13 vistas
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... por Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares9 vistas
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... por Deltares
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
Deltares10 vistas
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols por Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 vistas
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema por Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
Deltares17 vistas
Advanced API Mocking Techniques por Dimpy Adhikary
Advanced API Mocking TechniquesAdvanced API Mocking Techniques
Advanced API Mocking Techniques
Dimpy Adhikary19 vistas
SUGCON ANZ Presentation V2.1 Final.pptx por Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor22 vistas
Citi TechTalk Session 2: Kafka Deep Dive por confluent
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
confluent17 vistas
What Can Employee Monitoring Software Do?​ por wAnywhere
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​
wAnywhere21 vistas

Expo - Zero to App.pptx

  • 2. Tony Kharioki 5yrs of React Native - React Native coach @ SW - Senior FE @ PXY - Web3 @ Tamago - Open-source ninja - Co-author of React Interview Guide - Mentor - Not a GDE @kharioki X(twitter), Instagram, GitHub, Vercel, dev.to, LinkedIn, Polywork, Buildspace, Reddit, Indie Hackers https://kharioki.com
  • 3. Key Takeaways - Why Expo => understand why your best bet is Expo - Sift through the noise and get started quick - Recruit some of you to the Expo/React Native side
  • 4. Notes : - Cross-Platform - focussed on iOS, Android and web - 0-100 very fast - We are gonna start small/easy and 🚀 - Not dwell on React as much
  • 5. Case Study A client approaches you to build a mobile app for their product Or Your team wants to build a mobile app to supplement their web app Or You lied on job application and now take-home test involves building a mobile app
  • 6. When deciding on starting a mobile app Platform (iOS/Android/web) Development Cost Budget Learning Curve Languages Ecosystem Performance Complexity Maintenance Deployment Integrations UX Native APIs Speed
  • 7. Tasks: UI Web views Permissions Build Pipelines State Management Analytics Typescript/ dev tools Upgrades Versioning Navigation Testing Caching Native Modules Styling OTA Deep Linking Notifications
  • 8. Group tasks in a mental model Priority Complexity State Management UI Build Pipeline Testing Styling Caching Versioning Typescript Analytics Permissions Web Views CI/CD Navigation Deep Linking Native Modules Upgrades Database OTA Updates
  • 10. Platforms Java Kotlin Swift/Objective C React React Native Expo App development is hard, React and Expo make it easy!
  • 11. So Why use React Native: - Uses Proper native views - Custom native clients - Cross-platform support - Multi-threading by default - New Architecture
  • 12. And what was hard about React Native: - High learning curve - Dependency hell - Deployment process - Painful upgrading
  • 13. Developing mobile apps with Expo Expo => A set of tools for building with RN Provides tools that are common in web dev: - Reusable prebuilt runtime like browser - A set of native APIs - Very fast iteration speeds - Integrated cloud services for seamless deploying
  • 14. Out-of-the-box support on Expo Priority Complexity State Management UI Build Pipeline Testing Styling Caching Versioning Typescript Analytics Permissions Web Views CI/CD Navigation Deep Linking Native Modules Upgrades Database OTA Updates
  • 15. We’ll talk about these tools: Expo CLI Expo SDK Expo Go Expo Snack Expo Application Services (EAS) Expo Orbit Expo Dev Client Expo Workflows
  • 16. Now the cool stuff…
  • 17. Expo CLI Helps us interface with the bundler, start up a dev server and other dev tasks By installing the package globally we can quickly create and generate a new project We don’t need any native code to get started
  • 18. Expo SDK A set of community packages versioned together - Each is typed - Supports iOS, Android and Web - It solves the dependency issue - Examples: expo-camera, expo-splash- screen, expo-font, expo-image-picker, expo-location, etc - All the native code is built ahead of time into Expo Go
  • 19. Expo Go Is a reusable native runtime - Downloadable from app store or play store - Has most APIs you’ll need to make complex apps - Reduces amount of time from nothing to hello world - Makes it as easy as web dev
  • 20. Expo Snack Is a platform designed for running React Native apps in the browser. Code created can be saved as “snacks” and even shared - requires no setup & can be previewed immediately on real devices - Great for web devs unfamiliar to native apis - RN devs who want to prototype/share an idea - Bug reporting - Live code sessions
  • 22. Expo Application Services These are deeply integrated cloud services for Expo and React Native apps. - Makes it easier to deploy mobile applications - Submit app with single command - It bootstraps app’s native code signing & performs validation - Sends the source code to EAS build servers - CI servers return binary files, or push them to stores
  • 23. Expo Orbit A cool new way of launching builds and running snacks in your devices/simulators - Is a macOS menu bar app - Install and launch builds from EAS - Launch Snack projects in simulators - Install and launch apps from local files
  • 25. Expo Dev Client What if we need to use native code? - We need a custom dev client like expo Go With special set of native features - A dev client sits between the OS and the react app - To add custom native code, install any RN module and rebuild app
  • 27. Expo Workflows Managed Workflow: - Let’s us avoid working with native code directly - Maximizes cross-platform configuration - iOS/Android files are managed by Expo CLI - To upgrade simply configure app.json file Bare Workflow: - Let’s us have full control over everything - Updating can be a pain - Like RN project without Expo

Notas del editor

  1. Platform - decide whether you wanna target ios, android, or both Cost - consider cost, e.g developing for ios requires a Mac, android has rules for devices testing Speed - how quickl you need to develop app UX - do you want some platform-specific feel, or a cross-platform look and feel Performance - native apps have an edge but crossplatform is ever improving Access to Native APIs - do you wanna use core apis like camera, gps, gyroscope Community - size and activeness of developer community Learning curve - for a team are yall already familiar with a particular technology Budget - native may require separate dev teams Complexity - how complex is the app gonna be Deployment and distribution - understand deployment flow for ios and android Integrations - how it integrates with 3rd party e.g firebas, aws, stripe etc
  2. But using React Native, we can write React and JavaScript that renders to each platform using the same code base. This is very similar to a mobile browser, which lets you run React DOM code on multiple different platforms, which is by design. In the old days we’d have three separate teams working in silos - obviously that is less efficient than having one team It's never been simpler to build and deploy powerful mobile apps with incredible features to both Android and iOS users all over the world.
  3. React is very intuitive for building and scaling large front-end applications. instead of drawing our views to Skia, like we would in Chrome, React Native uses proper native views This means that we can use platform optimizations like smooth scrolling, gestures, and complex animations, which is known to be a weak point in mobile browsers. We can create custom native clients that expose extra native functionality to our app. Think of this like building a browser, but with Bluetooth support added to it. And we can reuse the majority of our application code across multiple different platforms. We have the potential to scale our app to support more platforms in the future. And finally, we can utilize multiple different threads. By default, everything runs in a JavaScript thread, minimizing the amount of business logic that runs on the main UI thread. This is a pretty advanced architecture which you just get for free by simply using React Native. So this is pretty awesome.
  4. Now, React Native, of course, is not without its issues, ranging from mildly annoying to highly annoying. So let's talk about some of them. First is that in order to get a Hello World app running, just Hello World, we need to create a native runtime. This differs from web development where the native runtime is already built ahead of time and downloaded on your computer. That would be Chrome or Safari, the web browsers. And they can just load your JavaScript project inside of them. Second is that dependencies in React Native are much harder to manage than in web development. In React Native, you need to install the native code via NPM, whereas in web development, the native code is already built ahead of time into the browser. And the APIs and native code are designed by W3C, so they're very well thought out and just well constructed. Third is that your app's runtime must be distributed to the App Store or Google Play Store, with a few exceptions for testing of course. This means that you must perform code signing for your application, which is complicated and prone to errors. Finally, upgrading your React Native application is quite painful. You need some familiarity with both iOS and Android native development in order to do it, and upgrades happen pretty frequently
  5. Expo provides many tools that web developers have come to expect
  6. You can build your app locally with expo CLI or remotely with EAS CLI. To build your app locally you need native dev tools installed that is xcode and android studio As you can see, the development cycle is pretty fast and really enjoyable. Unlike React DOM development, React Native uses primitives. So instead of div, you'll use something like view. Instead of image, you'll use image. And instead of span, you'll use text. Each one of these elements then draws to the correct native view for each platform. So on iOS, a view would render to a UI view, and on web, a view would render to a div, and so on and so forth. And finally, these primitives render out to something which generally looks the same across all platforms. React Native only provides a handful of core primitives. The majority of complex features come from community packages.
  7. And this is probably the closest thing that React Native has to a W3C-type spec at the moment.
  8. This is useful because native builds require a lot of local resources, which are hard to validate and just get set up correctly. And we've also found that a lot of developers just don't have macOS machines, which is required for building on iOS apps.
  9. So now that we've talked about deployment, let's talk a little bit about native code. Up until this point, we've only covered the React code and haven't had to interact with any custom native modules, but eventually you may find that you need some custom code or third-party library that isn't available in Expo Go or the Expo SDK. Now for this, we can easily create a custom development client, which is like Expo Go, but with a special set of native features. The development client sits between the OS and the React app. So kind of think of it like a web browser, but special and native.