Claude Skill MartKhám phá skillCâu dùng ngayHọc qua videoDùng terminalSkill là gì?
← Về danh sách

Quy tắc quản lý state với Bloc

Bộ quy tắc thực chiến để thiết kế, viết và test Cubit/Bloc trong Flutter bằng bloc và flutter_bloc.

Lập trìnhTrung cấp★ 646⑂ 67Điểm AI 9/10Cập nhật lần cuối: 14 thg 9, 2026

Làm được gì

Giúp Claude Code viết code quản lý state trong Flutter đúng convention chuẩn của hệ sinh thái bloc.

  • Chọn Cubit hay Bloc: state đơn giản dùng Cubit, cần truy vết event hoặc debounce/throttle thì dùng Bloc.
  • Quy ước đặt tên: event ở thể quá khứ (LoginButtonPressed), state là danh từ (LoginInProgress).
  • Mô hình hoá state: khi nào dùng sealed class với các subclass, khi nào dùng một class kèm enum status; kèm quy tắc Equatable, @immutable, copyWith.
  • Gắn widget: bảng công dụng của BlocProvider, BlocBuilder, BlocListener, BlocSelector và nguyên tắc dùng context.read/watch.
  • Kiến trúc 3 lớp: Presentation → Business Logic → Data (Repository → DataProvider), cấm bloc gọi trực tiếp bloc khác.
  • Test: mẫu bloc_test + mocktail cho case thành công và thất bại.
  • Bảng lỗi thường gặp và cách sửa.

Phù hợp với ai

  • Dev Flutter làm app vừa và lớn với bloc/flutter_bloc
  • Tech lead muốn thống nhất style code state management trong nhóm
  • Nhóm đang chuyển từ setState/Provider sang bloc
  • Người muốn kết quả AI sinh code state management ổn định, dễ review

Ví dụ sử dụng

  1. "Tạo Cubit cho chức năng đăng nhập" → sinh state class dùng enum status, copyWith và constructor inject repository theo chuẩn.
  2. "Refactor màn hình này từ setState sang bloc" → định nghĩa sealed state và tách BlocBuilder / BlocListener.
  3. "Viết test cho CartCubit" → sinh blocTest kiểm tra thứ tự emit loading/success/failure kèm tearDown.

· · · Hướng dẫn cài đặt · · ·

Dùng thử ngay, không cần cài

Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.

Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình:
https://raw.githubusercontent.com/evanca/flutter-ai-rules/HEAD/skills/bloc/SKILL.md

Mình muốn: (viết việc bạn cần ở đây)

Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.

↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.

Cài vào ứng dụng Claude (không cần terminal)
  1. Tải tệp ZIP bằng nút bên dưới.
  2. Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
  3. Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
↓ Tải ZIP
Cài vào Claude Code

Để Claude làm — dán câu dưới đây vào Claude Code

Hãy cài skill mình tìm thấy trên Claude Skill Mart.
Copy thư mục skills/bloc từ repo GitHub evanca/flutter-ai-rules vào ~/.claude/skills/bloc/ của mình.
Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.

Cài bằng lệnh thủ công

git clone https://github.com/evanca/flutter-ai-rules.git && mkdir -p ~/.claude/skills && cp -r flutter-ai-rules/skills/bloc ~/.claude/skills/

⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.

  1. Mở terminal.
  2. Clone repo: git clone https://github.com/evanca/flutter-ai-rules.git
  3. Tạo thư mục skill: mkdir -p ~/.claude/skills
  4. Copy skill bloc: cp -r flutter-ai-rules/skills/bloc ~/.claude/skills/
  5. Kiểm tra: ls ~/.claude/skills/bloc/SKILL.md
  6. Mở lại Claude Code trong thư mục dự án Flutter của bạn.
  7. Thử yêu cầu "tạo Cubit cho tính năng này" — skill sẽ tự kích hoạt. (Dự án cần có package bloc, flutter_bloc, và bloc_test, mocktail để test.)