// the find
bitwarden/android
Bitwarden mobile apps (Password Manager and Authenticator) for Android.
The Android client for Bitwarden's password manager and authenticator, written in Kotlin with Jetpack Compose and Hilt. It supports Android 10 and up and builds a separate F-Droid flavor without the Google-dependent code. Worth reading if you contribute to it or want to learn from a large shipping Compose codebase.
- Room schema JSON for each database version is checked in under app/schemas, from PlatformDatabase 1 and 2 through VaultDatabase 3 to 10, so migrations can be checked against exported schemas instead of trusted.
- The fdroid source set swaps in its own billing and app review implementations, and the README says Firebase and Google Play Reviews only ship in non-F-Droid builds. The open-source build stays free of those dependencies.
- The README points to a checked-in IntelliJ style scheme under docs/, an optional detekt pre-commit check, and Kover coverage reporting. Style and coverage are treated as tooling concerns, not only review comments.
- The stack is conventional: Compose, Hilt, Room, WorkManager, coroutines and kotlinx.serialization, Retrofit with OkHttp, and MockK with Turbine for tests. A contributor doesn't need to learn a house framework first.
- Building requires a GitHub personal access token with read:packages, because the SDK comes from GitHub Packages. A fresh clone does not compile until that token and a user.properties file are in place, and the README offers nothing for people who only want to read or review the code.
- The pre-commit hook is a heredoc that overwrites any existing .git/hooks/pre-commit, and it is optional. Local style enforcement depends on each contributor, so CI has to catch whatever the hook misses.
- The README is mostly setup steps and a long hand-maintained dependency and license list. It says nothing about module layout, the data and ui package split, or how the app talks to the SDK, so a new contributor has to work out the architecture from the tree.