Мобільний застосунок для екскурсій та туристичного путівника
Туристичний путівник — застосунок, який має працювати в умовах, далеких від ідеальних: слабкий роумінговий інтернет, розряджена батарея в кінці дня, яскраве сонце що робить екран нечитаним, шум та неможливість дивитися на телефон. Все це обмеження, які визначають архітектурні рішення.
Офлайн-контент: карти та медіа
Туристи скачують путівник перед поїздкою та використовують без інтернету. Офлайн-карти — перший пріоритет.
Mapbox дозволяє скачати тайлі для регіону через OfflineManager. Користувач вибирає місто, застосунок завантажує тайлі потрібних рівнів масштабування (зазвичай 10-16) — це 50-200 МБ для середнього міста. Оновлення карт при наявності мережі.
Google Maps офлайн-тайли не надає через SDK — тільки через UI самої програми Google Maps. Для власного путівника Mapbox або HERE Maps SDK — єдині варіанти з програмним управлінням офлайн-кешем.
Аудіогіди — MP3 або AAC файли, скачуються разом з маршрутом. Автовоспроізведення при наближенні до точки: геофенс радіус 50-100 метрів, CLCircularRegion / Android Geofencing API. При вході в зону — AVAudioPlayer / MediaPlayer починає відтворення. Користувач може не дивитися на екран.
Зображення високої роздільної здатності — важкі. Стратегія: мініатюра (100-200 KB) у списку, повне фото (1-3 MB) завантажується по натиску та кешується. Kingfisher (iOS) / Glide (Android) для управління image cache. Офлайн-режим: якщо фото вже кешировано — показуємо, якщо ні — placeholder.
Маршрути та навігація
Екскурсійний маршрут — послідовність точок з описом. Візуалізація: Polyline на карті через з'єднання координат точок. Mapbox LineLayer з кастомним стилем — колір, товщина, пунктир для рекомендованого шляху.
Turn-by-turn навігація для пішоходів — або інтеграція з Mapbox Navigation SDK, або простий режим «стрілка + відстань до наступної точки». Другий варіант простіший, споживає менше батареї та краще підходить для екскурсії (людина йде, оглядається, не слідує строго маршруту).
AR-режим
Додаткова фіча: навести камеру на будівлю — побачити назву, рік побудови, історичну справку. ARKit (iOS, ARWorldTrackingConfiguration) + CoreLocation для визначення напрямку → маппінг об'єктів в світових координатах → SCNNode з UIView як overlay.
На Android — ARCore з GeospatialAPI (Google Maps AR) — дозволяє позиціонувати AR-контент за GPS-координатами без маркерів.
AR для путівника — вражаюча фіча, але потребує точного GPS та хорошого освітлення. Позиціонування об'єктів дрейфує при поганому GPS-сигналі. Реалізуємо як опціональний режим з fallback на карту.
Аудіогід без навушників
Пріоритет: користувач слухає екскурсію через динамік. Динамік телефону працює в режимі розмови (тихий, у вухо) або в режимі медіа (гучний). Потрібен саме медіа-режим: AVAudioSession.sharedInstance().setCategory(.playback) (iOS), AudioAttributes.USAGE_MEDIA (Android).
При вхідному дзвінку — пауза відтворення (audioSessionInterruptionNotification на iOS / AudioFocusRequest на Android), відновлення після закінчення розмови.
Монетизація та контент
Базовий контент безплатно, преміальні маршрути — in-app purchase. StoreKit 2 (iOS) — Product.purchase() з async/await. Android BillingClient — launchBillingFlow(). Підписка на доступ до всіх маршрутів міста або разова покупка маршруту.
Управління контентом: маршрути та точки редагуються через CMS (headless, наприклад Strapi), публікуються через API. Застосунок перевіряє оновлення при запуску та у фоні.
Стек: Swift/SwiftUI (iOS) або Flutter (кроссплатформа), Mapbox SDK, AVFoundation / MediaPlayer, StoreKit 2 / Google Play Billing.
Термін: від 8 до 16 тижнів. Вартість розраховується індивідуально.







