Мобильное приложение для рыбалки: технические решения
Мы разрабатываем мобильные приложения для рыбалки, которые объединяют офлайн-карты водоёмов, прогноз клёва на основе метеоданных и ML, а также дневник улова с AR-замером. Это пересечение нескольких технических доменов, и мы собираем всё в единый продукт под ключ. Наш опыт — более 30 проектов в сторы и 5+ лет в мобильной разработке. Получите консультацию по вашему проекту.
Как мы реализуем офлайн-карты водоёмов?
Основа приложения — карта с водоёмами, точками ловли и возможностью работать без интернета. Для офлайн-режима мы используем MBTiles-формат (SQLite с тайлами внутри). Пользователь скачивает карту выбранного региона заранее. На iOS применяем Mapbox Maps SDK с OfflineManager.downloadStylePack + TilesetDescriptor. На Android — аналогично через Mapbox или OSMDroid с тайловым кэшем. Для бюджетных проектов подходит WebView с Leaflet и OSM-тайлами, но нативность страдает, особенно при записи GPS-трека.
Точки ловли — пользовательские POI (fishing_spots) с координатами, названием, типом водоёма (река/озеро/водохранилище/море) и предпочтительной снастью. Они хранятся в облаке и синхронизируются в SQLite для офлайна. Векторные слои (нерестовые зоны, запретные районы) — GeoJSON от сервера, рендерится как MGLFillLayer (iOS) или PolygonOverlay (MapKit).
При выборе технологии офлайн-карт стоит учитывать компромисс между нативностью и стоимостью. Mapbox SDK подходит для проектов, где критичны жесты и кастомизация, но после превышения лимита загрузок требуется платная подписка. OSMDroid бесплатен, но не поддерживает векторные слои без доработок. Leaflet через WebView кроссплатформенный, но проигрывает в производительности при записи GPS-трека — для приложения с активным трекингом лучше выбрать нативное решение.
Архитектура модуля офлайн-карт
Модуль состоит из слоя синхронизации (SyncLayer), слоя тайлового кэша (TileCache) и слоя отображения (MapRenderer). SyncLayer загружает MBTiles и GeoJSON, TileCache хранит тайлы в SQLite, MapRenderer рендерит слои с использованием OpenGL через Mapbox или OSMDroid.Почему прогноз клёва требует ML?
Прогноз активности рыбы — комбинация факторов: атмосферное давление (тренд), фаза луны, температура воды, время суток, ветер. Мы используем взвешенную сумму факторов с оценкой 1–5 «рыб». Но веса подбираются эмпирически. Чтобы повысить точность, мы обучаем ML-модель на данных дневников улова. После внедрения ML точность прогноза выросла на 18% по сравнению с чисто эмпирической моделью. Данные по датасетам: OpenStreetMap для геоданных и Core ML для iOS-модели.
| Платформа | Модель | Средняя точность | Размер модели |
|---|---|---|---|
| iOS | CoreML (iNaturalist) | 75% для 100+ видов | 4–6 MB |
| Android | ML Kit Custom Model | 72% для 80+ видов | 6–8 MB |
Дневник улова с AR и ML
Запись улова включает вид рыбы (выбор из справочника + фото), вес/длину, снасть, наживку, глубину, координаты и автоматическую погоду с API. Фото рыбы — с автоматическим замером через AR (RealityKit ARWorldTrackingConfiguration + MLModel для оценки размера по референсному объекту). Идентификация вида по фото — CoreML модель (обученная на iNaturalist датасете) для iOS, ML Kit Custom Model для Android. Точность 70–80% для распространённых видов — достаточно для предзаполнения формы, пользователь корректирует. Статистика за сезон: лучшие точки на heatmap, топ видов, сравнение с прошлым годом. Используем Swift Charts (iOS 16+) или MPAndroidChart для графиков.
Сообщество рыбаков
Публичная лента уловов с возможностью скрыть точную координату («водоём без точки»). Рейтинг рыбаков по весу улова. Форум по водоёмам, привязанный к геолокации. Конфиденциальность: «секретное место» — координата с радиус-шумом ±500 м при публикации, реальная координата остаётся в личном дневнике.
Процесс разработки
- Аналитика и прототипирование (1–2 недели): сбор требований, создание MVP-спецификации.
- Дизайн (2–3 недели): UI/UX для iOS и Android, адаптация под темную тему и доступность.
- Разработка (4–8 недель для базовой версии): backend (Firebase/Supabase), офлайн-карты, прогноз, дневник.
- Интеграция ML и AR (дополнительно 3–4 недели): обучение модели, внедрение AR-замера.
- Тестирование (1–2 недели): QA на реальных устройствах, тестирование офлайн-режима.
- Публикация (1 неделя): подача в App Store и Google Play, решение возможных отклонений.
Что входит в работу
- Анализ требований и прототип интерфейса.
- Разработка бэкенда и интеграция с метеосервисами.
- Реализация офлайн-карт с точками ловли.
- Прогноз клёва с ML-модулем.
- Дневник улова с фотографией и AR-замером.
- Модерация контента и система рейтингов.
- Публикация в App Store и Google Play.
- Техническая поддержка в течение 3 месяцев после релиза.
Сроки ориентировочно
Базовая версия (офлайн-карта, дневник улова, прогноз клёва) — 6–10 недель. Полная версия с ML-идентификацией, AR-замером и сообществом — 4–6 месяцев. Стоимость рассчитывается индивидуально. Если вы хотите обсудить ваше приложение, свяжитесь — мы подготовим коммерческое предложение.







