DOU Проектор: «Навпростець» — додаток для пошуку найближчої вбиральні
В рубриці DOU Проектор всі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо прийняти участь. Якщо ні — можливо, серія надихне на створення власного made in Ukraine продукту. Питання і заявки на участь надсилайте на Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .
Ідея
Всім привіт. Моє ім’я Іван Фицик, я Android розробник. Хочу вам розказати про свій проект, який приречений на успіх. «Навпростець» — це мобільний додаток, що вирішує одну з найсерйозніших, наймасовіших, найбуденніших проблем людства, а саме — пошук туалету. Думаю, кожен з цим стикався в незнайомому місці, кожен страждав, кожен тратив безцінні хвилини на пошук в Google, на орієнтування по вуличним знакам чи на перепитування перехожих. Досить.
Ідея проекту зародилась, коли я дізнався про конкурс міських сервісів App4Cities і прочитав умови цього конкурсу. Обов’язковою умовою було використання хоча б одного набору даних з сайту організаторів. Серед даних були освітні заклади, парковки тощо. Мене найбільше зацікавили набори з громадськими вбиральнями, їх я і вибрав як основу нового проекту.
Звичайно, ідея не нова і в інтернеті є маса схожих ресурсів. Проблема в їх зручності і наявності мобільного додатка для навігації. На play.google.com є кілька схожих додатків, але вони погано підтримуються і мають не високий рейтинг.
Реалізація
Конкурс складається з кількох етапів. Першим етапом було голосування за ідею. Журі визначило мою ідею як варту уваги, і я попав в двадцядку півфіналістів. Наступним був хакатон, після якого учасники мали презентувати прототипи своїх сервісів. До хакатону я створив базовий проект, в якості архітектурного підходу вибрав MVP, для мережевого шару — Retrofit2 + rxJava, карти — Google Maps, маршрути — Google Directions API.
Перша проблема, з якою я стикнувся, — відсутність координат в наборі даних, була тільки текстова адреса. Для вирішення її я використав Google Places API, якому ми годуємо адресу, а він повертає координати. Метод дуже залежить від формату адреси і буває, що Google не може її розпізнати. На практиці, в наборах даних таких адрес не більше 5%.
Спочатку я планував використовувати дані тільки з сайту організаторів, тому що вважав, що ці дані будуть завжди наповнюватись, і поточний набір не є кінцевим. Проте, під час хакатону мені задали доречне питання: «Як ти будеш наповнювати базу, адже немає гарантії, що сервіс з даними буде завжди доступним?» Помізкувавши, я додав цю кнопку:
Тобто, кожен бажаючий може додати туалет до глобальної бази. Для такої задачі ідеально підходить Firebase Realtime Database, що дозволяє користуватись віддаленою базою даних без власного бекенду. Для того, щоб зменшити кількість неправдивої інформації, для додавання нового туалету треба авторизуватись через Фейсбук за допомогою Firebase Authorization. Також, була введена система страйків. Якщо користувач помітив відверто неправдиву інформацію в записі про туалет, він може поскаржитись і, набравши певну кількість страйків, туалет знищується з бази. Це забезпечить максимально правдиву і актуальну інформацію.
Для показу маршруту використовую Google Maps додаток, встановлений на телефоні користувача, адже краще за Google я навряд чи зроблю, і не варто придумувати велосипеди. Проте, якщо в користувача з якоїсь причини немає карт на телефоні, я реалізував карту з маршрутом в додатку.
Результати
На даний момент розроблено прототип з базовими функціями і додаток викладено на Google Play. Весь код проекта відкритий і доступний на Github. Щоб його запустити, потрібно ввести свої дані для Google APIs.
Подальші плани: робота над стабільністю, доступністю для людей з обмеженими можливостями і наповнення бази туалетами обласних центрів України.
P.S. На danimist.org.ua буде фінальне голосування 21 листопада. Якщо ви хочете підтримати проект, можете проголосувати тут.