- git
- node.js & npm
- expo
- install expo on your computer using npm:
sudo npm install expo-cli --global
- install expo on your computer using npm:
Get a copy of the app code using the command line:
$ cd [desired directory]
$ git clone https://github.com/codeforbtv/cvoeo-app.git
- Run the npm instalation on the cvoeo-app project
$ npm install
- Confirm expo can run the project by typing
$ expo start
By using the expo mobile app, you will be able to test the app in both iOS & Android. However, you will need a smart phone that can connect to the same network as the computer running expo.
- Download the Expo app on your phone
- Run expo with
$ expo start
- Create an expo account at https://expo.io/signup
- Open the expo
- Download and install genymotion
- Genymotion requires a virtualization tool so download Virtualbox too
- Open genymotion (order is important here)
- Next run expo
$ expo start
- On the expo webpage that comes up, click "Run on Android Device/Emulator"
Expo should be able to detect Genymotion and open an emulator for you.
Sadly, you must have a mac to run the iOS emulator. If you're on a Windows machine, try using the expo mobile app to
- Open Xcode if you haven’t done so already (you can get xCode through the App Store)
- Choose the Xcode menu, then choose Developer Tools and select “Simulator” to launch iOS Simulator
- Set the simulator on the commandline
$ sudo xcode-select -s /Applications/Xcode.app
(you only need to do this once) - Run expo
$ expo start
- In the browser window that expo opens, choose "Run on iOS Simulator" from the left sidebar
There is a script defined in package.json that allows you to run the tests as follows from the project root:
$ npm test
! NOTE: this is now handled by Circle CI every time we merge into master, so normally you shouldn't need to do this. But... the more you know...
Not everyone on the project has the app set up locally so when we have changes that we want to share with the entire team (eg, when we merge something to master), we need to publish those to shared locations. Expo allows us to do exactly that.
To publish:
- Log out of expo on the command line
- Log back in with the credentials to the expo MoMM account on the CVOEO team drive
- Run expo publish
- The publishing seems a little fragile so retry 1-2 times if it fails on your first attempt
$ expo logout
$ expo login
? Username/Email Address: MoneyOnMyMind
? Password: [hidden]
$ expo publish
...
Published
Your URL is
https://exp.host/@moneyonmymind/momm
iOS prevents you from viewing projects on another person's expo account. For development purposes we get around that as follows:
- Go look up the credentials to the expo MoMM account on the CVOEO team drive
- Open the expo.io app on your phone and log in as MoneyOnMyMind
- Open the MoMM project