Repository for the NMF.earth React Native application, built with Expo, Redux Toolkit and Typescript. Design can be found on Figma.
Installing Dependencies:
$ yarn
Running the app:
$ yarn start
For starting the app on a specific OS:
$ yarn ios | yarn android
Copy the 2 files that contain secrets and replace them with yours
$ cp app.example.json app.json
$ cp secret.example.ts secret.ts
-
Eslint is used in the project to enforce code style and should be configured in your editor.
-
Prettier is also used and apply automatically by eslint
-
Typescript is used in the project for type-checking and should be configured in your editor.
You can check this manually by running:
$ yarn lint
or
$ yarn typescript
You can ask eslint to fix issues by running:
$ yarn lint:fix
Use the following command to run unit tests with coverage:
$ yarn test
Use the following to update unit tests
$ yarn test -u
Use the following to run unit tests in watch mode while developing:
$ yarn test --watch
Stories (*.story.tsx) can be automatically added to storyLoader.js
with :
$ yarn prestorybook
To place new .md
files inside guides
folder or modify existing guide and then run node scripts/generate-guides.js
to generate a new sustainable guide. Images can be used in the .md
as follow: ![Earth](earth.png)
and should be place in assets/images/guide
.
For methodology screen, just run node scripts/generate-methodology.js
to update methodology.json
from methodology.md
.
For emission info screen, just run node scripts/generate-emission-info.js
to update emission-info.json
from assets/emission-info/markdown/*.md
.
You can help us with translate the app with our online tool POEditor.
So far the app supports English, French, German, Swedish, Danish, Russian, Portugal, Polish.
Run node scripts/generate-translation-files.js
in order to create the files needed for the new language you want to add to the app.
Run node scripts/poeditor/group-translation-files.js
to generate 1 JSON file per language, with all the translation vars in it. From there, you can easily make any edit you want. When you're done, you can run node scripts/poeditor/spread-translation-files.js
to merge your edits and spread them into all the translation files across the repo.
Any tag starting with v
will runs expo publish. During this step app.example.json
is used to generate an app.json
file for expo's deployment, this is done with the following script scripts/generate-app-json.js
.
Run expo build:ios -t archive
to build for the App Store Connect and expo build:android -t app-bundle
for the Google Play Console.
More than 25 developers have contribute to the app, thanks a lot to them!
Have a look to contributing.md if you want to contribute!
A big thank you to Christopher Gwilliams and to the Phelps family for their amazing contribution to the Kickstarter!
Repository and contributions are under GNU General Public License v3.0