Розроблення мобільного додатку для гірськолижного курорту
Додаток гірськолижного курорту — це не інформаційний буклет. У продакшені це реалтайм-статус підйомників, цифровий ски-пас, що замінює пластик на турнікеті, GPS-трек катання з аналізом спусків та push-сповіщення при зміні статусу трас. Кожен із цих блоків вимагає окремого технічного рішення.
Реалтайм статус підйомників і трас
Це найкритичніша частина з точки зору користувача. Підйомник закрили — користувач повинен дізнатися негайно, не при спробі доїхати до нього.
Дані про статус підйомників: більшість сучасних систем управління канатними дорогами (Leitner, Doppelmayr) мають API або OPC UA інтерфейс. Альтернатива — парсинг існуючої системи курорту або ручне оновлення операторами через CMS. На сервері — polling кожні 30-60 секунд або webhook при зміні статусу.
Доставка на клієнт: WebSocket для онлайн-користувачів + FCM/APNs push для фону. Статус візуалізується на карті трас: зелений (відкритий), червоний (закритий), помаранчевий (обмежена робота), сірий (техобслуговування).
Карта трас гірськолижного курорту — SVG або растр. Інтерактивна SVG-карта на WebView — простий шлях, але жести працюють погано. Правильніше: інтерактивна карта як нативна MKMapView/Mapbox з polygon-шарами трас (колір за складністю: зелений/синій/червоний/чорний) і icon-маркерами підйомників. Дані — GeoJSON від курорту.
Цифровий ски-пас
Ски-пас в додатку замість пластикової карти — зручність для гостя та зниження витрат для курорту. Два варіанти реалізації:
NFC-пас. iOS Wallet + PassKit. Курорт видає .pkpass файл з даними користувача. Турнікет читає NFC через CoreNFC / існуючий RFID-ридер, якщо підтримує інфраструктуру Apple Pay. Обмеження: iOS Wallet NFC працює тільки на iPhone XS+ з iOS 13.4+.
QR-пас. Більш універсальний варіант: QR-код генерується на сервері (signed JWT у вигляді QR), діяє 24 години, оновлюється автоматично. Турнікет сканує QR через будь-який 2D-сканер. Реалізація: Core Image CIQRCodeGenerator (iOS) або zxing-android-embedded (Android). QR відображається з auto-brightness (яскравість екрану 100% при показі — UIScreen.main.brightness = 1.0).
Інтеграція з системою контролю доступу курорту: Axess, Skidata, Magnetic існують як окремі платформи з API. Прорабляється індивідуально.
GPS-трек катання
Запис спуску — функція, яку користувачи люблять. Швидкість у реальному часі, км, кількість спусків, вертикальний метраж.
Висока швидкість (40-80 км/год на спуску) вимагає високої частоти GPS-точок. kCLLocationAccuracyBestForNavigation — максимальна точність, оновлення щосекунди. Швидкість з CLLocation.speed (м/с). Автодетекція спуску: швидкість > 5 км/год + рух вниз по висоті → старт запису спуску. Швидкість < 2 км/год + зупинка у підйомника → кінець спуску.
Батарея: при kCLLocationAccuracyBestForNavigation iPhone втрачає ~20-25% на годину. Прийнятно для дня катання (6-8 годин). На Android PRIORITY_HIGH_ACCURACY схожого споживання.
Статистика спуску: максимальна швидкість, середня швидкість, перепад висоти, час. Окремена карточка на кожний спуск, зведення за день. Swift Charts — LineMark для швидкості по дистанції.
Бронювання та послуги
Ski-school, прокат, ресторан — бронювання прямо з додатку. Стандартний booking-flow: вибір послуги → дата/час → підтвердження → оплата (Stripe/ЮKassa). Push-нагадування за годину до заняття.
Мобільний QR для ресторану/проката — показує, що гість вже оплатив через додаток. Сканується персоналом на касі.
Тривалість проекту
Базовий додаток (карта трас з реалтайм-статусом, ски-пас QR, трек катання) — 6-10 тижнів. Повна версія з бронюванням, NFC Wallet, інтеграцією з системою турнікетів — 3-5 місяців. Вартість залежить від систем управління курорту (Axess/Skidata/інші) — інтеграція з ними вимагає окремої оцінки.







