
Разбор · Опубликовали 08.10.2026
Flutter-приложение требует проверять плагины и сборки для обеих платформ при каждой доработке
Как принимать доработки унаследованного Flutter-приложения: воспроизвести сборки, проверить плагины на iOS и Android и получить доказательства работы от подрядчика.
Разбор подготовлен для vibecoding.ru вместе с машиной агентов · факты проверены 8 октября 2026
Доработка Flutter-приложения готова после проверок iOS и Android. Нового экрана мало: нужно подтвердить работу плагинов и обеих сборок.
У нас нет своего Flutter-приложения и клиентского кейса. Матрицу приёмки собираем из документации Flutter и уроков нашей веб-машины.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Общий код не объединяет платформенные проверки.
Общий код вызывает плагин, а тот обращается к возможностям платформы. У камеры и выбора фото есть свои реализации для iOS и Android.
Возьмём прикрепление фото к заявке. Новая кнопка зависит от системного выбора файла, поэтому проверка заканчивается сохранённым вложением.
Unit- и widget-тесты не загружают нативный код плагина. Подставленное тестом фото проверяет обработку данных, а не камеру телефона.
Старое приложение не обязательно переписывать. При разборе технического долга фиксируют рабочее поведение; для Flutter его проверяют на каждой платформе.
У каждого зелёного результата своя граница.
Источник: документация Flutter, Testing plugins и Testing Flutter apps, проверено 8 октября 2026. Границы приёмки сформулированы редакцией.
2. Первую доработку начинают с повторяемых сборок старой версии.
До правки нужны код и описание, по которому новый исполнитель повторит сборку. Версии Flutter и пакетов здесь фиксируют, а не обновляют до последних.
Исходную версию собирают без изменений, чтобы отделить старую проблему от новой регрессии. Для iOS нужны macOS и Xcode; сборка Android их не заменяет.
У каждого используемого плагина сверяют версию, поддержку iOS/Android и требования к сборке. Рядом пишут бизнес-сценарий: «фото для заявки».
Зависимости сохраняют в pubspec.lock; --enforce-lockfile не даёт молча изменить их разрешение. Нативные зависимости и инструменты сборки фиксируют отдельно.
До правки нужен исходный результат, который можно повторить.
Источник: гайды выпуска Flutter для Android/iOS и документация Dart о зависимостях, 8 октября 2026. Таблица описывает предлагаемый порядок передачи проекта, не результат клиентского пилота.
3. Каждую правку принимают по сборкам и сценариям обеих платформ.
В критерий «готово» входят тесты логики, обе сборки и сценарии плагинов. Набор устройств выбирают под аудиторию приложения.
Глубина проверки зависит от правки. После замены текста достаточно короткого прогона интеграций, а изменение плагина или разрешений требует подробного.
Проверяют и релизный пакет: appbundle для Android, ipa для iOS. Запуск в режиме разработки не подтверждает, что этот пакет выполнит действие клиента.
Коммит, версия и результаты проверок должны относиться к принимаемому пакету. Зелёный тест другой ветки не доказывает работу новой функции.
В отчёте о задаче обе платформы видны отдельно.
Источник: Flutter, Build and release an Android app / an iOS app, проверено 8 октября 2026. Это схема отчёта, команды не запускались на клиентском проекте.
Документация image_picker описывает перезапуск Android-приложения во время выбора фото. Тогда результат получают через retrieveLostData(), а не исходный вызов.
У iOS своя проверка: для указанного в документации сценария HEIC-фото нужен настоящий телефон. Симулятор его не проверит.
Камера image_picker сохраняет файлы во временный кеш. Для постоянного хранения приложение переносит фото; возврат файла ещё не подтверждает сохранность вложения.
Для выбора фото важен результат пользователя, а не открытая камера.
Источник: документация image_picker, проверено 8 октября 2026. Последняя строка и критерии приёмки предложены редакцией; это не перечень ошибок нашего приложения. Для используемой версии плагина требования сверяют заново.
4. Агент получает функцию и границы изменений зависимостей.
Функцию и массовое обновление пакетов лучше разделить. При сбое команда сможет проверить отдельно бизнес-логику и окружение.
В задаче для ИИ-агента фиксируют результат на обеих платформах и сохранность полей при отмене. «Добавить фото» этих условий не содержит.
В правилах для агентов ограничивают обновление пакетов. Новая версия плагина требует причины, проверки требований из её документации и обеих сборок.
Наши веб-инциденты показывают, почему окружение и сборку проверяют отдельно.
05.09
Выпуски не проходили сборку при зелёных проверках кода. Причина получила отдельную проверку до сборки, результат сборки проверяется отдельно. Урок для мобильного проекта: сдавать пакет, а не только зелёные тесты.
15.09
Автомат пропустил замер: зависимости ссылались в удалённую папку задачи. Запись ошибки зависела от той же сломанной команды. Правило: постоянный автомат не использует зависимости временной папки.
17.09
Замер восстановили, оба автомата получили проверку наличия зависимостей перед запуском. Урок для приёмки: окружение должно воспроизводиться после передачи проекта.
Источник: записи машины vibecoding.ru и действующая проверка причины сбоя сборки, сверено 8 октября 2026. Это два веб-инцидента и восстановление, не Flutter-кейс.
Быстрый код не снимает ответственность за ошибку. Инженер принимает сценарии, а найденная после выпуска ошибка становится новой проверкой.
5. Покупают доработку вместе с доказательствами её работы.
Подрядчика проверяют выбранной доработкой и результатами обеих платформ. «Мы используем ИИ» не объясняет, кто принимает плагин на телефоне.
На vibecoding.ru инженер ведёт публичную машину агентов. Её темп не даёт срока для Flutter; сначала надо воспроизвести ваш проект.
Подписка на один проект стоит 250 000 ₽ в месяц, цена проверена 8 октября 2026. Проверки Flutter фиксируем в задаче на старт; срок обсуждаем после знакомства с кодом.
По первой доработке видно, можно ли продолжать работу с подрядчиком.
Источник: предлагаемые критерии покупки, документация Flutter и публичное условие /services «В вашу ветку в вашем репозитории», проверено 8 октября 2026.
Для следующего шага есть вход для руководителя. К разбору подготовьте список плагинов, версии приложения и первую нужную функцию.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Проверки Flutter | Открыты официальные страницы о тестах плагинов, использовании пакетов и выпуске Android/iOS. Из границ тестовой среды выведена матрица приёмки каждой доработки. Это предлагаемый процесс, не обязательное правило команды Flutter для всех правок. | 2026-10-08 |
| Пример выбора фото | Документация image_picker на pub.dev: восстановление результата на Android, HEIC на реальном iOS-устройстве и временный кеш камеры. Критерии для заявки предложены редакцией. Для версии плагина в конкретном проекте требования проверяют заново. | 2026-10-08 |
| Наш опыт | Два инцидента веб-машины: сбой сборки 5 сентября и зависимостей 15 сентября, восстановление 17 сентября 2026. Истории сверены по исходным записям и действующей проверке причины сбоя. Своего Flutter-приложения и клиентского Flutter-кейса нет. | 2026-10-08 |
| Цена подписки | Живая страница /services, тариф «Один проект», 250 000 ₽ в месяц. Порядок проверки выбранного Flutter-проекта фиксируют в задаче на старт. Срок мобильной доработки и экономия на ней не измерены. | 2026-10-08 |
6. Частые вопросы
Что такое Flutter и почему у него отдельные платформенные проверки?+
Flutter позволяет писать общий код приложения. Плагины подключают возможности платформы, поэтому сборка и сценарий iOS проверяются отдельно от Android.
Нужно ли обновлять все плагины перед доработкой?+
Нет. Сначала воспроизводят рабочую комбинацию версий. Обновляют то, что требуется для задачи или поддержки окружения, с проверкой обеих платформ и объяснением изменения.
Можно ли вести iOS-сборку без Mac?+
Для сборки и выпуска iOS документация Flutter требует macOS и Xcode. Mac может быть в сборочном окружении, но у проекта должен быть проверенный доступ к этому пути сборки.
Достаточно ли Android-эмулятора и iOS-симулятора?+
Зависит от сценария плагина. Документация image_picker, например, требует настоящего iOS-устройства для указанного случая HEIC-фото. Набор устройств выбирают по интеграциям и аудитории приложения.
Нужно ли выкладывать приложение в магазины при каждой правке?+
Сборка и приёмка каждой доработки не означают публичный выпуск каждой ветки. Пакет проверяют до публикации, а порядок распространения согласуют отдельно.
Источники
- Flutter: Plugins in Flutter tests · проверено 08.10.2026 — официальная документация
- Flutter: Testing plugins · проверено 08.10.2026 — официальная документация
- Flutter: Testing Flutter apps · проверено 08.10.2026 — официальная документация
- Flutter: Using packages · проверено 08.10.2026 — официальная документация
- image_picker: сценарии и ограничения плагина · проверено 08.10.2026 — документация плагина
- Flutter: Build and release an Android app · проверено 08.10.2026 — официальная документация
- Flutter: Build and release an iOS app · проверено 08.10.2026 — официальная документация
- Dart: Package dependencies · проверено 08.10.2026 — официальная документация
- Машина vibecoding.ru; инциденты сентября сверены по исходным записям · проверено 08.10.2026 — наш опыт веб-разработки
- Подписка «Один проект» · проверено 08.10.2026 — публичная цена
Запомнить
- Общий код не объединяет приёмку: в задаче нужны iOS и Android.
- До новой функции повторите сборку старой версии и сохраните её условия.
- Принимайте релизный пакет и сценарии плагина, а не только новый экран.
- Обновление зависимостей отделите от функции, если оно не нужно для неё.
- Каждую найденную регрессию добавляйте в проверку следующей доработки.