1 điểm bởi seonwookkim 2026-04-23 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Khi quy mô của một dự án Flutter tăng lên, bạn thường sẽ chọn mô-đun hóa (tách package) để cải thiện hiệu năng build và cách ly giữa các layer. Tuy nhiên, khi số lượng mô-đun tăng lên, chi phí quản lý hàng chục file pubspec.yaml cũng tăng theo, và chỉ dựa vào code review thì rất khó cưỡng chế các quy tắc kiến trúc.

Flutist là một framework được thiết kế để bạn có thể khai báo và quản lý đặc tả cũng như quy tắc của dự án bằng code trên nền pub workspaces của Dart 3.6+, lấy cảm hứng từ Tuist trên iOS.

"Vì sao là Flutist?"

  1. Cấu hình dự án theo kiểu khai báo
    Thay vì sửa trực tiếp pubspec.yaml của từng mô-đun, bạn khai báo phiên bản package trong package.dart và đồ thị phụ thuộc giữa các mô-đun trong project.dart. Chỉ với một lần định nghĩa, toàn bộ pubspec.yaml của các mô-đun sẽ được đồng bộ bằng lệnh flutist generate.

  2. Tự động cưỡng chế quy tắc kiến trúc
    Trong Clean Architecture, ngay cả khi domain tham chiếu trực tiếp đến data hoặc phát sinh phụ thuộc vòng tròn thì pub cũng không ngăn chặn. Flutist cho phép bật strictMode, và nếu vi phạm các quy tắc này thì sẽ báo lỗi khi generate. Những nguyên tắc trước đây chỉ nằm trong tài liệu/code review nay trở thành các quy tắc có thể thực thi.

  3. An toàn kiểu và năng suất
    Thay vì tham chiếu package dựa trên chuỗi, công cụ hỗ trợ IDE tự động hoàn thành và kiểm tra kiểu tại thời điểm biên dịch thông qua các accessor được sinh tự động. Ngoài ra, Flutist còn cung cấp tính năng scaffolding để tạo cấu trúc layer lặp đi lặp lại hoặc boilerplate, giúp giảm tối đa chi phí thiết lập ban đầu.

  4. Tối ưu trải nghiệm phát triển
    Không chỉ hỗ trợ chạy test song song hoặc riêng lẻ theo từng mô-đun, flutist graph còn cho phép bạn xem ngay trực quan các phụ thuộc mô-đun phức tạp trong trình duyệt.

4 loại mô-đun được hỗ trợ

  • clean — Clean Architecture 3 layer (domain / data / presentation)
  • micro — Microfeature 5 layer (interface / implementation / testing / tests / example)
  • lite — 4 layer, là bản micro đã loại bỏ example
  • simple — package đơn (dùng cho tiện ích, shared model, app shell)

Lệnh CLI

  • flutist init / create / generate / check / pub / scaffold / test / graph
  • flutist check chỉ kiểm tra kiến trúc mà không tạo file → dành cho pipeline CI
  • Dùng flutist graph --open để xem trực tiếp đồ thị phụ thuộc mermaid trong trình duyệt

Liên kết

Nếu bạn đang cân nhắc về kiến trúc multi-module cho Flutter, tôi khuyến nghị thử áp dụng Flutist. Nếu bạn gửi phản hồi, tôi sẽ tích cực tiếp thu và phản ánh vào dự án! Xin cảm ơn🙏

Chưa có bình luận nào.

Chưa có bình luận nào.