flutter-template-mini
                                
                                 flutter-template-mini copied to clipboard
                                
                                    flutter-template-mini copied to clipboard
                            
                            
                            
                        ❄️ A flutter template, 极简的 flutter 项目模板
简介
一个 APP 项目 mini 模板,提供 HTTP、路由、本地缓存等常用功能的封装
效果图
 

功能
- 身份认证
  - 登录
  - 登出
- HTTP
  - 基于三方库 Dio 封装
  - 响应拦截
- 路由
  - 封装 Navigator 1.0
  - 路由拦截
- 状态管理
  - 基于三方库 provider
  - 黑暗模式
- 本地缓存
  - 基于三方库 shared_preferences 的封装
- 其他
  - 项目预初始化
  - 两次返回确认
目录结构
# flutter_template_mini
├─ assets             # 静态资源
│  ├─ icons           # 字体图标
│  ├─ images          # 图片
│  ├─ jsons           # json 文件
├─ lib
│  ├─ common          # 全局公共类、方法、变量等
│  ├─ db              # 本地缓存
│  ├─ http            # http
│  │  ├─ api
│  │  └─ request
│  ├─ models          # model 层
│  ├─ navigator       # Navigator 1.0
│  ├─ pages           # 所有页面
│  ├─ provider        # 状态管理
│  ├─ utils           # 工具类
├─ └─ main.dart       # 入口
└─ pubspec.yaml       # 包管理
开发
# 安装依赖
flutter packages get 或 flutter pub get
# 分析代码
flutter analyze
# 运行项目
flutter run
# 如果遇到着色器渲染错误(Shader compilation error),可以运行 clean 后再 run
flutter clean
# 安卓真机调试
flutter devices
flutter run
# 安卓打包
flutter build apk
开发环境
- Flutter version 2.8.0
- Dart version 2.15.0
- Android SDK version 31.0.0
开发工具
- 编辑器 Visual Studio Code
- 插件 Dart
- 插件 Flutter
- 插件 Flutter Widget Snippets
Git 提交规范
- feat增加新功能
- fix修复问题/BUG
- style代码风格相关无影响运行结果的
- perf优化/性能提升
- refactor重构
- revert撤销修改
- test测试相关
- docs文档/注释
- chore依赖更新/脚手架配置修改等
- workflow工作流改进
- ci持续集成
- types类型定义文件更改
- wip开发中
- mod不确定分类的修改
❓ 关于 JSON 转 Dart Model 类
- 纯手写实体类(不推荐)
- 用网页自动生成工具: 根据 JSON 自动生成实体类,并 copy 到项目中(所有项目都通用)
- 使用插件 json_serializable(更适合大型项目)
该脚手架采用第二种方案
这里随便提供一个自动生成的网址:json_to_dart
JSON <——> Map <——> Dart Model 三者之间的转化是常用的技巧
❓ 关于路由
- 官方的 Navigator 1.0
- 官方的 Navigator 2.0 (Flutter 1.22 推出)
- 三方插件 fluro
该脚手架采用第一种方案,并对其封装
Navigator 2.0 的概念有一定的难度
❓ 关于 flutter_template_plus 和 flutter_template_mini 和 flutter-bruno-getx
- mini 版的路由采用 Navigator 1.0,逻辑简单易懂,而 plus 版则采用更加强大,但难以理解的 Navigator 2.0
- mini 版的 HTTP 层直接基于 Dio 进行封装,代码结构清晰简单,而 plus 版则书写一方库 MyNet,通过适配器集成 Dio,更加灵活、可插拔
- mini 版的 db 层直接基于 shared_preferences 进行封装,而 plus 版则基于 shared_preferences 书写一方库 MyCache
- mini 版的封装方式更贴近现代前端工程,而 plus 版则更加面向对象
- flutter-bruno-getx 则完全基于 mini 版,并采用了最新的 SDK、Bruno UI 框架、GetX 状态管理器
不同版本
📚 入门 Flutter 系列文章
📄 License
Copyright (c) 2021 UNPany