Разработка мобильного приложения для гольф-клуба
Гольф-приложение — нишевый продукт с конкретными требованиями: точная карта поля с расстояниями, счётчик ударов с аналитикой по лункам, система гандикапа, бронирование тайм-слотов. Аудитория платёжеспособна и требовательна к качеству — дешёвое решение не принимается.
Карта поля и расстояния
Главная функция на поле — знать дистанцию до пина (флага) и до опасных зон. GPS-измерение расстояния до заранее заданных точек поля.
Карта гольф-поля: спутниковые снимки (Google Maps Satellite / Mapbox Satellite) как подложка + SVG-оверлеи фервея, бункеров, водных препятствий, greens. SVG-данные поля либо покупаются у GolfLogix/Golf Genius (они покрывают 40,000+ полей), либо оцифровываются вручную по спутнику (если поле небольшое и нестандартное).
Расстояние до пина: координаты пина для каждой лунки заданы заранее. CLLocation(latitude: pinLat, longitude: pinLon).distance(from: userLocation) — мгновенно, без API. Отображение в метрах и ярдах (настройка пользователя). Расстояние до передней и задней границы green — аналогично, три точки на каждый green.
Расстояние до опасных зон (вода, бункер): тап на зону → показывает дистанцию до ближайшего края. Turf.nearestPointOnLine для полигона опасной зоны.
Дополнительно для премиального UX: дистанция до ворот на каждую лунку при навигации по FollowCamera в Mapbox — поле автоматически центрируется по игроку.
Счётчик ударов
Простой, но требует хорошего UX. На зелёном поле с солнцем — экран должен читаться в перчатках. Большие кнопки +/−, высокая яркость, dark-friendly режим.
Структура данных: Round (партия) → HoleScore[]. Каждый HoleScore: hole_number, strokes, putts, fairway_hit (bool), green_in_regulation (bool), penalties, notes.
Статистика партии: итого ударов, разница с паром (+3, −1 и т.д.), среднее количество паттов. История партий — календарь + динамика handicap.
Система гандикапа
World Handicap System (WHS) — международный стандарт с 2020 года. Расчёт: Score Differential = (Adjusted Gross Score − Course Rating) × 113 / Slope Rating. Handicap Index — среднее из лучших 8 из последних 20 дифференциалов.
Данные поля: Course Rating и Slope Rating берём из базы данных USGA / EGA (они открыты для лицензированных партнёров) или вводим вручную для каждого поля. Расчёт гандикапа — на сервере после каждой записанной партии, уведомление пользователю.
Бронирование тайм-слотов
Tee time booking: сетка доступных слотов по дням, выбор количества игроков, подтверждение. Интеграция с системами управления полем: GolfNow, EZLinks, Golf Genius — у них есть API для бронирования через третьи приложения. Для клубов без внешней системы — собственный booking backend.
Оплата при бронировании — Stripe. Отмена с возвратом по правилам клуба (конфигурируется: бесплатно за 24ч, штраф за менее 2ч).
Клубные события и лента
Турниры, соревнования, обучающие сессии — calendar-view с записью. Push-уведомления за 24ч и за 1ч до события. Leaderboard турнира в реалтайме — WebSocket для live-обновления таблицы.
Сроки
Базовое приложение (карта с расстояниями, счётчик ударов, бронирование) — 4-8 недель. Полная версия с гандикапом WHS, интеграцией с GolfNow, турнирным модулем — 3-4 месяца. Стоимость рассчитывается индивидуально, существенно зависит от наличия внешних систем бронирования у клуба.







