React Native
The past month or so I’ve been reading up on React Native.
React Native was open sourced about 2 years ago. React Native is an open source framework by Facebook which allows you to write Android and IOS applications using HTML like code (known as JSX) and JavaScript.
The whole framework is based upon React.js, it’s a JavaScript framework. You can use these React.js components, piece them together, to assemble IOS and Android Apps.
Coming from a Java world of “Write once, run anywhere”, React turns this paradigm on its head with “Learn once, write anywhere”
React Native allows a developer to use native IOS / Android components, and bring about changes to the UI through a JavaScript thread running in the background. The theory means that this should allow the application to feel native and smooth (even though it’s not a native application / powered by JavaScript).
I have never run a react native application; I’m not a JavaScript guy whatsoever. This is going to be an interesting journey.
1. Install homebrew
Homebrew, in order to install the required NodeJS, in addition to some recommended installs.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. Install nodejs
Use Homebrew to install Node.js.
NodeJS 4.0 or greater is required for React Native. The default Homebrew package for Node is currently 6.0, so that is not an issue.
brew install node
3. Install the React Native command line tools
The React Native command line tools allow you to easily create and initialize projects, etc.
npm install -g react-native-cli
4. XCode - if you are using a mac
Xcode 7.0 or higher. Open the App Store or go to https://developer.apple.com/xcode/downloads/. This will also install git as well.
5. Watchman
Watchman is a tool by Facebook for watching changes in the filesystem. It is recommended you install it for better performance.
brew install watchman
6. Flow
Flow, for static typechecking of your React Native code (when using Flow as part of your codebase).
brew install flow
7. Android - Install Android Studio
Get it here: https://developer.android.com/studio/index.html
8. Use the android cli tools
Add the following lines to your ~/.bash_profile where
export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
9. Install the Android Build Tools
Run the following command:
android list sdk -a
Which will provide you a list.
We opted to install
8- Android SDK Build-tools, revision 23.0.1
So the next command was:
android update sdk -a -u -t 8
where 8 was the option to install from the list provided.
10. react-native init AwesomeProject
react-native init AwesomeProject
This will walk you through creating a new React Native project in /Users/username/workspace/AwesomeProject
Installing react-native package from npm...
Setting up new React Native app in /Users/username/workspace/AwesomeProject
AwesomeProject@0.0.1 /Users/username/workspace/AwesomeProject
└── react@15.0.2
To run your app on iOS:
cd /Users/username/workspace/AwesomeProject
react-native run-ios
- or -
Open /Users/username/workspace/AwesomeProject/ios/AwesomeProject.xcodeproj in Xcode
Hit the Run button
To run your app on Android:
Have an Android emulator running (quickest way to get started), or a device connected
cd /Users/username/workspace/AwesomeProject
react-native run-android
11. Next lets run the android version
Start your android emulator in ADB (you might have to create one first)
Enter the AwesomeProject directory
cd AwesomeProject
Next lets run the android version
react-native run-android
This really will take a while; it’s a long process.
You’ll then be greeted with the AwesomeProject blank screen running on your device. (Not even a miserable Hellow World)
12. Install Gradle
brew install gradle
Create the following file: ~/.gradle/gradle.properties
Add the following:
org.gradle.daemon=true