HomeOur Team
Bóc tách cấu trúc tệp/thư mục của một dự án Flutter

Bóc tách cấu trúc tệp/thư mục của một dự án Flutter

By hai.nguyen1
Published in Others
November 05, 2022
3 min read

Giới thiệu

Khi bạn khởi tạo một ứng dụng Flutter sử dụng câu lệnh flutter create app_name, bạn sẽ thấy có rất nhiều tệp và thư mục được sinh ra. Điều này thực sự rất bình thường đối với những người đã có kinh nghiệm làm việc với Flutter. Tuy nhiên, đối với các bạn mới học hay tiếp cận, nó có thể gây ra một chút mơ hồ nhất định vì số lượng tệp và thư mục được sinh ra là khá nhiều. Vậy nên bài viết này sẽ giúp bạn có được một cái nhìn tổng quan nhất về cấu trúc tệp/thư mục của một project Flutter.

Cấu trúc tệp/thư mục của một project Flutter cơ bản

Screen Shot 2022-11-05 at 14.53.14.png

Thư mục .dart_tool

dart_tool_folder.png

  • Thư mục .dart_tool bắt đầu được đưa vào từ Dart 2, được sử dụng bởi pub và các công cụ khác. Nó thay thế thư mục .pub kể từ bản phát hành SDK 2.0.0-dev.32.0.
  • Bên trong bao gồm 2 thành phần chính mà ta cần quan tâm:
    • Thư mục flutter_build: Lưu trữ các bộ nhớ đệm về bản build của Flutter.
    • package_config.json: Nơi chỉ định cụ thể vị trí và phiên bản (version) của những package, dependency hay thư viện mà project đang sử dụng.

Thư mục android

android_folder.png

  • Là nơi chứa các cài đặt, tài nguyên cần thiết để chạy ứng dụng Flutter trên hệ điều hành Android. Các tệp/thư mục này tự động khởi tạo trong quá trình bạn tạo project.
  • Các thành phần chính:
    • AndroidManifest.xml: Chứa các thông tin cần thiết của ứng dụng như tên, quyền truy cập,…
    • Thư mục res: Chứa các tài nguyên không thể lập trình được (non-programmable) nhưng cần thiết cho ứng dụng như là ảnh, biểu tượng và phông chữ.

Thư mục assets

assets_folder.png

  • Lưu trữ các hình ảnh, phông chữ,… được sử dụng trong toàn bộ project.

Thư mục ios

ios_folder.png

  • Giống như thư mục android, đây là nơi chứa các cài đặt, tài nguyên cần thiết để chạy ứng dụng Flutter trên hệ điều hành IOS.
  • Các thành phần chính:
    • Thư mục Assets.xcassets: Giống như thư mục res của Android. Chứa các tài nguyên không thể lập trình được (non-programmable) nhưng cần thiết cho ứng dụng.
    • Info.plist: Giống như AndroidManifest.xml. Chứa các thông tin cần thiết của ứng dụng như tên, quyền truy cập,…

Thư mục lib

  • Do mỗi thư mục lib có cấu trúc khác nhau phụ thuộc vào từng dự án nên ở đây mình không đưa ra một cấu trúc cụ thể nào.
  • Tổng quan thì đây là thư mục quan trọng nhất của project, nơi mà chúng ta thực hiện xây dựng project.
  • Mặc định thư mục lib sẽ chứa tệp main.dart. Đây là đầu vào của ứng dụng nhưng cài đặt này ta có thể thay đổi được.

Thư mục test

  • Chứa các đoạn code kiểm thử phần mềm mà bạn định nghĩa.

Tệp .flutter-plugins và tệp .flutter-plugins-dependencies.

  • Được sinh ra ghi chạy câu lệnh flutter pub get.
  • Là nơi lưu trữ vị trí và phiên bản (version) của những package, dependency hay thư viện mà project đang sử dụng.

Tệp .gitignore

  • Là một tệp văn bản thuần túy, trong đó mỗi dòng chứa mẫu hay định dạng của một tệp/thư mục bất kỳ nhằm bỏ qua chúng khi project được tải lên các nền tảng như Github, Gitlab.

Tệp .metadata

  • Chứa những dữ liệu liên quan đến project đang được sử dụng.
  • Tệp này phải được kiểm soát phiên bản (version) và không được chỉnh sửa một cách thủ công.

Tệp analysis_options.yaml

  • Cấu hình trình phân tích, sử dụng cho việc phân tích code Dart để kiểm tra và cảnh báo lỗi trong dự án.

Tệp pubspec.lock

  • Liệt kê các phiên bản (version) cụ thể của những package, dependency hay thư viện đang được sử dụng trong ứng dụng Flutter của bạn; và đảm bảo các phiên bản đó luôn nhất quán trên thiết bị của các developer khác nhau.
  • Không nên có bất cứ một thay đổi nào ở tệp này bởi nó có thể gây ảnh hưởng đến các phiên bản (version) đang sử dụng .

Tệp pubspec.yaml

  • Là nơi chứa cấu hình cụ thể cho ứng dụng như là tên, phiên bản (version), môi trường,… Bạn có thể tinh chỉnh tùy ý sao cho phù hợp với mong muốn của bản thân cũng như cho ứng dụng chạy tốt nhất có thể.
  • Bạn sẽ thường tạo ra thay đổi ở đây khi muốn thêm các thư viện bên ngoài vào project.

Tệp README.md

  • Tệp README.md là một tệp định dạng đánh dấu (markdown), chủ yếu được sử dụng để mô tả dự án của bạn trong git repo.
  • Bạn có thể viết những thứ cụ thể của dự án như những thứ cần chuẩn bị để khởi chạy project một cách tốt nhất, những gì dự án của bạn làm hoặc cách sử dụng một số thư viện nhất định trong tệp,…

Hy vọng những phần mình đã tổng hợp ở trên có thể giúp ích được cho bạn trong quá trình học tập và làm quen với Flutter. Cảm ơn bạn đã dành thời gian đọc hết bài viết của mình.
(上記でまとめた部分が、Flutter の学習と理解のプロセスに役立つことを願っています。 私の投稿全体を読んでいただきありがとうございます。)

Tags

FlutterProjectStructure

Share

hai.nguyen1

hai.nguyen1

Developer

Expertise

Related Posts

Fullstack - Chuyện trò linh tinh
Others
Fullstack - Chuyện trò linh tinh
December 11, 2022
7 min
© 2023, All Rights Reserved.
Powered By

Quick Links

HomeOur Team

Social Media