/nl-covid19-coronacheck-app-android

Primary LanguageKotlinEuropean Union Public License 1.2EUPL-1.2

COVID-19 CoronaCheck - Android

Introduction

This repository contains the Android release of the Dutch COVID-19 CoronaCheck project.

  • The Android app is located in the repository you are currently viewing.
  • The iOS app can be found here

See minvws/nl-covid19-coronacheck-app-coordination for further technical documentation.


About the Apps

The codebase was building two different app products:

CoronaCheck (referred to internally as the Holder app) was the official app of the Netherlands for showing coronavirus entry passes. With this digital tool, you could create a certificate with QR code of your negative test, vaccination, or recovery. This allowed access to certain venues and activities abroad. Or at the border.

CoronaCheck Scanner (referred to internally as the Verifier app) was the official scanner app of the Netherlands for coronavirus entry passes. With this digital tool, you could verify if visitors have a valid certificate of their negative test, vaccination, or recovery. You did this by scanning their QR code. This way, you could safely give access to your venue or activity.

App Requirements

The apps can run on devices that meet the following requirements.

  • Operating System: Android API 6.0+
  • Internet connection

Feature Overview

CoronaCheck

The app does not work anymore, it just opens informing the user about the current deactivated status, with a link to a website offering the last available information for the corona passes. To check previous features of the app, check out one of the previous releases/tags.

Third party dependencies

Dependencies management is handled with Gradle's Version Catalog. Find the app's dependencies here

Development only

Testing only

  • barista for ui tests assertions
  • junit for unit testing
  • mockk for mocking kotlin classes in tests
  • shot for screenshot testing
  • robolectric for testing faster components depended on Android framework classes

Continuous Integration only

  • firebase-action for sending builds to firebase for internal testing, setting up credentials via a service account and disabling firebase analytics

Project structure

CoronaCheck can be built using the holder module.

Both come in 5 flavours:

  • tst (test environment)
  • acc (acceptance environment)
  • fdroidAcc (acceptance environment for F-Droid builds, not depending in google play services)
  • fdroidProd (production environment for F-Droid builds)
  • prod (production environment)

Note that test and acceptance environments are accessible only inside VWS trusted networks.

Other project modules used by both apps:

  • appconfig remote configuration management
  • design common styles and components
  • shared common models and utility classes

Finally, there are couple of bash and python scripts:

Contribution process

The development team used to work on the repository in a private fork (for reasons of compliance with existing processes) and was sharing its work as often as possible.

No development is taking place anymore so contribution is not possible.

Note that all commits were signed using a GPG key.