conyappa / mobile

The hybrid–native mobile application of Con Yappa.
0 stars 0 forks source link
expo react-native

Con Yappa

Latam’s first prize-linked savings account.

Requirements

Run Con Yappa’s mobile app for local development

First, install the dependencies:

yarn install

Optional: If you want to modify an environmental variable, you can create an .env file and fill the desired attributes:

nano .env  # or your editor of choice

Please note that there are 4 possible environmental variables that you can modify:

Finally, run project:

expo start

If you are using wsl, you need to start the project using tunneling (the expo CLI will need to install @expo/ngrok to manage the tunneling for you):

expo start --tunnel

Now, there are a couple ways you can use the app after starting the expo server. You can either install the Expo Go app in your phone and scan the QR code displayed after starting the expo server (notice that your phone and your computer must be connected to the same network for this to work) or you can use an iOS or Android simulator.

App server

On development, the app can either be connected to a remote or local server. This is controlled from the environment variables (.env file).

Remote staging server

To connect to the staging server on development, just change the DEVELOPMENT_HOST to correspond to the staging URL and the DEVELOPMENT_PORT to 80.

Local server

First you must install and run Con Yappa's backend. If you are using macOS or Linux, the default configurations of the development app should connect you by default to the local server. If you are using Windows with wsl, you probably won't be able to connect to the local development server.

Building the app from GitHub

The repository includes a GitHub workflow that builds the application from the CD environment with a few clicks. To build the application, go to the "Actions" tab on the GitHub repository, click the build-production action and click the button that reads "Run workflow". This will prompt you to input the operating system to build (ios or android). After completing that field, click the green "Run workflow" button and the build will start on the Expo server.

Deployment

Staging

For staging we use Expo Go. To upload a new version use

expo publish

This will push the state of the app from your local machine to staging. Beware of uploading unwanted local changes.

Production

To make builds we use a release channel named production. This channel will hold the production app state. In order to push a staging published state to production, you can list previous publishes using

expo publish:history

The history command will list previous publishes with their channel, os, and publication id. To set a publication id to production you should use

expo publish:set -c production -p <publicationId>

The set command will push the published state to production. Expo publishes different versions for iOS and Android, so this has to be done once for each. Beware we're using over-the-air updates so anything pushed to production will be available to users on the store published app. If you need to make a new build you can do it with

expo build:ios -t archive --release-channel production  --no-publish

Or

expo build:android -t app-bundle --release-channel production --no-publish