Skip to content

Latest commit

 

History

History
28 lines (19 loc) · 2.64 KB

File metadata and controls

28 lines (19 loc) · 2.64 KB

Пример приложения Clean Architecture

Демо-репозиторий к лекции по чистой архитектуре. Все изменения в репозитории сделаны отдельными коммитами, чтобы можно было следить за изменениями в проекте.

В рамках проекта мы проводим рефакторинг приложения от монолитного, к использованию разделения на слои чистой архитектуры и модули.

В качестве пользы подхода, иллюстрируем создание вариантов сборки приложения с разным составом модулей и функциональностью.

Для самостоятельного изучения

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

  • для американского рынка на платформе Google Play
  • для китайского рынка на платформе Huawei

Чтобы сделать это, нам необходимо абстрагировать наш провайдер геоданных от используемой платформы.

  • Создайте два новых библиотечных модуля приложения: location.google и location.huawei.
  • В каждом из модулей напишите реализацию, имитирующую получение координат по примеру LocationProviderImpl.
  • Создайте Hilt-модуль, предоставляющий реализацию в граф для каждого модуля location.
  • Дополните конфигурацию модуля app вариантами сборки по новой оси platform.
  • Опробуйте работу модулей в каждой конфигурации.

Готовое решение доступно в отдельной ветке