Мы создаём AI-ассистента здоровья, который помогает человеку следить за собой на длинной дистанции: понимать своё состояние, видеть динамику и вовремя реагировать. В продукте уже есть ИИ-чат, дневник здоровья, опросы, персональные рекомендации, загрузка медицинских документов и семейные профили. Сейчас развиваем мобильное направление и ищем Senior Flutter-разработчика для создания приложения под iOS и Android на общей кодовой базе.
flutter-разработчик мобильного приложения для здоровья
подготовься к отклику
ai-инструментыЧтобы адаптировать резюме под вакансию или составить сопроводительное письмо, загрузи резюме
описание
задачи
- Разрабатывать приложение на Flutter/Dart для iOS и Android, участвовать в выборе архитектуры вместе с Tech Lead.
- Переносить и адаптировать сценарии существующего web-клиента: онбординг, профиль, опросы, дневник здоровья, рекомендации и семейные профили.
- Реализовывать интерфейсы по готовым макетам и UI-kit с учётом особенностей мобильных платформ.
- Интегрировать приложение с существующим backend, совместно согласовывать API-контракты и необходимые изменения.
- Развивать ИИ-чат: потоковое получение ответов, история сообщений, голосовой ввод и вложения.
- Обеспечивать устойчивую работу сетевого слоя: обработку ошибок, восстановление соединений и корректное поведение при смене сети или возвращении приложения из фона.
- Реализовывать авторизацию и управление сессиями: вход по email с OTP, социальный вход, восстановление доступа и выход из аккаунта.
- Работать с медицинскими документами: выбор файлов, загрузка, отображение прогресса и статусов обработки.
- Подключать push-уведомления, deep links и другие нативные возможности iOS и Android.
- Оптимизировать производительность, писать unit- и widget-тесты, разбирать сбои и ошибки.
- Участвовать в подготовке релизов, code review, оценке и декомпозиции задач.
требования
- Коммерческий опыт разработки на Flutter/Dart от 5 лет.
- Опыт выпуска и сопровождения приложений для iOS и Android.
- Умение проектировать поддерживаемую архитектуру приложения и обосновывать технические решения.
- Уверенное владение одним из подходов к управлению состоянием: Bloc/Cubit, Riverpod или аналогами.
- Опыт интеграции с REST API и работы с потоковыми данными через SSE или WebSocket.
- Понимание авторизации и управления сессиями: OAuth 2.0, JWT, access/refresh-токены, cookie-based authentication и особенности их использования в мобильном клиенте.
- Опыт локального хранения и кеширования данных, безопасного хранения учётных данных.
- Опыт работы с файлами, камерой или микрофоном, разрешениями и жизненным циклом приложения.
- Понимание навигации, deep links и push-уведомлений.
- Навыки профилирования и отладки через Flutter DevTools, опыт unit- и widget-тестирования.
- Умение разбираться в существующей логике продукта и взаимодействовать с frontend- и backend-разработчиками.
- Будет плюсом: Опыт переноса web-продукта на Flutter и чтения кода на TypeScript/Vue; Опыт разработки чатов, голосовых интерфейсов или приложений с потоковыми ответами ИИ; Интеграции с Apple HealthKit, Android Health Connect и носимыми устройствами; Опыт работы с подписками и встроенными покупками через App Store и Google Play; Знание Kotlin/Swift и опыт создания Flutter-плагинов или работы через platform channels; Опыт разработки приложений, работающих с медицинскими или другими чувствительными персональными данными; Настройка CI/CD в GitLab CI, автоматизация сборок и публикации приложений; Опыт работы с Sentry, Firebase Cloud Messaging и продуктовой аналитикой; Опыт локализации интерфейсов, включая поддержку RTL; Английский на уровне чтения технической документации
условия
- Полностью удалённый формат работы.
- Конкурентный уровень вознаграждения - обсуждается индивидуально по итогам интервью.
- Работу над действующим продуктом с готовым backend и существующими пользовательскими сценариями.
- Возможность влиять на архитектуру и технические решения мобильного приложения.
навыки
Если просят выйти из iCloud, прислать код из SMS, запустить или установить что-то, перевести деньги — не соглашайся: это мошенничество.