МГТС — основной телекоммуникационный партнер Города Москвы и часть экосистемы МТС. Проектируем, строим и эксплуатируем передовую телекоммуникационную инфраструктуру, развиваем и внедряем сети нового поколения, реализуем комплексные решения для Умного города.
Мы ищем Flutter-разработчика.
Чем предстоит заниматься:
- разрабатывать мобильное приложение и веб-клиента на Flutter/Dart из общей кодовой базы;
- реализация карты: отображать объекты, слои, маршруты обхода, кластеризацию, поиск по карте;
- работать с геолокацией: определение позиции, трекинг перемещения, фиксация местоположения (чек-ин на объекте);
- осуществлять фоновый сбор координат и работать в offline-режиме с последующей синхронизацией;
- проектировать и реализовывать UI по макетам (Figma), адаптивная вёрстка под телефон/планшет/десктоп-браузер;
- интеграция с REST/gRPC/GraphQL API, работа с WebSocket;
- управлять состоянием, оптимизацией производительности и энергопотребления (важно для полевой работы);
- писать unit-/widget-/integration-тестов;
- публиковать и сопровождать сборки в App Store и Google Play, деплой веб-версии;
- сode review, поддержка и рефакторинг существующего кода.
Что мы ждем от кандидата:
Обязательные требования (Hard skills):
- dart — уверенное знание языка (async/await, Streams, Futures, generics, null-safety);
- flutter — жизненный цикл виджетов, дерево виджетов, BuildContext, layout-механика;
- flutter Web + адаптив** — одна кодовая база под МП и веб, responsive-вёрстка, различия платформ (условная компиляция, `kIsWeb`);
- управление состоянием — хотя бы один из: `Bloc/Cubit`, `Riverpod`, `Provider`, `GetX`;
- архитектура — Clean Architecture, разделение слоёв (presentation/domain/data), паттерны (Repository, DI);
- работа с сетью — `Dio`/`http`, сериализация JSON (`json_serializable`/`freezed`), обработка ошибок;
- локальное хранилище — `Hive`/`Isar`/`Drift`(SQLite), `SharedPreferences`, `secure_storage`;
- асинхронность — изоляты, фоновые задачи, оптимизация тяжёлых операций;
- git, CI/CD — сборка и деплой (`Codemagic`/`Fastlane`/GitHub Actions), публикация в сторы;
- картографические SDK — опыт хотя бы с одним: Google Maps (`google_maps_flutter`), Yandex MapKit, Mapbox, `flutter_map` (OpenStreetMap/Leaflet);
- геолокация — `geolocator`/`location`: получение координат, точность, `LocationSettings`, обработка разрешений (`permission_handler`);
- фоновый трекинг — сбор координат при работе в фоне и заблокированном экране (`flutter_background_geolocation`, foreground service на Android, Background Modes на iOS);
- фиксация местоположения — чек-ин/чек-аут на объекте, привязка факта к координатам и времени, геозоны (geofencing);
- работа с картой — маркеры и кластеризация, слои, полигоны/полилинии, маршруты обхода, поиск и фильтрация объектов по карте;
- геометрия и расчёты — расстояния (haversine), попадание точки в полигон, построение/оптимизация маршрута обхода;
- оffline-first — кэширование тайлов и данных объектов, работа без сети, очередь и синхронизация при появлении связи;
- точность и надёжности данных — фильтрация «прыжков» GPS, учёт точности, экономия батареи (адаптивная частота опроса).
Мы предлагаем:
- гибридный формат работы (регионы – удалённый);
- отсутствие жесткого дресс-кода и гибкое начало рабочего дня 8:00-10:00, восьмичасовой рабочий день;
- участие в профессиональных встречах клуба AI;
- работу в современной надёжной цифровой компании;
- Agile-культуру: продуктовые команды, Scrum и Kanban, демо-дни, внутренние митапы;
- полезные курсы и вебинары в корпоративном университете и электронные библиотеки, программы развития;
- медицинскую страховку с 1 месяца со 100% покрытием расходов, включая стоматологию, страхование жизни и здоровья в поездках за рубеж. А еще можно застраховать родственников с корпоративной скидкой;
- спортзал и массажный кабинет в офисе;
- единую подписку МТС Premium — онлайн-кинотеатр KION, сервис МТС Music;
- скидки и предложения от партнеров на фитнес, занятия.
#Flutter-разработчик#Dart#Rest#iOS#