Home AssistantHome AssistantContributors
On this page

The Android app started in 2019 and is now used by millions of people. Its center is a web view that shows the Home Assistant frontend. Around it sit native features: sensors that report from the phone, notifications, widgets, tiles, NFC tags, Assist, a Wear OS app, and car screens for Android Auto and Android Automotive.

The project is written entirely in Kotlin. New UI is Jetpack Compose. You will still find older code, like XML layouts and view binding, that predates the current guidelines. That code is migrated over time, and the pages here describe how new code should look.

The repository

Everything lives in home-assistant/android. It is one Gradle project with several modules:

Module What it is
:app The phone and tablet app
:automotive The Android Automotive app. Reuses the sources of :app
:wear The Wear OS app
:common Code shared by all apps: the data layer, sensors, the WebSocket and REST clients, the design system, and all strings
:testing-unit Helpers shared by the unit tests of every module
:lint The custom lint rules of the project
:microwakeword On-device wake word detection
:provides-sensor-processor A code generator for sensor registration
build-logic Convention plugins that configure every module the same way

The minimum and target SDK versions are in gradle/libs.versions.toml, under the androidSdk-* keys.

Set up

  • Get started: install Android Studio, build the app, and run it.
  • Push notifications: set up your own Firebase project, if you work on notifications.

Architecture

Write code

Test

Ship

Who to talk to

Was this page helpful?

Last updated on .