This is basically taken from a private README that I use and cleaned up for public consumption. It doesn't really have the humor that I try to bring to these things, and I tried to keep it simple for Japanese speakers that I can point here when they need help. Very quick and dirty, may clean up later.
This is only for Mac. If you aren't using Mac for React Native dev - do it, it's pretty great.
Install Xcode from the app store - Xcode is a program that runs iOS apps for you, and lets you start a simulator for your app so you can develop without needing a physical iPhone.
Install a Java Development Kit - you need this to make Android apps in React Native
Accept license agreement, Mac OS X x64
Install Android Studio (google this). This is how we will run android simulators so we don't need an Android phone open to check our work. Now, we need to set it up.
Open Android Studio. Choose custom install. Check the boxes for
- Android SDK
- Android SDK Platform
- Performance(Intel@HAXM) - this speeds up the simulator.
- Android Virtual Device
Install Node and Node Package Manager(NPM). If you don't know what that is, literally google - install Node on MacOS. It's very painless
That will take a long time, so in your terminal, enter the following (without the $ symbol).
This will install watchman, a program that watches files and updates your app when they change.
$brew install node watchman
This will install react native so we can do cool stuff like make apps
npm install -g react-native-cli
install the xcode command line tools. In terminal:
Add the following line to your ~./bash_profile
alias android-studio="open -a /Applications/Android\ Studio.app/"
What this does (after restarting terminal) is let you open directories by typing
in that directory.
Open android studio once downloads finish, click on "configure", go to SDK manager.
Click "Show package details"
Enable Android 6.0 (Marshmallow), and INSIDE Marshmallow, enable
- Google APIs
- Android SDK platform 23
- Intel x86 Atom_64 System Image
- Google APIs Intel x86 Atom_64 System Image
Do the above for Android 7 and 8 as well (Not necessary, but good to have for the future)
Next, on SDK tools tab, click "Show package details", look for "Android SDK Build-Tools", and make sure that 23.0.1 is selected
append to ~/.bash_profile:
Confirm sdk location with echo $PATH
We just did all that because really we have no choice. That's the work necessary to make Android apps.
Setup a project really quick to configure the emulators.
In terminal, start a new project with
$npx react-native init <APP_NAME>
Note, you can use Yarn as well (google install Yarn)
In a terminal, type
$react-native run-ios from your react native project folder
Confirm that app runs.
SIMULATOR NOT FOUND ERROR
If it tells you that a simulator isn't found, restart your computer. Common issue on using react-native init command.
Enable hot reload.
Change text in app.js under ios, save, and observe instant change in simulator.
Open the project in Android Studio. (Go to the react-native directory, go to /android, then run
Open Android studio, and open the Example App directory in it
When it says "Android framework detected", configure -> Agree
click the AVD manager icon in the upper-right hand corner (Waaaaay upper right)
Grab whatever device you want to test on, then click Next
on the x86 images tab, then look for the Marshmallow API Level 23, x86_64 API image with a Android 6.0 (Google APIs) target.
Click next, then finish.
Click the play button on your specific android virtual device to launch it. When the home screen appears, you're ready!
terminal in project root:
Press cmd + m
Enable hot reloading
IF YOUR SCREEN IS WHITE:
Go to more settings (sidebar), go to settings, click advanced, then set the OpenGL ES renderer to a new option (randomly), then exit the settings, exit the emulator, restart the emulator, and re-run
Change text in app.js
I was hardcore Nuclide (Atom). Now I'm all about that visual studio code.
This Project uses ESLint.
run the following in the root directory:
yarn add --dev eslint prettier eslint-config-universe eslint-plugin-react eslint-plugin-react-native
Move this file to your project root https://gist.github.com/Rob117/118443a2610af3abcbb3d8ddb8a213d1
in your package.json, add the following line under "scripts"
"lint": "./node_modules/.bin/eslint --fix *.js **/*.js"
Then just run
npm run lint to lint your code.
Jest is already installed
To run jest tests:
npm test -- __tests__
I realize that this is very rapidly written and might be a bit hard to follow - if any part doesn't work, let me know and I'll update it. I wrote this in a time crunch as a promise to a friend.