Обязанности:
-
Разработка и поддержка: Полный цикл разработки и поддержки мобильного приложения на Flutter для iOS и Android.
-
Реализация сетевого взаимодействия: Разработка и интеграция модуля для связи с контроллерами умного дома (ESP32 и аналоги) по протоколу Modbus TCP (или другим, например, MQTT, HTTP REST API).
-
Работа с состоянием: Эффективное управление состоянием приложения с использованием популярных подходов (Bloc, Provider, Riverpod).
-
Реализация реального времени: Обеспечение быстрого отклика интерфейса на изменения состояния устройств (например, включение/выключение света с мгновенным обновлением статуса на экране).
-
Работа с данными: Локальное сохранение настроек, конфигураций устройств и истории с использованием баз данных (например, Hive, SQLite).
-
Тестирование: Написание unit- и widget-тестов для обеспечения надежности и стабильности приложения.
-
Оптимизация: Оптимизация производительности приложения для плавной работы на различных устройствах.
-
Командная работа: Тесное взаимодействие с firmware-инженерами (разработчиками под ESP32) для согласования API и протоколов связи.
Требования (Стек и Навыки):
-
Опыт коммерческой разработки на Flutter/Dart от 2 лет и наличие портфолио с опубликованными приложениями.
-
Глубокое понимание Dart и основных принципов Flramework (виджеты, жизненный цикл, keys и т.д.).
-
Опыт работы с сетевыми запросами: уверенное использование http, dio или аналогичных пакетов.
-
Обязательное требование: Опыт или глубокое понимание протокола Modbus TCP (или готовность быстро его изучить). Понимание, что такое регистры (holding registers, input registers), coils и как с ними работать.
-
Альтернатива/Дополнение: Опыт работы с MQTT (пакет mqtt_client) будет огромным плюсом, так как это очень популярный протокол в IoT.
-
Опыт управления состоянием: уверенное владение одним из стейт-менеджеров: Bloc / Cubit, Riverpod, Provider.
-
Опыт работы с локальными базами данных: Hive, SQLite, Isar или аналоги.
-
Понимание принципов клиент-серверной архитектуры и работы с асинхронностью (async/await, Future, Stream).
-
Знание Git и опыт работы в команде.
-
Базовое понимание IoT-принципов: что такое микроконтроллер, как происходит взаимодействие по Wi-Fi/Ethernet, что такое пинг, задержки (latency).
Будет серьезным преимуществом:
-
Опыт интеграции с устройствами по протоколам IoT (не только Modbus, но и MQTT, CoAP и др.).
-
Понимание firmware-части: опыт написания простого кода для Arduino/ESP32 на C/C++.
-
Опыт настройки CI/CD для Flutter-проектов (GitLab CI, GitHub Actions).
-
Знание нативных платформ (Android/Kotlin, iOS/Swift) для решения специфичных задач.
Условия:
-
Формат работы: Удалённая работа
-
Проект: Интересный и современный проект в сфере Интернета Вещей (IoT) и автоматизации с долгосрочной перспективой.
-
Официальное оформление
-
Профессиональный рост: Возможность глубоко погрузиться в мир IoT и повлиять на архитектуру продукта.
-
Гибкий график