Приложение iOS для трекинга прогулок.
Я хотел научится работать с картой, получать координаты и обрабатывать их. Попытаться реализовать большинство возможных функций Google Maps SDK:
- рисование и окрашивание сплайна;
- установка маркера на картк;
- перемещение камеры на карте;
- обрабатывает получаемые данные и показывать их в понятном виде.
Главный экран реализован с использованием Google Maps SDK. Приложение по кнопке СТАРТ начинает создавать трек пользователя по координатам. Отображается путь полилинией, которая окрашивается в цвет исходя из скорости перемещения пользователя с устройством. Для понимания логики окрашивания, есть выбор настройки типа прогулки внизу экрана. При прогулке есть скорость, путь и время, эти данные приложение показывает в удобном отформатированном варианте. При завершении трекинга, по кнопке ФИНИШ, приложение сохраняет трек. Прогулки можно увидеть по кнопке список. В ячейках трека приводится сводная информация и название района прогулки.
Библиотеки
Интерфейс приложения реализован классическим способом. За координацию контроллеров отвечает Coordinator. У каждого flow есть свой storyboard. Передаются данные между контроллерами через замыкание.
MyTrack/MyTrack/Flows/Track/TrackCoordinator.swift
Lines 23 to 37 in 1e96167
Показ карты на экране и навигацию по нему осуществляет Google Maps SDK. Код начальной настройки.
MyTrack/MyTrack/Flows/Track/Track/TrackViewController.swift
Lines 107 to 115 in 1e96167
Создание сплайна осуществляется следующей функцией
MyTrack/MyTrack/Flows/Track/Track/TrackViewController.swift
Lines 312 to 326 in 1e96167
Установка маркера на карту
MyTrack/MyTrack/Flows/Track/Track/TrackViewController.swift
Lines 117 to 122 in 1e96167
Хранения треков пользователя и точек локаций в нем
MyTrack/MyTrack/Model/Track.swift
Lines 11 to 16 in 1e96167
- Подписки для обновления данных трека
- Подписки для заполнение полей логина и пароля
- Добавить FireBase для сохранения профиля пользователя и его координат
- Добавить на окно профиля возможность загрузки фотографии пользователя и свойства