SlideShare a Scribd company logo
1 of 33
Download to read offline
Building an App for Mobile and Web
with Expo
4 ReactATL
4 2021-12-01
4 Josh Justice
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 1
Today I'm going to be sharing
with you an app built with
react-native-web.
It's one codebase and it serves
for three platforms: Android,
iOS, and a web app.
react-native-web
One Codebase, Three Platforms
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 2
It's a real app that's live today on
the web and in the iOS App Store
Some of you may be thinking to
yourself "great, I want to see a real
app, not just another todo list."
If so, I have some bad news for you
A Real App in the App
Store
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 3
Surely
A focused todo app giving
you only what you need
to get your todos done.
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 4
Another todo app?
Surely. You jest!
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 5
I do. I do Jest.
describe('arrayWithItemMovedDownward', () => {
const item1 = {name: 'Item 1'};
const item2 = {name: 'Item 2'};
const item3 = {name: 'Item 3'};
const item4 = {name: 'Item 4'};
it('moves an item downward', () => {
const array = [
item1, item2, item3, item4,
];
const result =
arrayWithItemMovedDownward(
array,
item1,
);
expect(result).toEqual([
item2,
item1,
item3,
item4,
]);
});
});
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 6
It's free to use, so you can go to
surelytodo.com to use the web
version, or to get the link to
download it on iOS.
It's also open-source, so you
can pull it down and check it out.
Web/iOS: surelytodo.com
Source: bit.ly/surely-expo
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 7
Overview
4 What is React Native Web?
4 Implementation Notes
4 When to Use React Native Web
4 Conclusion: On Abstractions
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 8
This is Not an
Intro to React Native
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 9
Intro to React Native
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 10
Software for 17 years
Backend, frontend web, native mobile,
React Native
Web Platform Lead at Big Nerd Ranch
If you're looking for work, we'd love to
hire you
If you need a React Native app, we'd love
for you to apply
Me
bignerdranch.com
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 11
What is React Native Web?
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 12
Using React on the web: for
example, to create a button
But you also have iOS and Android
mobile apps: each a different way to
create a button
That's three things to build, with
three technologies
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 13
React Native lets you build with React
paradigms
It creates its own UI abstraction, so
you create a Pressable, and it creates
the corresponding iOS and Android UI
Now just two things to build, both
using React paradigm
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 14
React Native web takes your
React Native code and lets you
run it on the web.
Instead of creating an iOS or
Android UI, it creates a
browser UI
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 15
Now you don't need the
separate React app. Just one
app, one codebase, three
platforms
Tradeoffs
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 16
React Native for Web
4 github.com/necolas/react-native-web
4 Can be used in any React Native project
4 Recommended way to use it is Expo
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 17
Implementation Notes
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 18
Implementation Notes
4 Visuals
4 Navigation and URLs
4 Platform Differences
4 Testing
4 Release
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 19
To the code!
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 20
When to Use
React Native Web
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 21
Sometimes the web is enough.
When to Use React Native Web
1. You need both a web and
mobile app.
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 22
If much of the feature set is
different, you might as well do
a separate React web app.
When to Use React Native Web
2. It's the same app on
mobile and web.
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 23
Because you aren't writing
HTML, you're writing React
Native components, and those
are being translated to HTML.
When to Use React Native Web
3. You don't need fine-
grained control of HTML.
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 24
Conclusion:
On Abstractions
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 25
Some people get excited by
finding ways to do more in
software
Data analysis, machine
learning, crypto
Do More!
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 26
That isn't the kind of problem
that gets me excited to solve it
Do More!
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 27
I get excited by finding ways to
do more with less
That is, build things with less
effort
Do More!
Do More With Less!
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 28
Accidental Complexity refers to things
in software development that take a
lot of effort, but they don't need to
If we can find ways to get rid of that
complexity, we can go much faster
It's not just about saving time; it
allows new paradigms
Accidental Complexity
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 29
When you can build software efficiently, it doesn't have to be a full-
time job.
Teams and individuals working in other fields can make their own
software to make their work better.
Now, we do work in software. For us, this means if you want to make
an app for yourself, depending on your life circumstances you might
be able to do it in your spare time.
This means you don't need to start a business to do it, and you
don't even have to charge anyone for it. You can offer free accounts
and open-source it.
It's also easier to ship the project, because you don't have to add
every feature and configuration option in the world since it meets
your needs.
"Personal Software"
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 30
Expo Web, React Navigation, and
RN Paper are a great stack to
remove accidental complexity and
empower you to make personal
software
This gets me really excited about
them
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 31
Questions?
4 surelytodo.com
4 bit.ly/surely-expo
4 bignerdranch.com
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 32
Thank you!
Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 33

More Related Content

What's hot

iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group Meeting
Jim Tochterman
 
Importance of Mobile Applications
Importance of Mobile ApplicationsImportance of Mobile Applications
Importance of Mobile Applications
Futuready Media
 
Appcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-DevelopmentAppcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-Development
h_marvin
 

What's hot (20)

Developing Mobile Application using Phonegap
Developing Mobile Application using PhonegapDeveloping Mobile Application using Phonegap
Developing Mobile Application using Phonegap
 
Rits Brown Bag - React Native and Salesforce
Rits Brown Bag - React Native and SalesforceRits Brown Bag - React Native and Salesforce
Rits Brown Bag - React Native and Salesforce
 
Developing with Phonegap - Adobe Refresh 2012
Developing with Phonegap - Adobe Refresh 2012Developing with Phonegap - Adobe Refresh 2012
Developing with Phonegap - Adobe Refresh 2012
 
Where Johnson From
Where Johnson FromWhere Johnson From
Where Johnson From
 
Developing Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile ApplicationsDeveloping Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile Applications
 
React native automation testing
React native automation testingReact native automation testing
React native automation testing
 
PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010
 
How to optimize your react native app performance
How to optimize your react native app performance How to optimize your react native app performance
How to optimize your react native app performance
 
iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group Meeting
 
Shelving and Glass Company App Details
Shelving and Glass Company App DetailsShelving and Glass Company App Details
Shelving and Glass Company App Details
 
PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
 
Ionic Hybrid Mobile Application
Ionic Hybrid Mobile ApplicationIonic Hybrid Mobile Application
Ionic Hybrid Mobile Application
 
Mobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool LabsMobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool Labs
 
Phonegap - An Overview
Phonegap - An OverviewPhonegap - An Overview
Phonegap - An Overview
 
Importance of Mobile Applications
Importance of Mobile ApplicationsImportance of Mobile Applications
Importance of Mobile Applications
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
FRONT-END WEB DEVELOPMENT WITH REACTJS
FRONT-END WEB DEVELOPMENT WITH REACTJSFRONT-END WEB DEVELOPMENT WITH REACTJS
FRONT-END WEB DEVELOPMENT WITH REACTJS
 
Appcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-DevelopmentAppcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-Development
 
Ionic event: March 2021
Ionic event: March 2021Ionic event: March 2021
Ionic event: March 2021
 
Reark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJavaReark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJava
 

Similar to Building an App for Mobile and Web with Expo

Similar to Building an App for Mobile and Web with Expo (20)

the benefits of react native to developing ios and android application from s...
the benefits of react native to developing ios and android application from s...the benefits of react native to developing ios and android application from s...
the benefits of react native to developing ios and android application from s...
 
When to choose and avoid react native for mobile app development
When to choose and avoid react native for mobile app developmentWhen to choose and avoid react native for mobile app development
When to choose and avoid react native for mobile app development
 
React Native for React Developers v.2.0.pdf
React Native for React Developers v.2.0.pdfReact Native for React Developers v.2.0.pdf
React Native for React Developers v.2.0.pdf
 
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentHow native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App Development
 
13 Great Examples Of React Native Apps In 2020.pdf
13 Great Examples Of React Native Apps In 2020.pdf13 Great Examples Of React Native Apps In 2020.pdf
13 Great Examples Of React Native Apps In 2020.pdf
 
What is React Native and When to Choose It For Your Project.pdf
What is React Native and When to Choose It For Your Project.pdfWhat is React Native and When to Choose It For Your Project.pdf
What is React Native and When to Choose It For Your Project.pdf
 
How react native app is an ideal choice for every start up businesses
How react native app is an ideal choice for every start up businessesHow react native app is an ideal choice for every start up businesses
How react native app is an ideal choice for every start up businesses
 
6 Reasons Why You Should Create React Native Apps For Your Enterprise in 2021
6 Reasons Why You Should Create React Native Apps For Your Enterprise in 20216 Reasons Why You Should Create React Native Apps For Your Enterprise in 2021
6 Reasons Why You Should Create React Native Apps For Your Enterprise in 2021
 
Checkout top 7 Reasons Why React Native is Growing Rapidly
Checkout top 7 Reasons Why React Native is Growing RapidlyCheckout top 7 Reasons Why React Native is Growing Rapidly
Checkout top 7 Reasons Why React Native is Growing Rapidly
 
React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why
 
Advantages Of Using React Native For Mobile App Development
Advantages Of Using React Native For Mobile App DevelopmentAdvantages Of Using React Native For Mobile App Development
Advantages Of Using React Native For Mobile App Development
 
Top successful companies made using React Native app development.pdf
Top successful companies made using React Native app development.pdfTop successful companies made using React Native app development.pdf
Top successful companies made using React Native app development.pdf
 
A Comparison of Ionic and React Native.pdf
A Comparison of Ionic and React Native.pdfA Comparison of Ionic and React Native.pdf
A Comparison of Ionic and React Native.pdf
 
Meteor Mobile App Development
Meteor Mobile App DevelopmentMeteor Mobile App Development
Meteor Mobile App Development
 
Why big organizations like tesla, facebook, walmart, skype are using react na...
Why big organizations like tesla, facebook, walmart, skype are using react na...Why big organizations like tesla, facebook, walmart, skype are using react na...
Why big organizations like tesla, facebook, walmart, skype are using react na...
 
React Native App Development in 2023-Tips to Practice.pdf
React Native App Development in 2023-Tips to Practice.pdfReact Native App Development in 2023-Tips to Practice.pdf
React Native App Development in 2023-Tips to Practice.pdf
 
React Native for Application Development
React Native for Application DevelopmentReact Native for Application Development
React Native for Application Development
 
React Native_ Pros and Cons for Mobile app development.pdf
React Native_ Pros and Cons for Mobile app development.pdfReact Native_ Pros and Cons for Mobile app development.pdf
React Native_ Pros and Cons for Mobile app development.pdf
 
React Native - Build Native Mobile App
React Native - Build Native Mobile AppReact Native - Build Native Mobile App
React Native - Build Native Mobile App
 
React Native App Development_ The Ultimate Guide In 2022.pdf
React Native App Development_ The Ultimate Guide In 2022.pdfReact Native App Development_ The Ultimate Guide In 2022.pdf
React Native App Development_ The Ultimate Guide In 2022.pdf
 

More from Josh Justice

Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022
Josh Justice
 

More from Josh Justice (16)

Effective Detox Testing - React Advanced 2023
Effective Detox Testing - React Advanced 2023Effective Detox Testing - React Advanced 2023
Effective Detox Testing - React Advanced 2023
 
Designing Effective Tests with React Testing Library - React Summit 2023
Designing Effective Tests with React Testing Library - React Summit 2023Designing Effective Tests with React Testing Library - React Summit 2023
Designing Effective Tests with React Testing Library - React Summit 2023
 
Testing React Native Apps - Chain React 2023
Testing React Native Apps - Chain React 2023Testing React Native Apps - Chain React 2023
Testing React Native Apps - Chain React 2023
 
Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022
 
Building for Mobile and Web with Expo - React Day Berlin 2022
Building for Mobile and Web with Expo - React Day Berlin 2022Building for Mobile and Web with Expo - React Day Berlin 2022
Building for Mobile and Web with Expo - React Day Berlin 2022
 
Intro to React Native Testing Library
Intro to React Native Testing LibraryIntro to React Native Testing Library
Intro to React Native Testing Library
 
Building for Mobile and Web with Expo - React Advanced London 2022
Building for Mobile and Web with Expo - React Advanced London 2022Building for Mobile and Web with Expo - React Advanced London 2022
Building for Mobile and Web with Expo - React Advanced London 2022
 
Getting Better All the Time: How to Escape Bad Code
Getting Better All the Time: How to Escape Bad CodeGetting Better All the Time: How to Escape Bad Code
Getting Better All the Time: How to Escape Bad Code
 
Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022
 
User-Modifiable Software: Smalltalk and HyperCard
User-Modifiable Software: Smalltalk and HyperCardUser-Modifiable Software: Smalltalk and HyperCard
User-Modifiable Software: Smalltalk and HyperCard
 
Practical Accessibility (A11y)
Practical Accessibility (A11y)Practical Accessibility (A11y)
Practical Accessibility (A11y)
 
Old Solutions to New Testing Problems
Old Solutions to New Testing ProblemsOld Solutions to New Testing Problems
Old Solutions to New Testing Problems
 
Test-Driven Development in Vue with Cypress
Test-Driven Development in Vue with CypressTest-Driven Development in Vue with Cypress
Test-Driven Development in Vue with Cypress
 
Test-Driven Development in React with Cypress
Test-Driven Development in React with CypressTest-Driven Development in React with Cypress
Test-Driven Development in React with Cypress
 
Newbie's Guide to Contributing to Babel
Newbie's Guide to Contributing to BabelNewbie's Guide to Contributing to Babel
Newbie's Guide to Contributing to Babel
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressOutside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
 

Recently uploaded

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 

Building an App for Mobile and Web with Expo

  • 1. Building an App for Mobile and Web with Expo 4 ReactATL 4 2021-12-01 4 Josh Justice Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 1
  • 2. Today I'm going to be sharing with you an app built with react-native-web. It's one codebase and it serves for three platforms: Android, iOS, and a web app. react-native-web One Codebase, Three Platforms Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 2
  • 3. It's a real app that's live today on the web and in the iOS App Store Some of you may be thinking to yourself "great, I want to see a real app, not just another todo list." If so, I have some bad news for you A Real App in the App Store Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 3
  • 4. Surely A focused todo app giving you only what you need to get your todos done. Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 4
  • 5. Another todo app? Surely. You jest! Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 5
  • 6. I do. I do Jest. describe('arrayWithItemMovedDownward', () => { const item1 = {name: 'Item 1'}; const item2 = {name: 'Item 2'}; const item3 = {name: 'Item 3'}; const item4 = {name: 'Item 4'}; it('moves an item downward', () => { const array = [ item1, item2, item3, item4, ]; const result = arrayWithItemMovedDownward( array, item1, ); expect(result).toEqual([ item2, item1, item3, item4, ]); }); }); Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 6
  • 7. It's free to use, so you can go to surelytodo.com to use the web version, or to get the link to download it on iOS. It's also open-source, so you can pull it down and check it out. Web/iOS: surelytodo.com Source: bit.ly/surely-expo Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 7
  • 8. Overview 4 What is React Native Web? 4 Implementation Notes 4 When to Use React Native Web 4 Conclusion: On Abstractions Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 8
  • 9. This is Not an Intro to React Native Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 9
  • 10. Intro to React Native Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 10
  • 11. Software for 17 years Backend, frontend web, native mobile, React Native Web Platform Lead at Big Nerd Ranch If you're looking for work, we'd love to hire you If you need a React Native app, we'd love for you to apply Me bignerdranch.com Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 11
  • 12. What is React Native Web? Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 12
  • 13. Using React on the web: for example, to create a button But you also have iOS and Android mobile apps: each a different way to create a button That's three things to build, with three technologies Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 13
  • 14. React Native lets you build with React paradigms It creates its own UI abstraction, so you create a Pressable, and it creates the corresponding iOS and Android UI Now just two things to build, both using React paradigm Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 14
  • 15. React Native web takes your React Native code and lets you run it on the web. Instead of creating an iOS or Android UI, it creates a browser UI Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 15
  • 16. Now you don't need the separate React app. Just one app, one codebase, three platforms Tradeoffs Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 16
  • 17. React Native for Web 4 github.com/necolas/react-native-web 4 Can be used in any React Native project 4 Recommended way to use it is Expo Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 17
  • 18. Implementation Notes Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 18
  • 19. Implementation Notes 4 Visuals 4 Navigation and URLs 4 Platform Differences 4 Testing 4 Release Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 19
  • 20. To the code! Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 20
  • 21. When to Use React Native Web Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 21
  • 22. Sometimes the web is enough. When to Use React Native Web 1. You need both a web and mobile app. Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 22
  • 23. If much of the feature set is different, you might as well do a separate React web app. When to Use React Native Web 2. It's the same app on mobile and web. Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 23
  • 24. Because you aren't writing HTML, you're writing React Native components, and those are being translated to HTML. When to Use React Native Web 3. You don't need fine- grained control of HTML. Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 24
  • 25. Conclusion: On Abstractions Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 25
  • 26. Some people get excited by finding ways to do more in software Data analysis, machine learning, crypto Do More! Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 26
  • 27. That isn't the kind of problem that gets me excited to solve it Do More! Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 27
  • 28. I get excited by finding ways to do more with less That is, build things with less effort Do More! Do More With Less! Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 28
  • 29. Accidental Complexity refers to things in software development that take a lot of effort, but they don't need to If we can find ways to get rid of that complexity, we can go much faster It's not just about saving time; it allows new paradigms Accidental Complexity Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 29
  • 30. When you can build software efficiently, it doesn't have to be a full- time job. Teams and individuals working in other fields can make their own software to make their work better. Now, we do work in software. For us, this means if you want to make an app for yourself, depending on your life circumstances you might be able to do it in your spare time. This means you don't need to start a business to do it, and you don't even have to charge anyone for it. You can offer free accounts and open-source it. It's also easier to ship the project, because you don't have to add every feature and configuration option in the world since it meets your needs. "Personal Software" Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 30
  • 31. Expo Web, React Navigation, and RN Paper are a great stack to remove accidental complexity and empower you to make personal software This gets me really excited about them Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 31
  • 32. Questions? 4 surelytodo.com 4 bit.ly/surely-expo 4 bignerdranch.com Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 32
  • 33. Thank you! Building an App for Mobile and Web with Expo - ReactATL - 2021-12-01 - Josh Justice - bit.ly/surely-expo 33