Оглавление:
Приложение при создании добавляет мокнутые точки на карте в базу данных для симуляции получения данных из бека.
Функциональность:
- Масштабирование.
- Возможность перехода к собственному местоположению.
- При долгом нажатии появится меню с возможность добавить собественную точку.
- При нажатии на кнопку меню, можно перейти в экраны проверка позиционирования и информации о приложении.
Если на экране карты нажать на один из маркеров, откроется окно детальной информации о точке. Экран позволяет оставить комментарий и рейтинг. Ретинг отображается в заголовке точки и вычисляется как средее арифметическое всех отзывов. Нельзя оставить пустой отзыв.
На экране добавления точки необходимо ввести наименование, описание точки, а также реализована возможность добавления фотографий
Экран проверки позиционирования позволяет проверить и вывести основные показатели позиционирования.
Показывает информацию приложении и ссылку на репозиторий github.
- data - слой источника данных
- datasource - сами источники данных, где приложение получает необработанные данные.
- model модель - источника данных
- repositoryImpl - реализация интерфейса/контракта репозитория безнес логики.
- domain - слой бизнес логики
- usecase - пользовательские сценарии
- model - бизнес модель
- repository - интерфейс/контракт, с которым работают пользовательские сценарии
- presentation - слой представления
- handlers - обработчики нажатия на стороне UI.
- model - модель представления, на изменение которой подписывается UI
- ViewModel - связующее звено между бизнес логикой и UI
- dependencyProvider - провайдер зависимостей для скрытия деталей инициализации.
- stringProvider - провайдер строковых значений для использовании в бизнес логике.
Проект придерживается чистой архитектуры.
Слой бизнес логики:
- В центре находится пользовательские сценарии(usecase). Пользовательские сценарии взаимодействуют интерфейсом репозитория.
- Интерфейс открывает возможность менять модель бизнес логики.
Слой источника данных:
- Реализация интерфейса репозитория взаимодействует с источниками данных.
- Источники данных меняют модель текущего слоя.
- При изменении модели источника данных происходит маппинг данных и изменение бизнес модели.
Слой представления:
- В центре модель представления(viewmodel), которая взаимодействует с пользовательскими сценариями.
- Модель представления подписывается на изменение бизнес модели с последующим маппингом данных.
- При изменении модели представления, происходит обновление данных на стороне UI посредством стандартного механизма MVC.
- Отношение UI и MainViewModel представленно в виде шаблона MVVM.