Об этом проекте
Этот репозиторий содержит официальные Android-приложения Bitwarden, которые объединяют менеджер паролей и аутентификатор в единый мобильный клиент. Проект ориентирован на Android 10 (SDK 29) в качестве минимальной версии и Android 17 (SDK 37) в качестве целевой, а также поддерживает форм-факторы смартфонов и планшетов в портретной и альбомной ориентациях.
Код написан на Kotlin и использует Jetpack Compose в качестве декларативного UI-фреймворка, наряду с широким набором библиотек AndroidX, включая Activity, Appcompat, Autofill, Biometrics, Browser, Camera, Core, Credentials, Lifecycle, Navigation, Room, Security и WorkManager. Внедрение зависимостей осуществляется через Dagger Hilt, загрузка изображений — через Glide, а работа с сетью — через Retrofit 2 и OkHttp 3. Корутины Kotlin, неизменяемые коллекции и библиотеки сериализации поддерживают асинхронный и реактивный код, в то время как Timber обеспечивает логирование, а ZXing обрабатывает сканирование штрих-кодов для кодов аутентификатора.
Приложение выпускается в двух вариантах сборки. Стандартные сборки включают Firebase Cloud Messaging для push-уведомлений, Firebase Crashlytics для отчетов о сбоях и интеграцию с Google Play Reviews. Сборки для F-Droid исключают эти зависящие от Google компоненты, оставляя приложение свободным от проприетарных сервисов.
Для разработки требуются JDK 21 и Android Studio, а также специфичная для проекта схема стиля кода (bitwarden-style.xml), которую контрибьюторы импортируют в свою IDE. Для загрузки зависимостей из GitHub Packages необходим GitHub Personal Access Token с областью действия read:packages, а флаг localSdk может перенаправить SDK на локальный артефактори Maven для контрибьюторов, работающих над функциями SDK. Качество кода обеспечивается с помощью статического анализа detekt, с опциональным pre-commit хуком, который запускает detekt перед каждым коммитом. Тестирование опирается на JUnit 5, MockK, Robolectric и Turbine для тестов корутин Flow. CI/CD использует Fastlane для сборки, подписи и распространения приложения, а Kover — для покрытия кода на Kotlin.
В README также описан четкий рабочий процесс внесения вклада: разделяйте изменения форматирования и логические изменения, форматируйте код перед отправкой pull request и следуйте документации по стилю и лучшим практикам проекта. В целом, это зрелый, хорошо структурированный Android-клиент с открытым исходным кодом для широко используемого сервиса управления паролями и двухфакторной аутентификации.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.