Приложение - пример расширенной архитектуры приложения, использования модулей и отношений. Цель занятия - показать цели создания понятной архитектуры проекта для эффективной и удобной командной работы. Приложение состоит из трех бизнес-задач (usecase):
- Создание аккаунта пользователя
- Регистрация профиля
- Показ профиля
Проектная документация находится в каталоге doc. Для просмотра диаграм в Android Studio удобно воспользоваться плагином PlantUML.
Документация:
- RegisterUsecase - диаграмма юзкейсов, показывающая действия пользователя в системе.
- RegisterObject - диаграмма объектов приложения и их связей
- Modules - диаграмма связи модулей
Этот проект не содержит сервер - обмен с сервером эмулируется. Однако, в папке с документацией лежат:
- [api.yaml] - описание API сервера в формате OpenAPI
- [openapitools.json] - конфигурация кодогенератора для создания серверного и клиентского модулей.
Подробнее о кодо-генерации читайте на сайте openapi-generator-cli
Приложение состоит из нескольких модулей, которые разделены по функциональности и ответственности.
core- содержит общие для приложения классы, интерфейсы и абстракции, которые могут использоваться другими модулями.domain- содержит бизнес-логику приложения, интерфейсы и абстракции, которые могут использоваться другими модулями.domaintest- содержит тестовые данные для бизнес-логики, которые могут использоваться другими модулями.domainmockdata- содержит мок-реализацию хранения доменных данных. Используется вместо сетевого и дискового хранения.appcore- содержит общие компоненты для всех Android-модулей.account- модули, отвечающие за создание аккаунта пользователя при помощи разных "социальных сетей".registration- модуль, отвечающий за регистрацию профиля пользователя.