← к выдаче
разработка

Senior Flutter Developer

FURGONАлматы10 дн. назад

Коротко

Builds two Flutter apps (exchange and driver) from a shared codebase; integrates native Kotlin/Swift modules for background location and geofencing. · Needs: Requires Flutter (Dart) development, native modules in Kotlin and Swift, background location tracking, geofencing, REST API, WebSocket.

Описание от работодателя

О проекте FURGON — биржа грузоперевозок для Центральной Азии. Грузовладельцы публикуют грузы, перевозчики находят их и откликаются, а перевозка ведётся прямо на площадке: статусы рейса, документы, местоположение машины. Первая страна — Казахстан, следом Узбекистан и Кыргызстан. Сервер и веб-кабинет уже работают. Нужно сделать два мобильных приложения под Android и iOS на Flutter из общей кодовой базы: приложение биржи: для грузовладельца, экспедитора и логиста перевозчика; приложение водителя : рейсы, статусы, фото документов, фоновое отслеживание местоположения. Аккаунт у приложений общий. Дизайн готов, экраны нарисованы. Формат работы Проект с фиксированным объёмом: разработка приложения по готовому дизайну, публикация в магазинах. Оплата за проект поэтапно, после приёмки каждого этапа. Полностью удалённо. Технология Оба приложения делаются на Flutter (Dart) из одной кодовой базы с общими модулями. Фоновое отслеживание местоположения и геозоны требуют нативной части: модулей на Kotlin для Android и на Swift для iOS внутри Flutter-приложения или проверенной библиотеки фоновой геолокации. Какую библиотеку взять и как устроить нативную часть, обсуждаем с вами на старте. Стек проекта Мобильные приложения: Flutter (Dart), нативные модули на Kotlin и Swift Сервер: Go, PostgreSQL, Redis, REST API и WebSocket, Nginx Веб-кабинет: Vue 3, Pinia, Axios, vue-i18n, Tailwind CSS Интерфейс на четырёх языках: русский, казахский, узбекский, английский Уведомления: SMS, WhatsApp, Telegram; мониторинг — Prometheus и Grafana Объём проекта Общая часть Архитектура двух приложений в одном хранилище кода: общие Dart-пакеты (вход, связь с сервером, компоненты дизайна, переводы, работа без связи) и отдельные сборки каждого приложения. Общий аккаунт: вход по коду из SMS, безопасное хранение сессии с короткоживущим токеном доступа и его обновлением. Push-уведомления (Firebase Cloud Messaging и Apple Push Notification service). Сбор ошибок и падений (Firebase Crashlytics или Sentry). Приложение биржи Лента грузов и машин с фильтрами и обновлением в реальном времени через WebSocket, карточка груза, отклик, мои перевозки, уведомления. Приложение водителя Вход по приглашению логиста из SMS, без регистрации компании. Рейсы и карточка рейса, отметки шагов «Едет на погрузку», «Погрузка», «В пути», «Разгрузка», съёмка и загрузка фото груза и документов со сжатием, карта и маршрут. Фоновое отслеживание местоположения в рейсе: передача координат при свёрнутом приложении, геозоны погрузки и разгрузки, бережный расход батареи, стабильная работа на устройствах с жёстким энергосбережением (Xiaomi, Samsung, Huawei) и на бюджетных телефонах водителей. Работа без связи на трассе: приложение копит координаты, отметки и фото и досылает их, когда появляется сеть, без потерь и дублей. Публикация Оба приложения в Google Play и App Store, включая проверку Apple и декларацию Google Play о фоновом доступе к геолокации для приложения водителя. Обязательные требования От 6 лет коммерческой мобильной разработки, из них не меньше 2 лет на Flutter. Не меньше двух приложений на Flutter, опубликованных в Google Play и App Store. Умение писать нативные модули на Kotlin и Swift и связывать их с Flutter через платформенные каналы (platform channels). REST, WebSocket, JSON; авторизация токенами с обновлением; генерация кода обращения к серверу из описания OpenAPI. Будет плюсом Будет большим плюсом: опыт фоновой геолокации во Flutter-приложении: готовый модуль (например, flutter_background_geolocation) или собственная реализация; службы переднего плана в Android (Foreground Service), режим Doze, разрешения на геолокацию в Android 10–15, режим «Всегда» в iOS. Опыт в логистике, доставке, такси или других продуктах с трекингом; опыт пары приложений «заказчик — исполнитель». Прохождение декларации Google Play о фоновой геолокации. Карты во Flutter: Яндекс Карты или 2ГИС (у обоих есть официальные модули), Google Maps. Автоматическая сборка и публикация (Codemagic, GitHub Actions, fastlane). Многоязычный интерфейс, часовые пояса, несколько валют. Базовое понимание Go и PostgreSQL.