TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #348 1.7K
Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня расскажем, как заменять разные сервисы (Google Play Services, Huawei Mobile Services, RuStore и др.) в одном приложении на примере Push-уведомлений, используя многомодульность.

Создадим несколько пакетов:
– mobile_services_interface
– gps
– hms

Теперь определим основные функции. В нашем случае это Push-уведомления: инициализация, получение токена и обработка открытия уведомлений. Для этого создадим в пакете mobile_services_interface абстрактный класс.


abstract interface class IPushService {
Future<void> init();
Future<String> getToken();
Future<void> onOpenPush();
}


Можно добавить свои функции или создать такие же классы для сервисов аналитики, Remote Config или др. Настроим зависимости для каждого пакета в pubspec.yaml.

🔵 Для Google Play Services:


mobile_services_interface:
path: ../mobile_services_interface
firebase_messaging: ^latest_version


🔵 Для Huawei Mobile Services:


mobile_services_interface:
path: ../mobile_services_interface
huawei_push: ^latest_version


Теперь напишем классы, расширяющие интерфейс. Помимо этого, можно вынести настройки сервисов в соответствующие пакеты.

Для сборок используем flavors, т.к. делать нам это нужно только для Android.

Перед публикацией заменяем пакет в pubspec.yaml и корректируем строку создания объекта в Dependency Injection. Затем выбираем необходимый flavor и собираем приложение с его конфигурацией.

А как вы решаете задачи с поддержкой разных платформ и сервисов в одном приложении? Расскажите о своем опытом в чате ⚙️
  • 🔥 7
  • 🥰 3
  • 👍 2
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →