Как стать автором
Обновить

NaviGuild свой собственный навигатор

Время на прочтение2 мин
Количество просмотров15K

История создания


Сам я родом из небольшого города. После переезда в Минск, началась адаптация. Если маршрут дом – работа – дом не вызывал проблем, то возможность проезда в незнакомую точку вызывала дискомфорт. Да, я говорю про общественный транспорт. Сейчас для любого большого города есть навигаторы, но что делать, если город маленький? Вряд ли, что кто-то займется написание программ для всех городов, да и есть ли смысл? По сути все, что нам нужно, это:

  • найти остановку
  • узнать когда будет ближайший транспорт
  • проложить оптимальный маршрут
  • посмотреть карту


Так сложилось, что специфика моей прошлой работы заставляла путешествовать по городам и каждый раз идея написать универсальную программу лишь только крепла. Сейчас идея превратилась в проект.

Описание


Изначальная задумка программы в том, что бы объединить людей для создания общей информационной базы. Функционал программы:

  • Информация по остановкам и маршрутам.
  • Поиск остановок и маршрутов
  • Составление избранных списков
  • Оффлайн карта
  • Поиск объектов на карте
  • Направление движения транспорта
  • Возможность загрузки своего расписания и карт


Работа с программой


Схематично жизненный цикл программы я предоставил на следующем рисунке.

image

При первом старте программы, в ней отсутствуют какие либо данные. Данные состоят из двух частей:
  • карта, которую можно скачать, либо сделать самому;
  • текстовый файл расписания формата JSON со своей структурой. Описание структуры тут.


При запуске нам нужно указать, откуда мы хотим взять данные (Этап 1). Далее после того, как данные будут указаны, происходит следующее. Мы преобразуем файл расписания в объект, получаем путь к файлу карты и записываем в базу (Этап 2). В качестве базы используется Realm.

После записи базы, нас выбрасывает в главное окно. Где проверяется, создана ли модель базы данных. Если модель создана, ждем изменений в модели (Этап 4), нет — создаем модель (Этап 3). Модель данных выполнена в виде синглтон’а. При изменении в модели, сохраняем обновления в БД (Этап 5). При последующем запуске мы проверяем, создана ли модель и выбираем этап.

Вот так это выглядит
Этап 1

Этап 3

Главное окно

Карта

P.s. С удовольствием отвечу на все ваши вопросы или помогу с созданием расписания.
Теги:
Хабы:
-3
Комментарии2

Публикации

Истории

Работа

iOS разработчик
22 вакансии
Swift разработчик
30 вакансий

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн