Многомодульность: что это такое? Объяснение для новичков. MVVM Retrofit Git. Чистая архитектура

YOUTUBE · 26.11.2025 04:37

Ключевые темы и таймкоды

Введение в многомодульность

0:00
  • Тема видео: многомодульность и её важность для чистого кода.
  • Многомодульность помогает понять, насколько проект соответствует чистой архитектуре.
  • Разделение проекта на три слоя: презентационный, доменный и дата.

Начало работы

0:55
  • Запуск видео на интенсиве, где команда за две недели создала приложение с многомодульностью.
  • Демонстрация работы с телеграм-каналом и премиум-контентом.
  • Начало с изображения с тремя слоями: дата, домен и презентер.

Описание слоев

1:52
  • Презентер: отвечает за отображение данных, активити, вьюхи и модели.
  • Домен: уровень бизнес-логики, не зависящий от данных.
  • Дата: уровень данных, включающий репозитории и кэширование.

Пример использования

2:51
  • Создание нового проекта в Android Studio.
  • Добавление модулей в Git и использование GitHub для контроля версий.
  • Создание трех модулей: дата, домен и презентер.

Создание домена

5:45
  • Создание домена как самого простого модуля.
  • Добавление интерфейса репозитория и загрузка данных.
  • Использование Kotlin вместо Java для упрощения.

Загрузка данных

10:00
  • Загрузка данных из интернета с обработкой ошибок.
  • Использование Kotlin для обработки ошибок.
  • Завершение создания домена и коммит изменений.

Заключение

12:00
  • Создание презентера и дата модуля завершено.
  • Многомодульность помогает понять структуру проекта и его чистоту.
  • Демонстрация работы с GitHub для контроля версий и доступа к коду.

Введение в доменный уровень

12:57
  • Доменный уровень самый простой и не имеет зависимостей.
  • Содержит только интерфейс репозитория и модели.
  • В домене нет объектов, только интерфейсы.

Создание дата модуля

13:54
  • Дата модуль должен быть Java или Kotlin модулем.
  • В некоторых случаях может быть Android Library.
  • Основная задача модуля - получение данных из Retrofit и отображение на экране.

Переименование модуля

14:59
  • Переименование модуля через рефакторинг.
  • В дата модуле нет зависимостей, но они появятся.
  • Android Studio автоматически добавляет зависимости.

Имплементация репозитория

15:58
  • Репозитории должны быть имплементированы в дата модуле.
  • Репозитории находятся в доменном модуле, но дата модуль зависит от него.
  • В дата модуле есть доступ ко всему коду из доменного модуля.

Добавление Retrofit и Gson

18:19
  • Добавление Retrofit и Gson в дата модуль.
  • Retrofit и Gson должны быть зависимостями в дата модуле, но не в доменном модуле.

Создание сервиса

20:18
  • Создание сервиса для получения данных из Retrofit.
  • Сервис должен обрабатывать исключения и возвращать данные.

Завершение работы с дата модулем

25:34
  • Закоммитить изменения и пушить в Git.
  • В дата модуле есть зависимости на доменный модуль и Retrofit.
  • Модуль готов к использованию.

Введение в презентейшн модуль

27:16
  • Создание презентейшн модуля для Android.
  • Использование Android Liveables вместо Android Tablets.
  • Разделение репозиториев между доменом и презентейшн модулем.

Настройка манифестов и зависимостей

28:14
  • Создание манифеста и Gradle для презентейшн модуля.
  • Добавление зависимостей на Android Liveables и AndroidX.
  • Использование плагинов для корректной работы с Android Liveables.

Рефакторинг и организация кода

29:27
  • Перемещение активити из приложения в презентейшн модуль.
  • Создание манифеста для презентейшн модуля и добавление ресурсов.
  • Организация манифестов с помощью Mesh Manifest.

Наследование и зависимости

32:53
  • Наследование презентейшн модуля от домена.
  • Добавление зависимости на домен в презентейшн модуль.
  • Создание и настройка репозитория и зависимостей.

Создание и использование моделей

34:27
  • Создание модели и зависимостей для презентейшн модуля.
  • Использование скопов и диспетчеров для управления данными.
  • Запуск и проверка работы презентейшн модуля.

Завершение настройки презентейшн модуля

36:18
  • Добавление билд-фичеров и биндинг данных.
  • Настройка модели и зависимостей для корректной работы.
  • Завершение настройки презентейшн модуля и его запуск.

Заключение

40:42
  • Обзор финального манифеста и зависимостей.
  • Добавление последних зависимостей и завершение настройки.
  • Проверка работы презентейшн модуля и его интеграция в проект.

Введение в многомодульность

41:23
  • Моделька получает данные из репозитория.
  • Презентационный модуль обращается к домену.
  • Зависимости на презентейшн и другие модули.

Создание апликейшна

42:16
  • Создание класса, наследующего апшн.
  • Добавление зависимостей на презентейшн и модули.
  • Создание репозитория и модели.

Манифест и зависимости

43:46
  • Прописывание зависимостей в манифесте.
  • Зависимости на презентейшн, дата и домен.
  • Создание модели через презентейшн и репозиторий.

Запуск приложения

45:53
  • Запуск приложения с получением данных из интернета.
  • Многомодульность и создание апликейшна.
  • Зависимости на презентейшн, дата и домен.

Манифест и активити

47:55
  • Манифест объединяет все манифесты проекта.
  • Зависимости на активити и презентейшн.
  • Слабая связь на интерфейс и репозитории.

Многомодульность в действии

49:30
  • Выключение и включение интернета для проверки.
  • Обновление цитат при повороте экрана.
  • Три модуля: домен, дата и презентейшн.

Заключение

50:44
  • Описание работы каждого модуля.
  • Отображение данных на активити.
  • Использование презентейшн и дата для отображения данных.

Введение в многомодульность

51:27
  • Обсуждение использования разных цветов для успеха и ошибки.
  • Введение в многомодульность: разделение кода на модули для лучшей организации.
  • Пример с презентацией, доменом и дата-модулем.

Архитектура и код

52:05
  • Обсуждение архитектуры и кода: как правильно делать многомодульность.
  • Пример с использованием интерфейсов и репозиториев.
  • Важность слабой связи между модулями.

Преимущества многомодульности

55:00
  • Преимущества многомодульности: соблюдение чистой архитектуры.
  • Пример с нарушением чистой архитектуры при неправильном использовании модулей.
  • Советы по созданию проектов с соблюдением чистой архитектуры.

Заключение и советы

57:43
  • Подсказка: удаление конструктора и использование ретрофита.
  • Важность изучения билдградов и ключевых слов.
  • Призыв к подписке на канал и участию в будущих проектах.

Заключение и благодарности

1:00:20
  • Благодарности за просмотр и приглашение к подписке.
  • Обещание следующего видео с примером использования Hilt в многомодульности.
  • Призыв к подписке и участию в будущих проектах.