This repo contains the implementation of a multiplatform (Android + iOS) mobile app for tracking blood alcohol concentration based on recorded alcohol consumption. It can be used to give you an estimate for how long it takes for your body to clear out the remaining alcohol. Please note that the app can only calculate an estimation based on the generally available alcohol calculation formulas. For more accurate results you must use a proper blood alcohol measuring tool.
This project is based on the Jetpack Compose Multiplatform project, and it has been created from their project template.

Illustration courtesy of ChatGPT
Read the project diary for some description in how the project was setup.
- Android 9.0 Pie (API level 28)
- iOS 18 (Xcode deployment target 18.2; the SQLDelight dialect is pinned to SQLite 3.38+ to match this floor)
BeerClock is based on the latest Compose Multiplatform release (as of development). When updating versions, see the version compatibility notes.
BeerClock uses SQLite as the database to store the drink data. For Android, the SQLite backend is replaced with requery to get a newer version.
The SQLite version installed:
- Android: 3.49.0 (from requery)
- iOS: supplied by platform (iOS 18 ships SQLite 3.43+)
- Minimum SQLite version:
3.38— the SQLDelight dialect is pinned tosqlite-3-38ingradle/libs.versions.toml
See the troubleshooting documentation for common errors and some workarounds when developing with Compose Multiplatform.
To verify that SQL migration files create the same schema as the .sq files, you can run:
./gradlew verifySqlDelightMigrationTo run all tests, you can run:
./gradlew checkTo run instrumented tests on a running Android emulator, fire up the emulator and run:
./gradlew :androidApp:connectedAndroidTest

