Обзор роли
Разработка и выпуск приложения на Flutter с использованием функционала карт Mapbox, возможностей ГИС, надежного офлайн-режима и аккуратной интеграции с REST API. Вы будете отвечать за полный цикл мобильной разработки — от UI до локального хранилища и оптимизации производительности.
Основные обязанности
-
Реализовывать функции работы с картами в Mapbox для Flutter (стили, векторные тайлы, маркеры, кластеризация, пользовательские слои).
-
Разрабатывать офлайн-режим: упаковка карт/тайлов, версионирование данных, синхронизация, обработка конфликтов, фоновые повторные попытки.
-
Работать с ГИС-данными: GeoJSON, проекции, буферизация/упрощение, пространственные запросы, рисование/редактирование геометрий.
-
Интегрировать REST API (авторизация, пагинация, фильтрация) и проектировать устойчивую сетевую логику с кэшированием и обработкой ошибок.
-
Создавать локальное хранилище (SQLite/sqflite/Drift) и модели данных, оптимизированные для офлайн-чтения/записи.
-
Оптимизировать производительность (плавная работа карт, профилирование памяти/CPU, контроль расхода батареи и трафика).
-
Писать модульные, виджет- и интеграционные тесты, поддерживать архитектуру приложения, дружественную к CI.
Обязательные требования
-
3+ лет опыта с Flutter/Dart; наличие хотя бы одного опубликованного production-приложения на Flutter.
-
Практический опыт работы с Mapbox в Flutter (переключение стилей, runtime-стилизация, источники/слои, аннотации).
-
Подтвержденный опыт реализации offline-first: стратегии синхронизации, фоновые задачи и разрешение конфликтов.
-
Уверенные навыки работы с REST API (JWT/OAuth2, interceptors, повторные запросы, экспоненциальная задержка).
-
Основы ГИС: системы координат, тайлинг (z/x/y), векторные и растровые тайлы, GeoJSON, базовые пространственные операции.
-
Опыт работы с локальными БД (sqflite или Drift), миграциями, индексированием, оптимизацией запросов.
-
Знание чистой архитектуры (BLoC/Cubit/Provider), навыки code review.
Будет плюсом
-
Опыт офлайн-маршрутизации/поиска пути (A*/Дейкстра) или работы с готовыми графами.
-
Работа с PostGIS/GeoDjango-бэкендами; знание OpenAPI/Swagger.
-
Опыт разработки фоновых сервисов/isolates, менеджеров загрузок и работы с файлами на iOS/Android.
-
Понимание вопросов безопасности, шифрования данных «на месте» и безопасного хранения.