AIKraft/Skills/Параллелизм Flutter

Параллелизм Flutter

Execute long-running tasks in a background thread in Flutter

flutter official Другое

Что делает навык

Реализует продвинутую обработку данных во Flutter, включая фоновую сериализацию JSON с помощью Isolates и асинхронное управление состоянием для обеспечения плавного рендеринга UI (60fps+). Решает проблему блокировки основного потока при тяжелых вычислениях или работе с большими объемами данных.

Когда применять

  • Парсинг больших JSON-файлов (более 1 МБ) или сложных вложенных структур без задержек интерфейса.
  • Выполнение длительных задач в фоновом потоке с непрерывным двунаправленным обменом данными.
  • Обеспечение отзывчивости UI при загрузке и обработке данных в приложениях для Web, Mobile или Desktop.
  • Использование автоматической генерации кода для сериализации в крупных приложениях.

Как работает

  1. Определить целевую платформу (Web, Mobile, Desktop), размер/сложность JSON-пакета и предпочтения по сериализации (ручная или через json_serializable).
  2. Выбрать стратегию сериализации: использовать dart:convert для простых моделей или json_serializable/build_runner для сложных.
  3. Выбрать стратегию конкурентности: использовать Isolate.run() для разовых тяжелых вычислений или ReceivePort/SendPort для долгоживущих изолятов.
  4. Для Web-платформ использовать функцию compute() вместо стандартных dart:isolate, так как потоки не поддерживаются.
  5. Интегрировать асинхронные вычисления в UI через FutureBuilder, чтобы основной поток оставался отзывчивым.
  6. Следовать ограничениям: не обращаться к 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 и совместимые) подхватывает его по описанию и следует шагам.