Разработка мобильного приложения для скалолазания
Мы создаём мобильные приложения для скалолазов с нуля или дорабатываем существующие. Ключевая проблема большинства решений — отсутствие полноценной офлайн-карты и удобной системы категоризации сложности. Наше приложение объединяет каталог с 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.
Закажите консультацию — оценим ваш проект и предложим подходящий стек. Свяжитесь с нами, чтобы обсудить детали и получить персональное предложение.







