Розробка мобільного застосунку для скелелазіння
Ми створюємо мобільні застосунки для скелелазів з нуля або доопрацьовуємо існуючі. Ключова проблема більшості рішень — відсутність повноцінної офлайн-карти та зручної системи категоризації складності. Наш застосунок об'єднує каталог з 20 000+ маршрутів, щоденник сходжень, карту з кластеризацією та соціальний шар — все в одному стеку.
Як ми забезпечуємо коректну оцінку складності?
Складність — критичний параметр для скелелазів. Ми зберігаємо числове поле difficulty_numeric (float) для сортування, а поруч — рядкове представлення за кожною системою. Таблиця перекладу між системами: UIAA 7+ = fr 7b = YDS 5.12b. Користувач обирає бажану систему в налаштуваннях, застосунок конвертує. Фільтр при пошуку підтримує діапазон складності, тип маршруту, орієнтацію, довжину та висоту. На iOS використовуємо UICollectionView з compositional layout, на Android — FlowRow чіпів у Material3.
Порівняння систем оцінки складності
| Система | Приклад рівня | Типове застосування |
|---|---|---|
| UIAA | VII+ | Альпінізм, європейські скелі |
| Французька | 7b | Спортивне лазіння |
| YDS (Yosemite) | 5.12b | Північна Америка |
| E-grade | 5c / E2 | Британський trad |
Порівняння форматів офлайн-карт
| Формат | Розмір району | Час завантаження | Підтримка кластеризації |
|---|---|---|---|
| MBTiles | 20-50 МБ | 10-30 сек | Так |
| Vector tiles | 5-15 МБ | 5-10 сек | Так |
| Кешовані растри | 100-300 МБ | 2-5 хв | Ні |
База маршрутів: структура даних
Кожен маршрут містить: назву, координати скелі (точка старту), систему складності, довжину в метрах, кількість мотузок, тип (sport/trad/bouldering/multi-pitch), орієнтацію (N/S/E/W), перше проходження (ім'я, рік), опис проходження (beta) та фото з розміткою лінії. Ми використовуємо відкриті дані з API theCrag як основу, доповнюючи їх користувацьким контентом. Фото маршруту з намальованою лінією проходження реалізовано на клієнті через Canvas/CALayer з жестом UIPanGestureRecognizer. Overlay зберігається як SVG Path — можна редагувати.
Чому офлайн-карти критичні для скелелазіння?
Скелелази часто їдуть у місця без мережі. Офлайн-карта у форматі MBTiles завантажується заздалегідь (20-50 МБ на скельний район). Кластеризація на малих зуму реалізована через MapboxAnnotationOrchestrator. Тап на кластер — zoom in, тап на скелю — sheet з прев'ю (кількість маршрутів, діапазон складності, фото). Два режими карти: outdoor (скельні райони) та indoor (скеледроми з адресами, розкладом, цінами). Наша система кластеризації на Mapbox працює в 3 рази швидше за стандартну реалізацію на Google Maps.
Синхронізація змін після повернення в мережу відбувається через CloudKit (iOS) або Firebase (Android) з вирішенням конфліктів за last-write-wins. Користувач може примусово запустити синхронізацію вручну. Всі медіафайли завантажуються у фоні, щоб не блокувати UI.
Щоденник сходжень та gamification
Логбук: дата, маршрут, тип проходження (redpoint/onsight/flash/attempt), партнер, нотатки. Статистика: всього метрів, розподіл за складністю (гістограма), прогрес redpoints за рік. Wishlist маршрутів — «хочу пройти». Позначка маршрутів прапорцями: done/project/tried. Gamification-шар: досягнення («перший 7а», «100 маршрутів», «всі маршрути Криму»).
Спільнота
Стрічка сходжень — друзі поділилися redpoint. Коментарі до маршрутів (умови, «ключ змістився», «болт розбитий»). Актуальність умов — окремий тип запису з TTL: «маршрут мокрий» втрачає актуальність через 72 години.
Що входить у роботу
- Аналітика: інтерв'ю з користувачами, конкурентний аналіз, узгодження вимог.
- Проектування: UX-схеми, технічний дизайн (архітектура, вибір стеку: Swift 5.9+/Kotlin з Jetpack Compose, Flutter 3.x за бажанням).
- Реалізація: верстка екранів, інтеграція API (REST/GraphQL), реалізація офлайн-режиму (Realm sync/Firebase), push-сповіщення (APNs/FCM), вбудовані покупки (StoreKit 2 / Billing 6).
- Тестування: unit-тести, UI-тести, навантажувальне тестування, ручне QA.
- Деплой: публікація в App Store та Google Play, налаштування Review Guidelines, TestFlight та Firebase App Distribution.
- Пост-релізна підтримка: моніторинг, оновлення, фікси.
Така архітектура знижує витрати на підтримку та прискорює впровадження нових функцій, забезпечуючи економію до 30% у порівнянні з хаотичною розробкою. Вартість розробки окупається за 6–12 місяців за рахунок вбудованих покупок та зростання аудиторії.
Строки
Базовий застосунок (каталог маршрутів, фільтри, карта, щоденник) — 6-10 тижнів. З UGC-фото з розміткою ліній, офлайн-картами та повним співтовариством — 3-5 місяців. Вартість розраховується індивідуально.
Наша команда розробила 15+ мобільних застосунків для фітнесу та outdoor-тематики, включаючи застосунки з подібними вимогами до офлайн-режиму та соціального шару. Гарантуємо відповідність гайдлайнам App Store та Google Play.
Замовте консультацію — оцінимо ваш проєкт і запропонуємо відповідний стек. Зв'яжіться з нами, щоб обговорити деталі та отримати персональну пропозицію.







