我的 Flutter 專案目錄結構


#Flutter#Directory Structure
├── assets                                # 檔案
│   ├── fonts                             #
│   ├── images                            #
│   └── svg                               #
├── core                                  # 
│   ├── bloc                              # BLoC
│   │   ├── global_bloc.dart              # 正式/測試、深色模式切換
│   │   ├── global_event.dart             # 
│   │   └── global_state.dart             # 
│   ├── helper                            #
│   │   ├── api.dart                      # Dio 設定 
│   │   ├── app_color.dart                # 常用色彩
│   │   ├── app_const.dart                # 一些常數
│   │   ├── app_icons.dart                # Icons
│   │   ├── app_images.dart               # Images
│   │   ├── app_key.dart                  # Storage Key
│   │   ├── app_text_size.dart            # 常用文字大小
│   │   ├── app_text_style.dart           # 常用文字 Style
│   │   ├── enum.dart                     # enum
│   │   ├── loading.dart                  # Loading 視窗
│   │   ├── toast.dart                    # 提示彈窗
│   │   └── vibrate.dart                  # 震動
│   ├── models                            #
│   │   ├── pagination_model.dart         # 處理 API 分頁固定的格式
│   │   ├── pagination_model.dart         # 
│   │   ├── response_model.dart           # 處理 API response 固定的格式
│   │   └── response_model.g.dart         #  
│   ├── repositories                      #
│   │   └── repository.dart               # Call API 的共用處理,Server Error、Timeout、Refresh Token...
│   ├── services                          # 
│   │   ├── shared                        # 
│   │   │   ├── info_service.dart         # 取得裝置資訊的 Class
│   │   │   └── permission_service.dart   # 處理獲取權限的 Class
│   │   └── global_service.dart           # 共用資料的 Singleton Class
│   └── validator                         # 驗證
│       ├── manager                       # 整合驗證
│       ├── single                        # 單個驗證
│       ├── manager_interfaces.dart       # 整合驗證 interfaces
│       └── single_interfaces.dart        # 單個驗證 interfaces
├── l10n                                  # 多國語系 arb 檔案
│   └── app_zh.arb                        # zh-tw
├── ui                                    # ui 都放在這裡面
│   ├── modal_pages                       # showModalBottomSheet 用的頁面,再利用各個單元分資料夾
│   │   └── dialog                        # showDialog 用的頁面,再利用各個單元分資料夾
│   ├── pages                             # 有 Scaffold,再利用各個單元分資料夾
│   └── widgets                           # 單純 Widget,再利用各個單元分資料夾
│       └── shared                        # 共用 Widget
│           └── fields                    # 客制的 Input、Button、Checkbox、Tag.....
├── app_link.dart                         # App Link/Universal Links
├── firebase.dart                         # Firebase 的東西
├── main.dart                             # 程式進入點
└── routes.dart                           # 路由