🗺 Карта и навигация
Оффлайн-карта города, навигация между точками, режим «рядом» (nearby) с радиусом поиска.
«Зеленоградск: Гид и Жильё» — офлайн-first путеводитель по Зеленоградску (Кранцу) с ИИ-движками прямо на устройстве: семантический поиск, построение маршрутов, распознавание блюд, AR и пространственный звук. Ниже — подробное техническое описание. Данные на 30 мая 2026 г..
| Параметр | Значение |
|---|---|
| Платформа | Android 8.0 и новее (API 26+) |
| Архитектура | arm64-v8a, x86_64 (64-bit) |
| Интерфейс | Kotlin + Jetpack Compose, Material 3 |
| Ядро | Rust «zel-core» через UniFFI/JNA — нативная библиотека ~780 КБ (arm64, stripped) |
| Хранилище | Room (SQLite) + данные в APK — работает офлайн |
| Версия | 1.0.0 |
| Цена | Бесплатно, без рекламы |
| Язык | Русский |
Приложение построено в два слоя. Интерфейс — на Kotlin и Jetpack Compose (Material 3): декларативный UI, плавные анимации, тёмная/светлая тема. Вычислительное ядро — отдельная нативная библиотека на Rust (zel-core), подключённая через UniFFI и JNA. Тяжёлая логика не зависит от интерфейса и сервера: всё считается на телефоне.
📱 Compose UI ⟷ 🦀 Rust-ядро zel-core (UniFFI/JNA) ⟷ 💾 Room + данные в APK. Сеть подключается только для бронирования и «пульса города».
Каждый «движок» — отдельный модуль на Rust, вызываемый из Kotlin. Часть выделена в расширенную сборку (full-engines), чтобы не раздувать размер базовой версии.
| Движок | Что делает | Производительность |
|---|---|---|
| SemanticSearch | Находит места по смыслу запроса («где поесть рыбу у моря»), а не только по точному совпадению слов. Индекс строится на устройстве. | < 1 мс на запрос |
| RouteEngine | Граф-маршрутизация по точкам города: оптимальный порядок, короткие переходы, тайминг. Полностью офлайн. | мгновенно, офлайн |
| DishRecognizer | По тексту меню определяет местные блюда (строганина, клопсы, марципан), показывает «генеалогию» и ритуал подачи. | < 1 мс |
| CityPulseEngine | Считает «настроение» города из ежедневных сигналов (события, афиша), детектит аномалии и всплески активности. | on-device |
| OfflineQueue | Копит действия без сети (избранное, заметки) и синхронизирует, когда связь появится. | надёжно при потере сети |
| Geo (H3-подобный) | Расчёт расстояний (haversine), привязка GPS к ячейкам, поиск ближайших объектов и соседних ячеек. | микросекунды |
| SpatialAudio (HRTF) | Балтийские саундскейпы и 3D-аудиогид: звук «привязан» к месту через HRTF-свёртку. (расширенная сборка) | для AR-сцен |
| Morph | Визуальный морфинг и «родословная» блюд — как блюдо менялось во времени. (расширенная сборка) | для Time Machine |
| VPS (визуальное позиционирование) | Определяет положение по силуэтам зданий для дополненной реальности, без облака. (расширенная сборка) | цель 60 FPS |
| OfflineNarrator | Генерирует контекстную речь аудиогида на устройстве, без интернета. (расширенная сборка) | on-device |
Это не «кэширование на всякий случай», а принцип: основной функционал не зависит от сети вообще. Карта, объекты, маршруты, поиск, аудиогид и распознавание блюд работают в самолёте, в роуминге и на Куршской косе, где связь пропадает. Данные о городе упакованы в установочный файл, локальный кэш — на Room (SQLite), а вычисления выполняет Rust-ядро на устройстве. Сеть нужна только для двух вещей: перехода к бронированию у партнёров и обновления «пульса города» (с поддержкой ETag/304, чтобы не качать лишнего).
| Контент | Объём |
|---|---|
| Объекты (POI) | 470 в Зеленоградске, 720+ по области (Светлогорск, Янтарный) |
| Маршруты | 100 готовых + 5 гастро-трейлов |
| Рестораны | 30 с детальными профилями (92) |
| Блюда | 61 в гастро-энциклопедии |
| Истории и легенды | 58 статей |
| Исторические фото | 20 для «Машины времени» |
| Коты | 15 кото-объектов для кото-квеста |
Оффлайн-карта города, навигация между точками, режим «рядом» (nearby) с радиусом поиска.
Игровой маршрут по котам Зеленоградска — собери все кото-объекты города.
61 блюд балтийской кухни, 30 ресторанов с профилями, гастро-трейлы и распознавание меню.
100 готовых маршрутов с таймингом по часам и 5 гастро-трейлов.
Визуальный гид и AR-сцены, распознавание объектов через камеру.
Морфинг «было/стало»: 20 исторических фото Кранца совмещаются с современным видом.
Истории, легенды и факты о городе — статьи и справочник.
Подбор жилья и экскурсий с бронированием у партнёров.
Что происходит в городе сегодня + локальная погода.
Приложение читает только EXIF ваших фото из галереи, сопоставляет GPS с объектами и собирает таймлайн прогулки.
Приложение не отслеживает перемещения и не собирает аналитику профиля. Все разрешения — опциональные и используются строго по делу:
| Разрешение | Зачем |
|---|---|
| Геолокация (GPS) | Режим «рядом», навигация и привязка фото к местам. Можно не давать — гид работает и без неё. |
| Камера | AR-сцены, визуальный гид и распознавание блюд по меню. |
| Доступ к фото | Только для EXIF-истории: читаются метаданные снимков, сами фото никуда не отправляются. |
| Интернет | Только для перехода к бронированию у партнёров и обновления «пульса города». Весь основной функционал — офлайн. |
Да, это офлайн-first приложение. Карта, 470+ объектов, маршруты, аудиогид, поиск и распознавание блюд работают полностью без сети — все данные и вычислительные движки находятся на устройстве. Интернет нужен только чтобы перейти к бронированию жилья/экскурсий у партнёров и обновить «пульс города».
Тяжёлые задачи — семантический поиск, построение маршрутов, распознавание блюд, пространственный звук и AR-позиционирование — вынесены в нативную библиотеку на Rust (zel-core). Это даёт скорость (поиск и распознавание — меньше миллисекунды), компактность (ядро ~780 КБ) и работу без сервера: всё считается прямо на телефоне.
Приложение компактное: нативное ядро на Rust — около 780 КБ на архитектуру, данные о городе (объекты, маршруты, истории) упакованы в установочный файл, чтобы работать офлайн. Оптимизация размера — одна из целей проекта (release-сборка с LTO и strip).
Приложение не отслеживает пользователя и не собирает аналитику о перемещениях. Геолокация используется только на устройстве для режима «рядом» и навигации. EXIF-история читает метаданные ваших фото локально — снимки никуда не загружаются.
На смартфонах с Android 8.0 (API 26) и новее, архитектуры arm64-v8a и x86_64. Для AR-функций и распознавания блюд нужна камера, для навигации — GPS, но базовый гид работает и без них.
Бесплатно и без рекламы. Проект окупается партнёрскими переходами на бронирование жилья и экскурсий — для вас это ничего не меняет и не добавляет комиссии.