Drive your career as React Developer with Symphony Solutions!
×Закрыть

Мобільний додаток для походів Карпатами

Мене звати Роман Гелемб’юк, я програміст з Івано-Франківська.

В цій статті хочу розповісти, як одна моя пристрасть — походи в гори, поєдналася з іншою — програмуванням. Так зародилася ідея проєкту «В Похід Карпатами», над реалізацією якої у вільний час працював впродовж року. Займався розробкою інструментів для походів в Карпати — веб портал з інформацією та мобільний додаток для Android.

Хоббі

Я дуже люблю гори, а ще більше — мандрувати горами. Напевно, це пов’язано з тим, що я народився в серці Карпат — селі Яблуниця. З одного вікна нашої хати було видно Говерлу з Петросом, а з іншого — гору Хом’як. Ці яскраві спогади дитинства манять мене в гори. Хоч давно вже змінив місце проживання, але 4-5 разів на рік вдається здійснити похід гірськими стежками. Я не бував у інших горах, крім Карпат, і не планую. Адже самих Карпат я обійшов, можливо, 10%. Це нагода побачити неймовірні полонини, гірські вершини, різноманітні типи лісу, озера та річки. Кожний похід — це нові враження, нові знахідки, нові відкриття, море позитиву і задоволення. Піша мандрівка розкриває таємниці Карпатських гір, заряджає новими силами.

Зазвичай я ходжу в походи з одним-двома приятелями, інколи сам. Наші походи не можна назвати спортивними, проте ми більше рухаємося, ніж сидимо на стоянках, і вдається долати серйозні відстані.

Ідея

Досвід перших походів навчив мене серйозно планувати використання води в поході. Її можна нести з собою, але це важко! Один літр води — ніби дуже мало, а важить аж один додатковий кілограм. Тому перед походом доводилося вивчати маршрут, щоб дізнатися, чи є на шляху джерела, де можна поповнити запас води, щоб не нести її з собою. Від вивчення карт не завжди одержував корисну інформацію. Джерело могло бути позначене на паперовій карті, але воно вже пересохло, або пересихає в певні місяці літа.

Так з’явилася ідея збирати інформацію про місця знаходження джерел, зберігати її та обмінюватися в спільноті любителів походів. Планувалося накопичити якнайбільше відомостей про кожне джерело, опис та коментарі від тих, хто ним користувався. Тоді можна швидко знайти найближче джерело і на основі цього краще спланувати свій маршрут.

З цією метою задумав зробити веб сайт для зберігання та обробки такої інформації і мобільний додаток для користування даними в поході.

Ідея з джерелами трансформувалася в задум створити інтерактивну карту об’єктів, корисних при походах Карпатами: розміщення колиб та інших будівель в горах, цікаві об’єкти, зручні місця для привалів та інше. Далі виникла потреба в підтримці маршрутів для походів.

Реалізація проєкту. Створення веб порталу

Я назвав свій проєкт «В Похід Карпатами» і запустив вебсайт. На даний момент — це онлайн база даних актуальної інформації для піших походів Карпатами.

Каталог об’єктів та місць: джерела, колиби, місця привалів, озера та водоспади, цікаві природні та історичні місця, вершини, полонини, рятувальні служби. Для всіх об’єктів є можливість коментувати та додавати фотографії користувачами.

Інформація про населені пункти. Я додав цей каталог з двох причин. По-перше, щоб мати довідник про найближчі села в горах під час походу, особливо необхідна транспортна інформація. По-друге, щоб сприяти розвитку в цих селах та містах свого туристичного потенціалу. Дати можливість туристу побачити, відвідати дивовижні, цікаві, захоплюючі місця в Карпатському регіоні.

Каталог маршрутів. Інформація про маршрути для походів є в багатьох місцях, але вона дещо хаотична. Я вирішив впорядкувати це все в одному каталозі, інтегрувати з каталогом місць та інформацією про населені пункти. Турист зможе отримати максимум корисної інформації з одного джерела.

Технічна реалізація вебпорталу «В Похід Карпатами»

Цей сайт виконаний на простому перевіреному стеку — LAMP. Backend розробка з PHP — це моя основна спеціалізація. Тому з вибором технології довго не думав.

Мобільний додаток. Перший досвід мобільної розробки

Я вже 18 років професійно займаюся програмуванням, але раніше мені ніколи не доводилося мати справу з розробкою під Android і взагалі для мобільних пристроїв.

Бажання розібратися з нюансами цієї сфери заставило викроїти час для втілення свого задуму. Перш за все я одразу стикнувся з проблемою ресурсів робочого ноутбука. Для Backend розробки мені його завжди вистачало. А тут Android Studio ледве завантажилося, а коли запустив емулятор, то змушений був тиснути Reset, щоб перезапустити ноутбук. Довелося робити апгрейд ноутбука, ставити SSD і збільшувати оперативку, щоб лише почати робити перші кроки.

Мої зусилля увінчалися успіхом, і влітку минулого року випустив першу версію мобільного додатку для Android «В Похід Карпатами».

Для цього проєкту я обрав мову програмування Kotlin. В мене є деякий досвід з Java, Kotlin мені видався комфортнішим для розробки.

Ось перелік функцій, які вдалося реалізувати на даний час:

  1. Автономна робота без підключення до інтернету. Перед походом потрібно підключитися на деякий час, щоб отримати актуальні дані.
  2. Базовий GPS навігатор. Підтримка топографічних карт оффлайн.
  3. Робота з маршрутами походів, слідування обраному маршруту. Каталог маршрутів.
  4. Локальна копія бази даних з інформацією про місця, об’єкти та населені пункти.
  5. Швидкий пошук місць: наприклад, найближчого джерела чи колиби (будівлі).
  6. Функція «Що то за гора?». Визначення назви вершини, яку ви бачите в реальному часі.
  7. Доповнення бази даних самими користувачами. Додавання нових об’єктів, коментарів, фотографій.

Щоб реалізувати все це, довелося чимало гуглити запитання, тексти помилок. В більшості випадків виручав StackOverflow.

В цьому відео я демонструю роботу з маршрутом.

Найскладніша функція «Що то за гора?»

Найбільше часу я потратив на реалізацію інструменту «Що то за гора?». Використовуючи цю функцію, ви можете бачити зображення з камери свого телефону з підписами гірських вершин, які є в полі вашого зору в даний момент.

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

Досягти ідеальної роботи так і не вдалося.

Перша проблема: сенсори мобільних телефонів не є абсолютно точними. Для цієї функції потрібна інформація про 3Д орієнтацію пристрою. На практиці інформація з сенсорів постійно «смикається». Зафіксувавши телефон нерухомо, отримуємо невеликі зміщення значень сенсорів. Тому зображення підписів постійно рухаються.

Друга проблема з сенсорами в тому, що обчислені вектори не точно співпадають з реальним направленням камери. Може бути відхилення на градус і як результат — маркер з підписом виходить зміщеним. Я вирішив це з допомогою коректора внизу екрана, який можна рухати, щоб сумістити зображення камери з маркерами. Можливо, в майбутньому знайду спосіб вирішити цю проблему без коректора.

Ще одна проблема — визначити чи реально гору видно, чи вона перекривається іншими вершинами або схилами. При обчисленнях я вважаю кожну гору правильним конусом. Але, звичайно, це не так. В результаті часто отримуємо відображення маркера з підписом для вершин, яких насправді не видно. Напевно, єдиний вірний спосіб вирішення цієї проблеми — зберігання 3Д карти всіх гір і проводити обчислення на такій карті. На даному етапі це виглядає занадто складно.

В цьому відео я демонструю як працює цей інструмент.

Проблема дизайну інтерфейсу

Мій основний професійний профіль — Backend розробка. Свого часу я був Web Full Stack, але, чесно кажучи, створити гарний графічний дизайн мені ніколи не вдавалося. На жаль, не володію такими здібностями. Тому і цей проєкт має недоліки в дизайні GUI. Як веб сайт, так і мобільний додаток.

В майбутньому надіюся залучити когось для виконання цієї роботи в моєму проєкті.

Майбутні плани розвитку проєкту

Ідей подальшого розвитку є багато. Стараюся шукати вільний час для їх реалізації:

  1. Співпраця з рятувальними службами. Я намагаюся знайти правильні контакти та обговорити можливу співпрацю з рятувальниками та офіційними службами в горах. Відносно легко інтегрувати реєстрацію похідних груп через мобільний додаток, їх трекінг(за наявністю згоди) та створити дашборд для рятувальників, щоб бачити де і які групи є в поході, їх маршрути, плани, сигнали про завершення походів чи СОС сигнали. Все це можна зробити найближчим часом, потрібна лише згода відповідних чиновників.
  2. Інструменти спілкування через портал «В Похід Карпатами» та мобільний додаток. Тусовка любителів Карпат мусить мати спосіб тіснішого спілкування на єдиній платформі. Як програмісти мають DOU :)
  3. Онлайн трекінг маршруту, щоб показати де я зараз знаходжуся. Наприклад, відправити посилання мамі, вона зможе відкрити сторінку і бачити мій шлях і де я зараз. Буде працювати лише при наявності епізодичного інтернет підключення. Також можна реалізувати звичайний трекінг маршруту і його експорт у стандартні формати. Про це часто запитують користувачі.
  4. Побудова карти інтернет покриття Карпат. Телефони, на яких встановлено додаток, будуть відправляти регулярний сигнал через інтернет (анонімно). Якщо зв’язок вдався, координати запишуться в спеціальній базі. Через деякий час на основі зібраних даних буде створено карту покриття інтернетом (різних мобільних операторів). Ці дані також будуть зберігатися в телефонах та можуть бути використані в оффлайн режимі, щоб знайти де є найближче інтернет покриття до вашого місцезнаходження.
  5. Є ще ідея зробити щось розважальне, типу квести пошуку «карпатських духів». Якусь просту реалізацію клона Pokemon Go. Щоб за сезон побувати в якомога більшій кількості місць і зловити найбільше «чугайстрів».

Відгуки користувачів

Я отримую зворотний зв’язок від користувачів мобільного додатку. Найбільше мене радують відгуки, де люди дякують за функцію пошуку джерел, з допомогою якої вони змогли краще спланувати свій маршрут, а заодно відчули дивовижний смак пішого походу Карпатськими горами.

Контакти та посилання

Я зацікавлений у відгуках та пропозиціях відносно цього проєкту. Особливо чекаю вражень від користування в походах активними туристами.

Вся інформація для зв’язку є на сайті. Новини проєкту публікуються у блозі та дублюються на FB-сторінці. Емейл: vpohid.com.ua@gmail.com.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Дякую за те, що ви робите! Думаю що для багатьох досвідченних походників і для тих, хто тільки починає вона стане в нагоді.
Аплікуху завантажила сьогодні, дуже цікаво було затестити фічу «Що то за гора?», як на мене, дуже корисна в самостійних походах. Знайшла маршрут на завтра за допомогою неї ( і його не було на тому самому wikiloc). Лайк, підписка і донейт)

А чем не подошли сервисы типа Maps.Me, Wikiloc, Alltrails. Там есть ровно все что вы хотите: и источники воды, и места для кэмпингов. Погода — отдельно в windy.com.

коли ми маємо окремий додаток для конкретних гір, ми можемо тісніше інтегрувати різні сервіси , отримати максимум користі та працювати з більшим обємом інформації в офлайні.
наприклад, є описи вершин і о них можливість додавати фото та коментарі. і є окремий інструмент «Що то за гора?». Цей інструмент показує назву вершини, на яку ви клікаєте і бачите всб інформацію, в тому числі коментарі користувачів і їх фото.
якщо би ви мали окремий додаток, наприклад, PeakLens , то такоє інформації там не буде. Бо у вас навігатор окремо, а визначення гори окремо.
Те саме для погоди. Каталог населених пунктів інтегрований з маршрутами і одночасно з прогнозом погоди.

За рахунок обмеженої території ми можемо працювати з даними більше ефективно

коли ми маємо окремий додаток для конкретних гір, ми можемо тісніше інтегрувати різні сервіси

простите, но это далеко от реальности, развитие любого проекта всегда будет зависит от кол-ва людей которому оно интересно, если бы вы не ограничивали ваш проект Карпатами, то на мой взгляд он был бы в разы перспективнее и интереснее.

жаль что не опенсорс, хоть и не увлекаюсь горами, но с удовольствием бы помог такому проекту

Дуже класна ідея і повага вам за такі додатки. Але UX дуже важкий.. Було би дуже добре якщо би цей проект вийшов в Open Source, я думаю не в одного любителя гір було би що хорошого і цікавого принести в цей проект, звичайно якщо він не планувався комерційним )

Крута фічя «ща за гора». До речі, є окрема апка, яка працює досить якісно і використовує карту висот: play.google.com/...​eakfinder.area.alps&hl=en

Кльово! А бачили міжнародний ресурс uk.wikiloc.com Оскільки мандрую ще й іншими країнами, то дуже актуально шукати все на одному сервісі. Качаю звідти .kml файл і далі відкриваю у maps.me, також там є багато маршрутів Карпатами

Я джва роки чекав таку апку!!! Підкину кілька ідей
— лайки й дислайки для поміток зроблених користувачами — щоб не наставили фейкових джерел води
— можливість подати SOS іншим покистувачам.

Можливість подавати SOS сигнал я хочу додати. Але він реально буде працювати лише там де є інтернет. З цим ще не знаю що робити.
Крім того, неясно як вирішити питання відповідальності. Щоб не було ситуацій «я попав у біду, подав сигнал , а ніхто не прийшов. Розробник винуватий, я надіявся на апку».

Щодо дизлайків. Поки що це не проблема. Може пізніше стане проблемою і додам щось таке. Коментарів вистачає

Ще можна додати службу знайомств. Бачити інших програмістів, що пруться жерепами за 5 кілометрів від тебе.

Та нет в Карпатах бандитов

і оцінку розміру їх доходів з Лінкедіна+ДОУ підтягнути

Это очень классное начинание. Карпаты прекрасны. Я объездил все Карпаты на велике, в том числе в совсем горной местности вроде Черногорского и Свидовецкого хребтов, подъемами на Говерлу и Петрос и треком на Синевир со стороны Вышкова. Не могу не спросить: планируется ли какой-то раздел для таких как я?

я не планую щось робити спеціально для велосипедистів.
основна причина — вони майже завжди їздять там де є інтернет і пристойна дорога. і можуть просто скористатися гугл мапс :)

Здається, гугл мапс пристойно кешується, і потім працює без інтернету

Насправді кешується так собі. На практиці не працює коли треба скористатися без інтернету. З свого досвіду знаю.

Все прекрасно працює і вже не один рік. Колись з тим були проблеми, так. Але google maps це не для походів, там немає потрібної деталізаціїї. А для автомобільної навігаціїї працює чудово.

Я по гугловому супутнику спокійно собі шарився островом в Хорватії. Старі дороги видно. А стежки — навіть на паперовій карті на реальні не замапиш часто.

А я по азимуту і компасу в свій час ходив коли взагалі ніяких девайсів не існувало. Це не означає що зараз немає простіших способів орієнтування. Тому ще раз google maps це не для походів. От щось на базі OpenStreetMap — так. Наприклад maps.me.

Ну я в карпатах теж з паперовими ходжу. А для Хорватії — роздрукував негатив супутникової з гугла) Бо не було паперової. Взагалі не люблю цю усю техніку.

Maps.me непогано зараз заміняє паперові, особливо в Карпатах, враховуючи швидкість зміни ландшафту через «господарську» діяльність людини. Ну і відстані зручно рахувати.

В них що, на сайті мапи нема?
Хотів подивитись — фіг, одна реклама.

Дуже цікаво. Наступного тижня матиму можливість спробувати функцію «Що то за гора?»

Тоді поділитеся враженнями.
Я збираю відгуки щоб зрозуміти наскільки якісно працює ця функція.
Окремо цікавлять результати на близькій відстані (до 15 км) і на далекій

Перші враження: ваувау! але стрибають надписи, коли повертаєш мобілку, і це не зручно. Можливо є сенс зробити функцію фіксації ланшафту. Наприклад, наводиш камеру на гори, натискаєш кнопку, зображення фіксується поки тримаєш кнопку натиснутою, на зображенні з’являються назви гір. Зняв пальця з кнопки — назви теж зникли.

Ще було б непогано, якби був навігатор від місця де ти є, до початку обраного маршруту. Вчора я приїхав в Яремче, почав шукати, де залишити машину. Для мене ця місцевість не дуже знайома. Знайшов парковку, а як дістатися до початку маршруту не знаю. Бо дороги, будинки, залізниця. Просто йти за компасом погано виходить.

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

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

Днями збираюсь на Говерлу, продовжу тестування

Зазвичай в таких аппках для мене більш цінні ПОІ, лінії висот, а також не маркован стежки. Для цього я зазвичай використовую mtbmap.cz , він на базі openstreetmaps. Крутіших мап для карпат я поки не знайшов. До речі, в мене нормально так підвисає аппка.

Ну там навпаки — намальовано 100500 джерел на кожному кроці. І чомусь полонини різних кольорів.

Про 100500 джерел не знаю, перевіряв маршрути по яким сам ходив джерел взагалі немає.

У тебя потенциально топовое приложение. Бросай те Карпаты, получай инвестиции и пиши такое же про любые горы, начни с Европы

у нас вот такая есть — mapa-turystyczna.pl. если есть удачный движок можно вообще любые карты любой местности и страны туда запихать. главное чтоб пользователи сами могли наполнять контент по принципу как в открытой навигации OpenStreetMaps (разработчик обычно этим не занимается)

Работа на галере и походы — понятия несовместимые.

взял отпуск

Тут тебе Бобёр пусть объясняет. :)

всегда совмещал. походы люблю но весло не брошу :-)

Я прекрасно совмещал, и даже с работой туристическим гидом. В пятницу вечером из офиса на вокзал, в понедельник утром с вокзала в офис.

И какая потом работа? После походов отсыпаться надо дня два.

Самый полезный коммент за неделю!

Довго пояснювати, назви Susanin та зроби польський інтерфейс

Щодо питання розмітки та картографування — є прекрасний проект www.openstreetmap.org, що наповнюється суспільством. У вільний час, крім іншого, наповнюю там Ясіні. Там є багато джерел і такого іншого, що не знайдеш на Google Maps.

Так. Цей проект дійсно важливий. Мій додаток це швидше надбудова ніж альтернатива .

планується додаток для iOS ?

Ні. Поки що не планую.
В цьому пості я описав чому vpohid.com.ua/...​0/02/26/versiia-dlia-ios

ну это очевидно. порог вхождения в ios разработчики довольно высок (+лицензия разработчика 99$ в год), и если ты не зарабатываешь на этом, оно того наверное не стоит

Не думав скооперуватись з кимось хто шукає першу роботу як iOS розробник і не має реальних проектів? Як на мене то була б win-win ситуація, людина отримала б реальний досвід розробки і апчик у портфоліо, а юзери iOS додаток

А чем-бы не запилить ту-же аппку кроссплатформенно сразу и под iOS, на том-же Xamarin к примеру? Бизнес-логику можно будет перенести из андроид проэкта с минимальными изменениями, она будет одна на два проэкта, а UI достаточно прост и его не составить труда сделать под iOS

Можливо я розгляну такий підхід.
Але якщо чесно з відгуків різних розробників я чув , що такий підхід хороший для найпростіших апок. А для чогось більшого буде такий собі результат.
наприклад, для роботи з картами я викоритовую osmdroid . Як це можна зробити на Xamarin? Воно хіба буде працювати на iOS ? напевно треба свої інші бібліотеки

я прихильник native розробки

Тусовка любителів Карпат мусить мати спосіб тіснішого спілкування на єдиній платформі.

Колись нею був travel.org.ua

Також, Боржава й Красна майже не розмічені. Наприклад, нема джерел на траверсі Стою. Тому схоже, що додаток більше на Франківщині використовується.

так. Далеко не віс маршрути покриті інформацією. Я розраховую, що користувачі будуть додавати. Вони додають, але не так активно як би хотілося

Подписаться на комментарии