- XCode - 8.2
- Android Studio - 2.3.3
- Node.JS - 6.5.0
- Yarn - 0.24.6
- Watchman - 4.7.0
- React Native - for hybrid development
- Typescript - for typing
- MobX - for state management
- React Navigation - to manage app navigation / routing
- React Apollo - to connect with the GraphQL API
- Apollo Codegen - to autogenerate the query types
(This instructions assume you have brew, node and are using yarn as the node package manager)
- Install Watchman
brew install watchman
- Install the react-native CLI
npm install -g react-native-cli
- Run
yarn install
to install the project's dependencies (please, use Yarn when running this project, so we can keepyarn.lock
updated)
- Run
yarn start:ios
for iOS version - Run
yarn start:android
for Android version
Important: for the Android Version you may need to follow the steps listed on:
- React Native - Getting Started - Android Development Environment
- React Native - Getting Started - Preparing the Android Device
The corresponding emulator should be automatically opened.
- Run
yarn graphql-schema
to update our local copy of the graphql schema. - Run
yarn graphql-generate-types
to generate the types based on your queries. Run it everytime you create a new query. (Queries must be created inside *.graphql.ts files to be properly converted and able to be used in the app)
yarn prestart
will run both commands in sequence.
Examples:
Could not find index.<platform>.js
-
Please, check your
watchman
version. (The tested version is listed here) -
Try closing the React packager (terminal window that should open up automatically) and clean its cache by running
./node_modules/react-native/packager/packager.sh start --reset-cache
.
- After insert new asset file in the project, you should always restart the build (yarn start:ios / yarn start: android) and also the packeger.
Provide an overview about the project's architecture, and the comunication with external servers and services. List all external communications and provide images and diagrams if necessary
Give instructions on how to deploy the app/server for production and Homologation environments. For more complicated deploys, you can use an auxiliary document on Docs/DEPLOY.md, pasting the link here.
List all external components of the project and their versions. Highlight any technical issues with them and explain the use of the less obvious ones. For more complicated environments (i.e. complex servers), you can use an auxiliary documentation on Docs/COMPONENTS.md, pasting the link here.
List all main technical issues of the project. The ones that are relevant for future maintenance service.
Also, list and link all technical debts issues left open on GitHub