Skip to content

Как разделить Android-приложение на Google и Huawei с помощью Flavors

Notifications You must be signed in to change notification settings

michaelbel/BuildFlavors

Repository files navigation

Cover

BuildFlavors

workflow-status last-commit

Элегантное разделение проекта на отдельные сборки для магазинов Google Play, Huawei AppGallery и F-Droid, используя механизм Product Flavors. Он позволяет в рамках одной кодовой базы собирать APK с разными SDK, конфигурациями и зависимостями.

Код разнесен по платформенным модулям :gms, :hms и :foss. Все они реализуют общий контракт из :common, где описан интерфейс AppInteractor. Благодаря этому основной код приложения работает с единой абстракцией, не зная, какой именно сервис подключён – Google или Huawei.

Каждая реализация живет в своём модуле и подключает нужные зависимости: FirebaseAnalytics для Google и HiAnalytics для Huawei. В FOSS-вариант не подключается ничего. Связывание выполняется через модуль :inject, где с помощью Hilt определяется, какая реализация будет подставлена в зависимости от активного flavor.

В приложении задаются три flavors: gms, hms и foss. implementation-конфигурации гарантируют, что в сборку попадет только нужный код. Для плагинов добавлены переменные, вынесенные в buildSrc, чтобы подключать их условно.

Результат – три полностью автономных APK: один использует сервисы Google, другой – Huawei, а третий подходит для F-Droid и устройств без проприетарных SDK. Такой подход даёт гибкость и минимум дублирования, а главное – позволяет поддерживать все экосистемы Android-устройств из одной кодовой базы.

About

Как разделить Android-приложение на Google и Huawei с помощью Flavors

Topics

Resources

Stars

Watchers

Forks

Languages