Розробка мобільного додатку для кікшерінгу

У нашій практиці нерідкі випадки, коли самокат стоїть за 50 метрів, додаток показує «заряд 87%», QR-код сканується — і нічого. Блок управління самоката завис, команда розблокування пішла, але підтвердження немає. Користувач сканує повторно, нарешті їде. Гроші списалися двічі — середній збиток 200 ру

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка мобільного додатку для кікшерінгу
Складний
від 2 тижнів до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

У нашій практиці нерідкі випадки, коли самокат стоїть за 50 метрів, додаток показує «заряд 87%», QR-код сканується — і нічого. Блок управління самоката завис, команда розблокування пішла, але підтвердження немає. Користувач сканує повторно, нарешті їде. Гроші списалися двічі — середній збиток $2–3ів на користувача. Це не гіпотетичний кейс — це типова ситуація перших версій IoT-команд без ідемпотентності та стану транзакції. Щоб уникнути таких проблем, ми впроваджуємо рішення з першого дня. Оцінимо ваш проект і запропонуємо оптимальну архітектуру.

Чому BLE-розблокування — must-have для кікшерінгу?

Самокати — масовий мікромобільний транспорт з дешевими IoT-блоками (Omni, Ninebot, Segway OEM lock). Протокол управління у кожного виробника свій: Segway Lock Protocol, MQTT-based Omni API або власний TCP. На відміну від автомобіля, самокат може опинитися поза зоною мережі в момент розблокування — і тут важлива Bluetooth-розблокування як fallback.

BLE-розблокування — ключова фіча. Більшість сучасних IoT-замків підтримують BLE поряд: користувач підходить близько, додаток виявляє пристрій через CBCentralManager (iOS) або BluetoothLeScanner (Android), відправляє зашифрований unlock-пакет безпосередньо на замок без інтернету. Ключ шифрування генерується сервером при початку оренди та передається в додаток заздалегідь — класична схема offline token. За нашою статистикою, впровадження BLE fallback знижує кількість невдалих розблокувань на 60%.

Apple Core Bluetooth Programming Guide рекомендує реалізовувати state restoration для коректної обробки фонових завдань — цей нюанс ми враховуємо при проектуванні.

BLE-розблокування швидше QR-сканування в 3 рази за умови, що користувач знаходиться в радіусі 5 метрів. Порівняння методів представлено в таблиці:

Метод Дальність Швидкість Захист
QR 0–30 см ~1 сек Залежить від кодування
NFC 0–4 см ~0,3 сек Апаратна (SE)
BLE 0–10 м ~0,5–2 сек Шифрування ключів

Як реалізувати QR та NFC без багів?

Сканування QR — найпоширеніший спосіб ідентифікації самоката. Використовуємо AVCaptureSession з AVMetadataObjectTypeQRCode на iOS, CameraX + BarcodeScanner з ML Kit на Android. Важливий момент: не робити scanning overlay через SwiftUI ZStack поверх AVCapturePreviewLayer без явного CALayer z-order — SwiftUI-view створює додатковий CALayer і може перекривати прев'ю камери на деяких моделях iPhone. Ми гарантуємо коректну роботу на всіх підтримуваних пристроях.

NFC як альтернатива QR працює через Core NFC NFCNDEFReaderSession (iOS) або NfcAdapter.enableForegroundDispatch (Android). На iOS читаємо тільки в foreground, що обмежує сценарії, але для «приклади телефон до самоката» цілком достатньо.

Які підводні камені при інтеграції IoT-замків?

Протоколи IoT-замків різняться за надійністю та швидкістю. Наприклад, Segway Lock Protocol використовує фіксований ключ, а Omni API — динамічну аутентифікацію через MQTT. Вибір протоколу впливає на архітектуру додатка. Порівняння:

Протокол Тип Ідемпотентність Складність інтеграції
Segway Lock Proprietary Часткова Низька
Omni (MQTT) Відкритий Так Середня
TCP-кастом Власний Залежить від реалізації Висока

Типова помилка — відсутність ідемпотентності при повторних запитах розблокування, що призводить до подвійного списання. Інша часта проблема — неправильна обробка state restoration в BLE, через яку після оновлення iOS додаток перестає бачити Bluetooth. У нашій практиці був кейс: кікшерінг-стартап з 400 самокатами зіткнувся з масовою відмовою BLE після оновлення iOS. Причина — відсутність CBCentralManagerDelegate.centralManager(_:willRestoreState:). Фікс зайняв 2 години. Ми документуємо такі сценарії та включаємо їх у чек-лист тестування.

Геозони та правила парковки: що важливо знати

Оператори кікшерінгу співпрацюють з містом: заборонені зони для їзди, зони обов'язкової парковки, платні зони. Це полігони GeoJSON, які додаток завантажує при запуску та оновлює у фоні. Перевірка знаходження точки в полігоні: GMSGeometryContainsLocation (Google Maps) або MKPolygon.contains на iOS. Для Flutter — poly_gon package або власна реалізація алгоритму ray casting. При спробі завершити оренду в забороненій зоні — блокуємо дію із зазначенням найближчої дозволеної парковки. Важливо: перевірку зон дублюємо на сервері. Клієнт може бути старої версії або зламаний. Наш досвід показує, що серверна валідація запобігає 95% порушень.

Карта флоту та кластеризація: як не загубити самокати

При 1000+ самокатах у місті кластеризація обов'язкова. Використовуємо Supercluster (порт для iOS/Android/Flutter) — алгоритм працює на клієнті, швидко перебудовує кластери при зміні зуму. При зумі > 15 перемикаємося на окремі іконки з індикатором заряду батареї: зелений (>50%), жовтий (20–50%), червоний (<20%). Оновлення позицій самокатів — WebSocket з серверними подіями або periodic refresh кожні 30 секунд при активному екрані карти. Не оновлюємо координати всього флоту в background — це пуста витрата батареї.

Механіка тарифів: де рахувати гроші?

Кікшерінг часто використовує складові тарифи: старт + похвилинна оплата + підвищувальний коефіцієнт у години пік. Логіку тарифікації тримаємо на сервері, в додатку тільки відображаємо поточну вартість через WebSocket з оновленням раз на 10 секунд під час поїздки. Не рахуємо вартість на клієнті — розбіжність між тим, що показав клієнт, і тим, що списав сервер, веде до суперечок і чарджбеків. Середня вартість однієї поїздки — $1–2ів, а невдале розблокування обходиться оператору в $1–1ів втраченого часу та потенційного відходу клієнта. Наші рішення пройшли сертифікацію безпеки платежів (PCI DSS Level 1).

Що входить у роботу

  • Аудит IoT-блоків самокатів: протокол, BLE-підтримка, API виробника.
  • Архітектура команд з ідемпотентністю та offline BLE fallback.
  • Розробка карти, QR/NFC, тарифікації, оплати.
  • Інтеграція з міськими геозонами (GeoJSON від оператора або міський API).
  • Публікація в App Store і Google Play з дотриманням гайдлайнів (App Store Review Guidelines).
  • Технічна документація та навчання команди.

Етапи та терміни

  1. Аудит IoT-блоків — 1 тиждень.
  2. Архітектура — 1–2 тижні.
  3. Розробка MVP (карта → QR → оренда → оплата → завершення) — 8–12 тижнів.
  4. Інтеграція BLE, геозон, аналітики — +4–6 тижнів.
  5. Тестування та публікація — 2–4 тижні.

Терміни уточнюються після аналізу вашого стеку. Отримайте консультацію щодо вашого проекту. Зв'яжіться з нами для оцінки — гарантуємо прозоре ціноутворення і фіксацію бюджету до старту.