Flutter 项目基本结构

基于模块化和代码可维护性,以下是一个推荐的项目结构,以及处理图片资源的建议。

项目结构建议

lib/
├── common/                    # 公共部分
│   └── manager/               # 公共管理类,如状态管理、网络请求等
├── modules/                   # 各个功能模块
│   ├── login/                 # 登录模块
│   │   ├── login_screen.dart
│   ├── circle/                # 圈子模块
│   │   ├── moments_screen.dart
│   │   └── moments_logic.dart
│   ├── device/                # 设备模块
│   ├── service/               # 服务模块
│   └── me/                      # 我的(个人中心)模块
├── utils/                     # 工具类,如格式化、验证等工具方法
├── widgets/                   # 通用的、可复用的小组件
├── main.dart                  # 项目入口
└── routes.dart                # 路由管理

详细说明

  1. lib/common/: 公共部分,包括公共的逻辑代码、管理类等。这里的内容可以在多个模块中复用。

    • logic/: 公共的逻辑部分,例如表单验证、数据处理等。
    • manager/: 包含管理类,如网络请求、全局状态管理等。
  2. lib/modules/: 功能模块,每个功能模块都有独立的文件夹,包含对应的页面、逻辑处理等。

    • 例如,登录模块下可以包含 login_screen.dartlogin_logic.dart,分别处理 UI 和逻辑。
  3. lib/utils/: 工具类,存放项目中常用的工具方法,如日期格式化、字符串处理等。

  4. lib/widgets/: 通用的、可复用的小组件,如自定义的按钮、输入框等。

  5. lib/routes.dart: 路由管理,将所有页面的路由统一管理,方便后期维护和修改。

图片和语言包资源存放建议

在 Flutter 项目中,通常将资源放在 assets 文件夹中,可以在项目根目录下创建该文件夹。

assets/
└── lang_file/             # 项目中的语言包资源
└── images/                # 项目中的图片资源
    ├── login/
    ├── circle/
    ├── device/
    ├── service/
    └── me/

将图片按照模块划分到对应的文件夹中,方便管理和查找。

pubspec.yaml 中声明资源

pubspec.yaml 文件中,声明你的资源路径:

flutter:
  assets:
    - assets/lang_file/
    - assets/images/login/
    - assets/images/moments/
    - assets/images/device/
    - assets/images/service/
    - assets/images/profile/

这样你可以通过路径访问对应的图片,如:

Image.asset('assets/images/login/login_bg.png');

总结

  • 模块化的项目结构将各功能模块、公共部分区分开,便于代码复用和维护。
  • 图片资源可以按照功能模块分类放置在 assets/images/ 文件夹中,并在 pubspec.yaml 中统一声明。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容