Skip to main content

Android

Requirements

  • Android Studio - Latest stable version
  • Android SDK - For the SDK Platform version, refer to the compileSdk version in the libs.versions.toml file

Setup

  1. Clone the repository:

    $ git clone https://github.com/bitwarden/android
  2. Create a user.properties file in the root directory of the project and add the following properties:

  3. Setup the code style formatter:

    All code must follow the guidelines described in the Code Style Guidelines document. To aid in adhering to these rules, all contributors should apply docs/bitwarden-style.xml as their code style scheme. In IntelliJ / Android Studio:

    • Navigate to Preferences > Editor > Code Style.
    • Hit the Manage button next to Scheme.
    • Select Import.
    • Find the bitwarden-style.xml file in the project's docs/ directory.
    • Import "from" BitwardenStyle "to" BitwardenStyle.
    • Check the box, Enable EditorConfig support.
    • Hit Apply and OK to save the changes and exit Preferences.

    Note that in some cases you may need to restart Android Studio for the changes to take effect.

    All code should be formatted before submitting a pull request. This can be done manually but it can also be helpful to create a macro with a custom keyboard binding to auto-format when saving. In Android Studio on OS X:

    • Select Edit > Macros > Start Macro Recording
    • Select Code > Optimize Imports
    • Select Code > Reformat Code
    • Select File > Save All
    • Select Edit > Macros > Stop Macro Recording

    This can then be mapped to a set of keys by navigating to Android Studio > Preferences and editing the macro under Keymap (ex : shift + command + s).

    Please avoid mixing formatting and logical changes in the same commit/PR. When possible, fix any large formatting issues in a separate PR before opening one to make logical changes to the same code. This helps others focus on the meaningful code changes when reviewing the code.

  4. Install fastlane for automated package deployments:

    Note We manage non-system Ruby installations with rbenv as homebrew tends to break the required Ruby dependencies

    $ brew install rbenv
    $ rbenv init

    From the root directory of the android repo do the following:

    $ rbenv install -s
    $ bundle install

    Note If bundle install fails you may need to restart your shell or source your appropriate profile to recognize the newly installed non-system Ruby, e.g. source ~/.zprofile then bundle install again

    Once complete you can test fastlane with:

    $ bundle exec fastlane --version

    When necessary, update the Ruby version with:

    $ rbenv install 3.4.4

    Update dependencies with:

    $ bundle update

    If you're still having issues, here are some helpful commands for troubleshooting:

    $ which -a ruby
    $ which -a rbenv
    $ which -a fastlane
    $ rbenv which fastlane
    $ echo $PATH

Dependencies

For Application, Development Environment, and CI/CD dependencies, refer to the libs.versions.toml file.