В связи с масштабированием сети, ИТ-департамент Spirit. расширяет команду и приглашает к сотрудничеству Разработчика мобильных приложений (Senior Flutter Developer).
Чем предстоит заниматься:
- Проектирование и реализация нового функционала мобильного приложения (end-to-end): от анализа требований и архитектурных решений до релиза и сопровождения.
- Участие в переработке существующего мобильного приложения в рамках перехода на новую инфраструктуру и API.
- Разработка клиентского и внутреннего корпоративного мобильного приложения на Flutter (Android / iOS).
- Проектирование архитектуры мобильного приложения: слои, модули, state management, навигация, работа с зависимостями.
- Интеграция мобильного приложения с backend-сервисами (REST/HTTP, JSON, WebSocket при необходимости).
- Поддержка и развитие существующего кода: багфиксы, оптимизация, рефакторинг, устранение технического долга.
- Реализация UI/UX согласно дизайн-системе и макетам (Figma), участие в улучшении пользовательского опыта.
- Работа с асинхронными операциями, сетевыми запросами, обработкой ошибок и edge-case сценариев.
- Реализация offline-first / caching стратегий (при необходимости), работа с локальным хранилищем.
- Настройка и поддержка сборок и релизов для App Store и Google Play (взаимодействие с CI/CD).
- Написание автотестов (unit, widget, integration), участие в code review с акцентом на качество и поддерживаемость.
- Оценка задач: разбиение на подзадачи, оценка сроков и рисков, участие в планировании спринтов. Взаимодействие с backend-разработчиками, дизайнерами, PO и QA.
- Участие в обсуждении архитектурных изменений при миграции инфраструктуры и их влияния на мобильный клиент.
Что необходимо для успеха:
- Владение Битрикс24: Владение инструментом на продвинутом уровне
Профессиональные навыки:
- Основной стек: Flutter,Dart Flutter / Dart:,
- Глубокое знание Dart и опыт промышленной разработки Flutter-приложений.
- Понимание жизненного цикла Flutter-приложения и виджетов.
- Уверенная работа с layout-системой Flutter (Flex, Constraints, RenderObject — на уровне понимания).
- Опыт оптимизации производительности (build phases, repaint boundaries, memory).
- Умение писать переиспользуемые и расширяемые UI-компоненты. - Архитектура мобильных приложений:
- Опыт проектирования архитектуры Flutter-приложений (Clean Architecture, MVVM, MVC, Layered, Feature-based).
- Понимание принципов разделения ответственности (UI / domain / data).
- Опыт работы с state management: ○ BLoC / Cubit ○ Riverpod / Provider ○ понимание trade-offs между подходами.
- Dependency Injection (get_it, riverpod, manual DI). Работа с API и данными:
- Интеграция с REST API (HTTP, JSON).
- Понимание авторизации и аутентификации (JWT, OAuth2, refresh tokens).
- Работа с WebSocket / realtime обновлениями (как плюс).
- Работа с локальным хранилищем: ○ SQLite / Drift / Hive / SharedPreferences.
- Реализация кеширования и offline-сценариев.
- Понимание контрактов API и versioning. - Асинхронность и конкурентность:
- Уверенное владение async/await, Futures, Streams.
- Работа с изоляциями (Isolates) — понимание, когда и зачем использовать.
- Обработка ошибок, таймаутов, повторных запросов. - Тестирование:
- Написание unit-тестов (Dart).
- Widget tests.
- Integration / e2e тесты.
- Понимание тестируемой архитектуры и DI.
- Использование mock/stub/fake объектов. - CI/CD и релизы:
- Опыт настройки сборок Flutter-приложений.
- Понимание процессов публикации в App Store и Google Play.
- Работа с flavors / environments (dev, staging, prod).
- Интеграция с CI/CD (GitHub Actions, GitLab CI, Bitrise и др.). - Git и совместная разработка:
- Уверенная работа с Git.
- PR workflow, code review.
- Атомарные коммиты, работа с feature-ветками, разрешение конфликтов. - Понимание мобильной экосистемы: Android / iOS:
- Понимание различий платформ (permissions, background execution, lifecycle).
- Работа с нативными API через platform channels (как плюс).
- Понимание ограничений App Store / Google Play.
- Работа с push-уведомлениями (Firebase/APNs). - UI/UX:
- Работа по дизайн-макетам (Figma).
- Понимание адаптивной и отзывчивой верстки. Поддержка темизации (dark/light mode).
- Accessibility — базовое понимание. - Общие ожидания от уровня Senior:
- Самостоятельность в принятии архитектурных решений и умение аргументировать выбор (trade-offs, риски).
- Участие в проектировании приложения целиком, а не только отдельных экранов.
- Способность оценивать задачи: разбиение на подзадачи, оценка effort и рисков.
- Умение выявлять и снижать технический долг.
- Ответственность за качество и стабильность мобильного приложения. - Личностные качества:
- Умение чётко формулировать и аргументировать технические решения.
- Готовность к активному взаимодействию с backend-разработчиками, дизайнерами и продуктом.
- Конструктивное участие в code review — умение как давать, так и принимать обратную связь.
- Внимательность к качеству, стабильности и пользовательскому опыту.
- Дисциплинированность в оформлении кода, коммитов и документации.
- Ориентированность на долгосрочную поддержку и развитие продукта.
Что мы предлагаем:
- Работу в компании федерального масштаба;
- Доход выше рынка по итогам собеседования:
- Оформление и льготы по ТК РФ, бессрочный трудовой договор;
- Фитнес для сотрудника и его друга +1;
- ДМС после исп. срока;
Мы ценим внимательность, поэтому в сопроводительном письме просим указать:
Зарплатные ожидания на период испытательного срока и после
Ваш релевантный опыт в годах
Какой клуб нашей сети ближайший к вашему дому
Возможная дата выхода на работу
Спасибо за уделенное время и ждем Вас на собеседовании!