Яблоневая улица 20
Обязанности:
Разработка высокопроизводительных интуитивно понятных мобильных приложений, которые служат основным интерфейсом взаимодействия пользователя с датчиком, бэкендом и специалистами.
Приложение должно обеспечивать сбор данных, их визуализацию, запуск анализа, коммуникацию и управление подписками.
С чем придется столкнуться и что необходимо соблюдать:
Реализуемое кроссплатформенное приложение должно обеспечивать сбор данных, их визуализацию, запуск анализа, коммуникацию и управление подписками.
Реализация всех модулей приложения согласно ТЗ и дизайн-макетом Figma (аутентификация, профиль, BLE-подключение, графики, чат, отчеты, подписки и т.д.)
Взаимодействие с командой бэкенда для интеграции с REST API и WebSockets
Программирование взаимодействие с датчиком (чтение/запись данных, настройка параметров, OTA обновление, мониторинг данных состояния)
Реализация алгоритмов фильтрации и (детекции метрик согласно ТЗ) на стороне клиента (Dart) перед отображением на графике
Написание модульных/виджет-текстов, проведение отладки (для BLE части, чтения с памяти датчика) и исправление ошибок (баг фиксинг)
Подготовка и помощь (сопровождение) приложения к публикации в App store (IOS) и Google Play и отечественные платформы для Android, включая настройку In-App Purchase и разрешений (Permissions)
Соблюдение код-стандартам проекта, участие в code review, ведение технической документации по своей части работы
Краткое описание:
- Разработка мобильного кроссплатформенного приложения IOS по готовому дизайну Figma;
- реализация BLE логики и чата;
- Обеспечение качества платформы, и всего функционала платформы;
- Взаимодействие и интеграция с Backendom, ИИ сервисом и БД (S3);
- разработка веб-кабинета, реализация инструментов анализа и графиков (обсуждается);
- Обеспечения безопасности (защиты платформы в соответствующими нормами и требованиями);
- UX/UI Дизайн некоторых окон (страниц приложения).
Требования:
Разработчик должен обладать следующими навыками:
- Языки и Фреймворки
- Dart (Обязательно): Глубокое знание языка Dart, его асинхронных возможностей (Async/Await, Isolate), понимание принципов ООП
- Flutter SDK (Обязательно): Уверенное владение фреймворком Flutter, умение создавать сложные пользовательские интерфейсы, анимации, понимание работы с Widgets, Stateful/Stateless виджетами.
- Работа с Протоколами и API
- HTTP/HTTPS и REST API: Опыт интеграции с RESTful API, обработки JSON-данных, работы с библиотеками (например, dio или http), обработки ошибок сети и кодов состояния HTTP.
- WebSockets (WSS): Опыт реализации двусторонней связи для модуля чата в реальном времени.
- Bluetooth Low Energy (BLE): Критически важно. Опыт работы с BLE-протоколом в Flutter (с использованием плагинов вроде flutter_blue_plus или ble_industrial), умение сканировать устройства, подключаться к ним, читать/писать GATT-характеристики, подписываться на уведомления (Notifications/Indications).
- Управление состоянием и архитектура
- Управление состоянием: Опыт использования современных подходов и решений для управления состоянием приложения (BLoC, Riverpod, Provider или Redux)
- Архитектурные паттерны: Понимание принципов чистой архитектуры (Clean Architecture) или MVVM
- Нативные знания и интеграции
- Опыт написания нативного кода Swift/Objective-C(IOS) и иди Kotlin/Java (Android) для реализации специфических функций, недоступных во Flutter (сложных фоновых сервисов для BLE) - умение интеграции Готовых сервисов BLE (сервисы BLE реализованы их необходимо подключить "внедрить")
- Опыт интеграции с нативными системами оплаты
- Опыт интеграции с Firebase Cloud Messaging (FCM) и APNS и иными.
- Опыт использования библиотек для построения динамических, прокручиваемых графиком в реальном времени (syncfusion_flutter_charts или fl_chart) и графиком отображения с пост обработкой
- Уверенное использование Git (для контроля версий) GitFlow
Дополнительные требования и желаемые навыки кандидата:
- D3.js, Angular, WSS, знание нативных особенностей IOS/Android (Permissions, Background services, BLE
- Разработка мобильного кроссплатформенного приложения по готовому дизайну Figma, реализация логики BLE и чата, интеграция с бэкендом.
- Технологический стек:
- Использование и знание фреймворка Flutter (Dart) для кроссплатформенной разработки;
- Нативные зависимости: Использование нативных плагинов для работы с Bluetooth Low Energy (BLE) и нативными платежными системами (Apple Pay / Google Pay /ЮKassa и иными);
- Знание протоколов BLE (обмена данных)
- Знание HTTPS (REST API, JSON) (для взаимодействия с основным бэкендом)
- Знание WSS (WebSockets)
- Знание FCM/APNS (для реализации возможности доставки Push-уведомлений)
- Разработка мобильного приложения IOS версии 14.0 и выше
- Разрешения (Permissions): Обязательный запрос разрешений на Bluetooth (в Info.plist), уведомления.
- Background Modes: Необходима поддержка работы с BLE в фоновом режиме, чтобы не прерывать измерение при сворачивании приложения.
- Платежи: Интеграция с Apple Pay и In-App Purchases для управления подписками.
- App Store Review: Приложение должно соответствовать всем гайдлайнам Apple, особенно в части HealthKit (если применимо) и использования Bluetooth
- Андройд версии 8.0 (API 26) и выше
- Google Play Review: Соответствие требованиям Google Play.
- Разрешения (Permissions): Запрос разрешений на Bluetooth/BLUETOOTH_SCAN/BLUETOOTH_CONNECT (для Android 12+), точное местоположение (для Android 10/11 для сканирования BLE), уведомления.
- Background Services: Использование Foreground Services для надежной работы с BLE в фоне (с обязательным отображением постоянного уведомления в шторке).
- Платежи: Интеграция с Google Play Billing Library / Google Pay.
- Разработка веб-кабинета специалиста, реализация инструментов анализа и графиков ( при наличии опыта создания веб-форм (по договоренности).
- Качество кода: Соблюдение код-стандартов Dart. Использование архитектурных паттернов (BLoC, Provider или Riverpod) для управления состоянием приложения.
- Тестирование: Модульные, виджет- и интеграционные тесты;
- Документация: Подробное комментирование кода и ведение актуальной технической документации по мобильной части.
Условия:
- Оплата как за проект, так и частями в соответствии с выполненными пунктами ТЗ;
- Согласование оплаты труда ( как разово за проект или трудоустройство), после собеседования.