erouska-android
eRouška (rouška = face mask in Czech) helps to fight against COVID-19.
eRouška uses Bluetooth to scan the area around the device for other eRouška users and saves the data of these encounters.
It's the only app in Czechia authorized to use Exposure Notifications API from Apple/Google.
Who is developing eRouška?
Starting with version 2.0, the eRouška application is developed by the Ministry of Health in collaboration with the National Agency for Communication and Information Technologies (NAKIT). Earlier versions of eRouška application were developed by a team of volunteers from the COVID19CZ community. Most of original eRouška developers continue to work on newer versions in the NAKIT team.
International cooperation
We are open-source from day one and we will be happy to work with people in other countries if they want to develop a similar app. Contact David Vávra for technical details.
Building the App from the source code
Clone this repository and import the project into Android Studio. Make sure you have JDK 8.
Run:
./gradlew assembleDevDebug
Contributing
We are happy to accept pull requests! See Git Workflow.
If you want to become a more permanent part of the team, join our Slack, channel #erouska.
Translations
Help us translate to your language or if you see a problem with translation, fix it. Our translation is open to volunteers at OneSky.
Git workflow
- Work in a fork then send a pull request to the
develop
branch. - Pull requests are merged with
squash commits
. - Admins rebase
develop
tomaster
using the script below. This triggers a release build.
eRouška release process
eRouška uses GitHub Actions. A push to master branch triggers an App build. Then the App is published to Firebase App Distribution.
There are two variants of the App: DEV and PROD. PROD is also built as an App Bundle artefact, that needs to be manually uploaded to Google Play.
Versioning is automatic: major and minor version is in Git, patch is versionCode (a number of commits from the start).
Release is done by executing the release.sh script. Right click it on Android Studio and hit Run 'release.sh' or execute via command line. If it fails, it fails. Most likely your master has different history from origin. That should never be the case, so you should fix it.
Make sure to update translations & RC defaults before release (next section).
Updating translations
- Update only Czech and English file in a PR, don't upload anything to OneSky
- Don't put Czech strings into English file, add there either your English translation or
TODO: translate
- Before every release, the person who is preparing the release will upload Czech file into OneSky and notify translators
- After it's translated, push English and Slovak file from OneSky to develop. Don't update Czech file.
Updating RC defaults
- Don't add any RC defaults to a pull request, change it only in Dev RC for testing (follow this guide)
- Before every release, the person who is preparing the release should update RC defaults and push them to develop