If you are looking for documentation around the companion applications check out the Home Assistant Companion Documentation. This will provide you instructions on using the applications.
-
Download and install Android Studio
-
Download / clone this repository to a folder on your computer
-
Create a Firebase project at Firebase Console
-
Create two Android apps, one with
io.homeassistant.companion.android
and one withio.homeassistant.companion.android.debug
as package name -
Now download the
google-services.json
file and put it in the home-assistant-Android/app folderYou can also use the mock services file instead of generating your own The file should contain client IDs for
io.homeassistant.companion.android
andio.homeassistant.companion.android.debug
for debugging to work properly. If you do not generate your own file push notification will never work -
Start Android Studio, open your source code folder and check if the Gradle build will be successful
-
If the build is successful, you can run the app by doing the following: click Run -> Run 'app'
-
Connect your phone or create a new virtual device following on screen instruction
-
🎉
If you get stuck while setting up your own environment, you can ask questions in the #devs_mobile_apps channel on Discord.
If you want to work on push notifications or use a development build with push notifications please go the server side code HERE and deploy it to your firebase project. Once you have your androidV1 URL to the deployed service, exchange that for your local builds PUSH_URL.
The Android app has both a full flavor that uses Google Play Services to offer features like location tracking and notifications. There is also a minimal flavor that does not require Google Play Services and can be found in the releases section. The minimal flavor does not have location tracking or notifications.
We are using Github Actions to perform continuous integration both by unit testing, deploying dev releases to Play Store Beta and final releases to the Play Store when we release. To help test out a specific feature/fixes users can find the APK on the Actions page for each pull request, this debug APK can be installed side-by-side the production or beta builds.
We are using ktlint as our linter. You can run a check locally on your machine with:
./gradlew ktlintCheck
This commands runs on our CI to check if your PR passes all tests. So we strongly recommend running it before committing.
To run a check with an auto-format:
./gradlew ktlintFormat
The project currently uses lokalise to translate the application. If you are interested in helping translate go to the link and click start translating!
- Check over the draft release
- Add any extra info needed and click
Publish Release
- This will cause a tag to be added to the project and the
Production Deploy
Workflow will handle the rest