Разработка мобильного приложения для рыбалки
Рыболовное приложение — это пересечение нескольких технических доменов: офлайн-карты (рыбак на водоёме часто без сети), прогноз клёва (метеоданные + лунный календарь + барометр), дневник улова с геолокацией и социальная составляющая для сообщества. Сделать всё это органично — задача нетривиальная.
Офлайн-карты водоёмов
Основа приложения — карта с водоёмами, точками ловли и возможностью работать без интернета.
Тайловые карты для офлайн-режима: MBTiles-формат (SQLite с тайлами внутри). Пользователь скачивает карту выбранного региона заранее. iOS: Mapbox Maps SDK отлично поддерживает офлайн через OfflineManager.downloadStylePack + TilesetDescriptor. Android: аналогично через Mapbox или OSMDroid с тайловым кэшем.
Альтернатива для бюджета — OpenStreetMap тайлы + Leaflet/MapLibre в WebView. Потеря в нативности ощутима, особенно при работе с GPS треком.
Точки ловли — пользовательские POI (fishing_spots): координаты, название, тип водоёма (река/озеро/водохранилище/море), предпочтительная снасть. Хранятся в облаке, синхронизируются в SQLite для офлайна.
Векторные слои поверх карты (нерестовые зоны, запретные районы) — GeoJSON от сервера, рендерится как MGLFillLayer (Mapbox iOS) или PolygonOverlay (MapKit).
Прогноз клёва
Прогноз активности рыбы — это комбинация факторов:
- Атмосферное давление (тренд: растёт/падает/стабильно). Стабильное высокое — хорошо. Резкое падение — плохо. Данные: OpenWeatherMap или Open-Meteo (
surface_pressure). - Фаза луны. Полнолуние и новолуние традиционно считаются активными днями. Расчёт локально через формулу (не API): позиция луны вычисляется по дате без сети.
- Температура воды. OpenWeatherMap
water_temperatureдля морских точек; для рек/озёр — UserReport (сами рыбаки вводят). - Время суток: утренняя зорька (30 мин до/после восхода) и вечерняя — пик активности для большинства видов.
- Ветер: умеренный западный — хорошо, сильный северный — плохо.
Алгоритм прогноза — взвешенная сумма факторов → оценка 1-5 «рыб». Конкретные веса подбираются эмпирически или через ML-модель обученную на данных дневников улова.
Дневник улова
Запись улова: вид рыбы (выбор из справочника + фото для идентификации), вес/длина, снасть, наживка, глубина, координаты точки, погода на момент поимки (автоматически от API). Фото рыбы — с автоматическим замером через AR (RealityKit ARWorldTrackingConfiguration + MLModel для оценки размера по референсному объекту).
Идентификация вида рыбы по фото — CoreML модель (обученная на iNaturalist датасете) для iOS, ML Kit Custom Model для Android. Точность 70-80% для распространённых видов — достаточно для предзаполнения формы, пользователь корректирует.
Статистика за сезон: лучшие точки на карте heatmap, топ видов, сравнение с прошлым годом. Swift Charts (iOS 16+) или MPAndroidChart для графиков.
Сообщество
Публичная лента уловов — пользователи делятся результатами (с возможностью скрыть точную координату — «водоём без точки»). Рейтинг рыбаков по весу улова. Форум по водоёмам — привязанные к геолокации обсуждения.
Конфиденциальность точек: «секретное место» — координата хранится с радиус-шумом ±500м при публикации. Реальная координата остаётся в личном дневнике.
Сроки
Базовое приложение (офлайн-карта, дневник улова, прогноз клёва) — 6-10 недель. Полная версия с идентификацией рыбы через ML, AR-замером и сообществом — 4-6 месяцев. Стоимость индивидуально.







