my_package
A new Flutter project.
1. Cấu trúc source code
lib/ ├── src/ │ ├── core/ │ │ ├── utils/ # Utilities chung cho app │ │ │ ├── app_log.dart # Log app │ │ │ ├── app_settings.dart # Cấu hình app │ │ │ ├── app_storages.dart # Quản lý lưu trữ (SharedPreferences/LocalStorage) │ │ │ ├── app_utils.dart # Các function tiện ích chung │ │ │ ├── observable_utils.dart # Các tiện ích cho Observable │ │ ├── models/ # Các mô hình dữ liệu chung (BaseResponseModel, Failure, PaginationModel...) │ │ │ ├── base_response_model.dart │ │ │ ├── failure.dart │ │ │ ├── pagination_model.dart │ ├── views_new/ # Các màn hình mới của ứng dụng │ │ ├── example/ # Ví dụ cụ thể về các màn hình, feature │ │ │ ├── utils/ # Các utility cụ thể cho màn hình đó (ví dụ template_utils.dart) │ │ │ ├── view_model/ # ViewModels, controllers cho màn hình │ ├── repositories/ # Các Repository quản lý data, API calls │ │ ├── base_repository_new.dart # Repository cơ bản bạn cung cấp ở trên │ ├── services/ # Các dịch vụ API, HTTP Client (Dio, HTTP request) │ │ ├── api_service.dart # Các lớp giúp bạn xử lý API request chung cho app │ ├── enums/ # Các enum sử dụng trong app │ │ ├── http_method_enum.dart # Enum cho các HTTP method (GET, POST, PUT, DELETE) │ ├── shared_template/ # Các thư viện tái sử dụng chung │ │ ├── models/ # Các model dùng chung │ │ │ ├── request_upload_file_model.dart │ │ ├── utils/ # Các utilities dùng chung cho nhiều phần của app │ │ ├── enums/ # Các enum dùng chung │ ├── main.dart # Entry point của ứng dụng Flutter └── pubspec.yaml # Cấu hình dependencies của Flutter
2. Mô tả các thư mục chính:
-
core/: Chứa các tiện ích (utilities) và cấu hình toàn cục cho ứng dụng như log, settings, lưu trữ dữ liệu (SharedPreferences, Hive), các công cụ tiện ích như observable_utils.dart, app_utils.dart.
-
models/: Chứa các mô hình dữ liệu (data models) như BaseResponseModel, Failure, PaginationModel, và các mô hình khác dùng chung trong toàn bộ ứng dụng.
-
views_new/: Thư mục này chứa các màn hình (screens) và các phần liên quan đến giao diện người dùng. Các view_model cho từng màn hình sẽ ở trong đây.
-
repositories/: Chứa các repository như BaseRepositoryNew, nơi bạn xử lý các yêu cầu API, logic nghiệp vụ, và giao tiếp với data layer. Mỗi repository nên là một lớp riêng biệt.
-
services/: Chứa các dịch vụ xử lý các kết nối API, các service liên quan đến HTTP Client. Ví dụ, bạn có thể tạo một lớp ApiService để gọi API.
-
shared_template/: Đây là nơi bạn đặt các thư viện và phần dùng chung cho nhiều project khác nhau, như các mô hình request_upload_file_model.dart và http_method_enum.dart.
-
enums/: Dành cho các Enum sử dụng toàn bộ dự án như HttpMethodEnum.