Приложение TrackLink помогает следить за вашими передвижениями по морю благодаря GPS-трекеру. При каждом выходе в море приложение записывает точный маршрут, погодные условия, максимальную скорость, пройденное расстояние, время и ваши личные отметки. Все маршруты автоматически привязываются к судну, которое вы указали в профиле.
Описание Для навигации используется боковое меню c анимированным "плавающим" якорем на воде, который показывает пользователю, какой экран отображается в данный момент.
Техническое решение Анимация изменения уровня воды и положения иконки якоря реализована при помощи CoreAnimation и Autolayout. Для нестандартных теней используется CAShadowLayer (грани уровня воды).
Описание На этом экране пользователь может просмотреть текущий или уже завершенный маршрут на карте. Зеленый маркер указывает на начало пути, красный - где путь был закончен. Пунктиром отмечаются участки, где геолокация была недоступна слишком долго.
Техническое решение Используется стандартный GoogleMaps API. Основной технической особенностью является алгоритм определение участков, которые нужно показывать пунктиром. Перед созданием polyline и его отображением на карте, сравнивается дистанция между соседними точками маршрута. В результате, если дистанция слишком большая, мы указываем dashed-gray стиль для такого участка.
Описание Данный экран позволяет пользователю редактировать области, которые пользователь планирует охватить. Приложение автоматически напоминает о начале плавания по выделенной области, если пользователь пересек ее границу, либо останавливает текущее отслеживание, когда пользователь покидает эту область.
Добавить новую область довольно просто. Пользователю стоит лишь нажать кнопку "ADD NEW AREA" (Добавить новую область) и нарисовать ее на карте. Удаление осуществляется через меню, которое появится после нажатия на нужную область. Все области автоматически добавляются в облако и пользователь может легко синхронизировать их нажав cloud button на любом из устройств.
Техническое решение Для рисования на карте используется UIPanGestureRecognizer в связке с GMSMutablePath, GMSPolyline и GMSPolygon.
Для удобства области не отображаются все сразу. Используется запрос в CoreData, который фильтрует и масштабирует области для видимого участка карты.
Описание Экран предназначен для просмотра и редактирования информации о маршруте.
Описание Здесь пользователь может просмотреть завершенные маршруты. Cloud button синхронизирует весь список.
Каждый маршрут имеет два маркера. Первый - Synced, путь синхронизирован с облаком. Второй - красный/синий. Синий маркер имеют те маршруты, где дистанция и время соответствуют минимуму NauticEd.
Техническое решение Для быстрой синхронизации списка используются метаданные о маршрутах. Геоданные (точки маршрута) скачиваются позже при просмотре информации о конкретном маршрутах.
Thanks very much for your high quality and very hard work. It is very much appreciated. We now have over 46000 students registered. I get emails every day expressing thanks for a great learning program and online and app experience.