Skip to content

alexxk2/Pocket_map

Repository files navigation

Pocket_map

Приложение для просмотра карт и сохранения выбранных мест(точек). Реализованы два экрана - первый с картой, второй - со списком сохраненных мест. По клику на сохранённую точку будет переход на карту с фокусировкой на выбранной точке. При сохранении новой точки она отмечается на карте. Есть возможность вручную корректировать ввод широты и долготы сохраняемой точки. Реализована возможность приближать и отдалять карту с помощью кнопок.

Комментарий к заданию

  • Основное
    Реализованы два экрана (карта и список сохраненных точек) в соответствии с дизайном в задании. Сохранение точки с диалоговым окном, при нажатии сохранить идет запись в базу данных Room и отрисовка новой точки на карте. Реализован переход на список сохраненных точек через меню TopAppBar. Использован паттерн MVVM, DI, Navigation Component и Корутины.
  • Дополнительно
    Реализован зум для карты (с помощью кнопок).
    LCE модель для экрана со списком точек(загрушки для ошибки, загрузки и пустого списка), клик на элемент списка (при клике будет переход на карту и фокусировка именно на этой точке, если просто нажать назад, то фокусировка будет на последней в списке, если список пуст, то фокус на дефолтном значении).
    Добавлена возможнсть изменять значения широты и долготы в диалоговом окне(точка будет сохранена в базе с новыми значениями и отрисована тоже), добавлена валидация ввода.
    Реализована функция удаления всех точек с предупреждением в виде диалогового окна(при удалении всех точек с карты удаляются все созданные отметки).

Используемый стек

  • Kotlin
  • Yandex MapKit
  • Clean Architecture
  • Koin
  • Room
  • SOLID
  • MVVM (ViewModel, LiveData)
  • RecyclerView & DiffUtil
  • ViewBinding
  • Navigation Component
  • Glide
  • Coroutines
  • SplashScreen

Gif flow приложения