What problem does it solve?
Implementing features in the Bitwarden Android codebase requires following strict, project-specific patterns for ViewModels, navigation, data layers, and security that differ from generic Android development. This Skill provides the exact patterns, templates, and anti-patterns so new code passes review and survives process death without security leaks.
Core Features & Use Cases
- State-Action-Event ViewModels: Enforces the BaseViewModel pattern with @Parcelize state, SavedStateHandle persistence, and internal actions posted from coroutines.
- Type-Safe Navigation: Provides @Serializable route templates with Args helpers, NavController extensions, and NavGraphBuilder destinations.
- Data Layer & Security Patterns: Covers repository/manager/data-source layering, Hilt modules, encrypted vs unencrypted storage, Clock injection, and ViewModel testing with Turbine and MockK.
- Use Case: When asked to create a new screen, the Skill produces a complete ViewModel, route, Compose screen, repository, Hilt module, and unit test that all conform to Bitwarden conventions.
Quick Start
Ask the assistant to create a new screen with a ViewModel, navigation route, and repository for a feature in the Bitwarden Android app.