Параллелизм Flutter
Execute long-running tasks in a background thread in Flutter
AIflutter
official
Другое
Что делает навык
Реализует продвинутую обработку данных во Flutter, включая фоновую сериализацию JSON с помощью Isolates и асинхронное управление состоянием для обеспечения плавного рендеринга UI (60fps+). Решает проблему блокировки основного потока при тяжелых вычислениях или работе с большими объемами данных.
Когда применять
- Парсинг больших JSON-файлов (более 1 МБ) или сложных вложенных структур без задержек интерфейса.
- Выполнение длительных задач в фоновом потоке с непрерывным двунаправленным обменом данными.
- Обеспечение отзывчивости UI при загрузке и обработке данных в приложениях для Web, Mobile или Desktop.
- Использование автоматической генерации кода для сериализации в крупных приложениях.
Как работает
- Определить целевую платформу (Web, Mobile, Desktop), размер/сложность JSON-пакета и предпочтения по сериализации (ручная или через json_serializable).
- Выбрать стратегию сериализации: использовать dart:convert для простых моделей или json_serializable/build_runner для сложных.
- Выбрать стратегию конкурентности: использовать Isolate.run() для разовых тяжелых вычислений или ReceivePort/SendPort для долгоживущих изолятов.
- Для Web-платформ использовать функцию compute() вместо стандартных dart:isolate, так как потоки не поддерживаются.
- Интегрировать асинхронные вычисления в UI через FutureBuilder, чтобы основной поток оставался отзывчивым.
- Следовать ограничениям: не обращаться к dart:ui или rootBundle внутри изолятов и использовать неизменяемые сообщения.
Примеры запросов агенту
Как реализовать фоновый парсинг большого JSON-файла в Flutter, чтобы не блокировать UI?
Напиши код для сериализации сложной модели данных с использованием json_serializable и фоновым вычислением через Isolate.run().
Как правильно организовать обмен данными между основным потоком и долгоживущим изолятом в Flutter?
Что понадобится
- Среда Flutter (Dart 2.19+)
- Пакеты dart:convert, dart:isolate, json_annotation, build_runner, json_serializable
- Пакет flutter/services.dart (для rootBundle)
Описание составлено по SKILL.md навыка, сверено 05.10.2026.
Как подключить
1Скачать навык
# возьмите папку навыка «flutter-concurrency» из репозитория:
# https://github.com/flutter/skills
2Положить папку с
SKILL.md к навыкам ассистента# положите папку навыка туда, где ассистент ищет skills:
cp -r flutter-concurrency/ ~/.claude/skills/flutter-concurrency/
Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.