Developing an app to enhance Ultimate coaching abilities
You need a recent version of nodejs.
Clone the project and install all its dependancies:
git clone git@github.com:disc-in/UltimateApp.git
cd UltimateApp
yarn install
Copy the environment file and fill the blanks:
$ cp .env.example .env
(Firebase env variables are only used if you share custom plays or drills)
And finally, start the project:
yarn start
The Disc In app relies on Firebase for sharing drills and plays. For this reason, each play gets a unique "share identier" whoch is a 10 characters long hexadecimal string. It makes sure plays and drills uploaded on Firebase do not override one another. It is different from the id/uuid plays and drills have locally, used to manage the redux store and make sure each action is applied to the right record. This is necessary because users may download the same drill several times, or reshare a drill they have downloaded, without impacting other instances of the drill.
If you want to contribute to the projet, just pick up an issue from the list and start fixing it. You can then open a pull-request so that your contribution can be merged into the main branch.
Found a bug? Take 5 minutes to report it
Not a developer? We always need people to help us with:
Feel free to contact us on facebook or by email (ultimate.discin_at_gmail.com) to discuss it.
We expect every code introduced via a pull-request to be tested. We use jest and React Native Testing Library as testing frameworks. Please refer to the documentation, look at existing tests or ask questions if needed.
Note: You need to understand how environment variables are managed in an expo app. It is completely different from a web application because the app bundle is sent to every user. There is no such place as a safe server environment config.
Most of our environment variables are set directly in app.config.js. Our secrets (eg. API tokens) are set in the environment and on our Expo Account (so that EAS Build can access them).
To release a new version of the app :
Send a pull request updating the version in app.config.js
. If new binaries must be built, this is a major version update and you must also update the buildNumber (ios) and versionCode (android)
When it is merged, create a release on Github
If you want to update an existing deployed build:
.env
file contains the production environment variables up-to-date (especially APP_ENV)expo start --clear
to make sure the new env vars have been taken into accountexport $(cat .env | xargs) || eas update --branch production
(change the channel if staging). We manually load the .env variables because EAS Update does not use them by default..env
and run expo start --clear
If you want to deploy new builds:
eas build --platform <ios|android|all> --profile <profile-name>
eas submit -p ios
and eas submit -p android
Thanks a lot to everyone helping Disc In
become an awesome app!
The app source code is made available under the MIT license.