TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
Android & Coffee с Васей

16 Jun, 12:38

Открыть в Telegram Поделиться Пожаловаться

00:16
Видео недоступно для предпросмотра
Смотреть в Telegram
Модули готовы. Следующая цель — запустить второе приложение.

Создали новый app-модуль. Нужно добавлять зависимости. DI-граф для нового приложения не возникает из воздуха — кто-то должен всё забиндить. И тут мы поступили максимально по-варварски: взяли AppModule.kt из Jazari Money на 400 строк, скопировали в Jazari Global и начали удалять лишнее.

В итоге — 301 строка. Примерно 60% одинаковые.

И AppModule — только самый наглядный пример. Копировалось всё, что живёт на уровне `app`-модуля: конфигурация, инициализаторы, навигация. Сценарий везде одинаковый: копируешь, удаляешь лишнее, добавляешь чего не хватило

Трейдоф здесь честный.

С одной стороны — дублирование. Добавил что-то в одном приложении — не забудь обновить второе.

С другой — абстракции не бесплатны. Разница между приложениями реальная, и любая «общая база» быстро начинает обрастать исключениями.

Технический долг? И да, и нет.

Зависит от того, сколько проблем это реально создаст. Иногда copy-paste — лучший архитектурный выбор. Главное — понимать цену переделки, если она понадобится.

Осталось склеить фичи между собой.

Один модуль = одна фича. Значит, фичи не знают друг про друга. Навигация живёт в `app`-модуле.

Каждая фича предоставляет extension на NavGraphBuilder:


fun NavGraphBuilder.createLoginScreen(
navController: NavController,
onTermsClick: () -> Unit = {},
onPrivacyPolicyClick: () -> Unit = {},
)


feature:login не знает, что делать после клика на T&C. Это просто callback, который реализует `app`-модуль. Jazari Money передаёт свою навигацию. Jazari One — свою.

Одна и та же фича, но возможно разное поведение.

В `app`-модуле приходится явно прописывать все переходы. Плюс это или минус — решайте сами 😉

И вот оно — приложение запустилось.

На видео самая первая версия: без анимаций, с кривой тёмной темой, временными заглушками вместо онбординга и главного экрана. Почти ничего нет из того, что запланировано — но сколько радости, потому что ОНО РАБОТАЕТ!!

→ серия «Два приложения — один логин»

#android #kotlin #androiddev #архитектура

134 0 2 4
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot