Git Product home page Git Product logo

react-native-fundamentals's Introduction

React Native Fundamentals

This self-guided workshop aims to get you up and running with React Native and understand the fundamentals.

Prepared by React Native School.

Helpful Links

If at any point you feel lost or like you're missing "something" outside of the scope of the lessons please check out these articles to help fill any gaps.

Each lesson also provides links to further your knowledge on the topic at hand.

System Setup

We'll be leveraging Expo in this workshop. It makes React Native development very easy to get started with (it also provides a great way to build large React Native apps as well).

Follow the Expo installation documentation for your machine. Once complete, you should have Expo installed on your computer and the app installed on your phone.

You'll also want to install Git.

Once complete the following tools should be available on your system.

  • Node
  • npm
  • Git
  • Expo

You can check installation by running the following commands:

node --version
npm --version
git --version
expo --version

Project Setup

From the command line, run the following commands.

git clone https://github.com/ReactNativeSchool/react-native-fundamentals.git
cd react-native-fundamentals
npm install

Running the App

With the project installed you can start the project by running npm start.

This will output a QR code in your terminal which you can scan from the Expo app (Android) or the Camera app (iOS).

Once that is complete shake your device (yes, physically shake it) at which point a menu should pop up.

Make sure that Fast Refresh is enabled.

With this complete the app will now refresh with the latest code any time you save a file.

Exercises

You can find a pre-made file for each exercise in the exercises directory. Each exercise has a .js file and .md file. The .md files will give you context about what you're doing and give you the exercise(s). The .js file will be where you do your work.

Important: Make sure you use export default from the exercise js file so that the app can pick up your code.

You can find solutions for each exercise in the solutions folder (they use the same file name).

  1. Exercise 1 - Hello, World!
  2. Exercise 2 - Capturing Taps
  3. Exercise 3 - Building a Custom Component
  4. Exercise 4 - State & Props
  5. Exercise 5 - Styling
  6. Exercise 6 - Scrolling Content
  7. Exercise 7 - Building a Form
  8. Exercise 8 - Long Scrolling Lists
  9. Exercise 9 - Working with Remote APIs
  10. Exercise 10 - Splitting Code into Multiple Files
  11. Exercise 11 - Class Components
  12. Exercise 12 - Component Lifecycle

Credit

This workshop (concept and structure) is heavily inspired by Kent C. Dodds' React Fundamentals workshop. Thank you for putting it together and sharing it publicly.

Kent's React Fundamentals Workshop

react-native-fundamentals's People

Contributors

spencercarli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

react-native-fundamentals's Issues

@expo/metro-config not working in new project

Error: Cannot find module '@expo/metro-config'
Require stack:

  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\metro.config.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\cosmiconfig\node_modules\import-fresh\index.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\cosmiconfig\dist\loaders.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\cosmiconfig\dist\createExplorer.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\cosmiconfig\dist\index.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\react-native\node_modules@react-native-community\cli\build\tools\config\readConfigFromDisk.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\react-native\node_modules@react-native-community\cli\build\tools\config\index.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\react-native\node_modules@react-native-community\cli\build\commands\install\install.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\react-native\node_modules@react-native-community\cli\build\commands\index.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\react-native\node_modules@react-native-community\cli\build\index.js
  • C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\node_modules\react-native\local-cli\cli.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
    at Function.Module._load (internal/modules/cjs/loader.js:842:27)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object. (C:\Users\user-pc\Desktop\coding\native\react-native-fundamentals\metro.config.js:1:30)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Module.require (internal/modules/cjs/loader.js:1026:19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.