{"id":19174887,"url":"https://github.com/un-pany/flutter-template-mini","last_synced_at":"2025-06-26T20:06:18.251Z","repository":{"id":107944235,"uuid":"436815630","full_name":"un-pany/flutter-template-mini","owner":"un-pany","description":"❄️ A flutter template, 极简的 flutter 项目模板","archived":false,"fork":false,"pushed_at":"2022-05-19T07:27:22.000Z","size":1220,"stargazers_count":31,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-20T01:33:01.092Z","etag":null,"topics":["dio","flutter","flutter-app","flutter-examples","flutter-template","provider"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/un-pany.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-12-10T01:42:13.000Z","updated_at":"2025-04-19T07:18:05.000Z","dependencies_parsed_at":"2024-06-08T02:45:15.059Z","dependency_job_id":null,"html_url":"https://github.com/un-pany/flutter-template-mini","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/un-pany%2Fflutter-template-mini","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/un-pany%2Fflutter-template-mini/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/un-pany%2Fflutter-template-mini/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/un-pany%2Fflutter-template-mini/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/un-pany","download_url":"https://codeload.github.com/un-pany/flutter-template-mini/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931815,"owners_count":21827171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dio","flutter","flutter-app","flutter-examples","flutter-template","provider"],"created_at":"2024-11-09T10:19:35.491Z","updated_at":"2025-05-07T18:21:10.094Z","avatar_url":"https://github.com/un-pany.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 简介\n\n一个 APP 项目 mini 模板，提供 HTTP、路由、本地缓存等常用功能的封装\n\n## 效果图\n\n![login_light.jpg](assets/images/docs/login_light.jpg)\n![login_dark.jpg](assets/images/docs/login_dark.jpg)\n\n## 功能\n\n```text\n- 身份认证\n  - 登录\n  - 登出\n\n- HTTP\n  - 基于三方库 Dio 封装\n  - 响应拦截\n\n- 路由\n  - 封装 Navigator 1.0\n  - 路由拦截\n\n- 状态管理\n  - 基于三方库 provider\n  - 黑暗模式\n\n- 本地缓存\n  - 基于三方库 shared_preferences 的封装\n\n- 其他\n  - 项目预初始化\n  - 两次返回确认\n```\n\n## 目录结构\n\n```\n# flutter_template_mini\n├─ assets             # 静态资源\n│  ├─ icons           # 字体图标\n│  ├─ images          # 图片\n│  ├─ jsons           # json 文件\n├─ lib\n│  ├─ common          # 全局公共类、方法、变量等\n│  ├─ db              # 本地缓存\n│  ├─ http            # http\n│  │  ├─ api\n│  │  └─ request\n│  ├─ models          # model 层\n│  ├─ navigator       # Navigator 1.0\n│  ├─ pages           # 所有页面\n│  ├─ provider        # 状态管理\n│  ├─ utils           # 工具类\n├─ └─ main.dart       # 入口\n└─ pubspec.yaml       # 包管理\n```\n\n## 开发\n\n```bash\n# 安装依赖\nflutter packages get 或 flutter pub get\n\n# 分析代码\nflutter analyze\n\n# 运行项目\nflutter run\n\n# 如果遇到着色器渲染错误（Shader compilation error），可以运行 clean 后再 run\nflutter clean\n\n# 安卓真机调试\nflutter devices\nflutter run\n\n# 安卓打包\nflutter build apk\n```\n\n## 开发环境\n\n1. Flutter version 2.8.0\n2. Dart version 2.15.0\n3. Android SDK version 31.0.0\n\n## 开发工具\n\n1. 编辑器 Visual Studio Code\n2. 插件 Dart\n3. 插件 Flutter\n4. 插件 Flutter Widget Snippets\n\n## Git 提交规范\n\n- `feat` 增加新功能\n- `fix` 修复问题/BUG\n- `style` 代码风格相关无影响运行结果的\n- `perf` 优化/性能提升\n- `refactor` 重构\n- `revert` 撤销修改\n- `test` 测试相关\n- `docs` 文档/注释\n- `chore` 依赖更新/脚手架配置修改等\n- `workflow` 工作流改进\n- `ci` 持续集成\n- `types` 类型定义文件更改\n- `wip` 开发中\n- `mod` 不确定分类的修改\n\n## ❓ 关于 JSON 转 Dart Model 类\n\n1. 纯手写实体类（不推荐）\n2. **用网页自动生成工具: 根据 JSON 自动生成实体类，并 copy 到项目中（所有项目都通用）**\n3. 使用插件 json_serializable（更适合大型项目）\n\n**该脚手架采用第二种方案**\n\n这里随便提供一个自动生成的网址：[json_to_dart](https://javiercbk.github.io/json_to_dart/)\n\n*JSON \u003c——\u003e Map \u003c——\u003e Dart Model 三者之间的转化是常用的技巧*\n\n## ❓ 关于路由\n\n1. **官方的 Navigator 1.0**\n2. 官方的 Navigator 2.0 （Flutter 1.22 推出）\n3. 三方插件 fluro\n\n**该脚手架采用第一种方案，并对其封装**\n\n*Navigator 2.0 的概念有一定的难度*\n\n## ❓ 关于 flutter_template_plus 和 flutter_template_mini 和 flutter-bruno-getx\n\n1. mini 版的路由采用 Navigator 1.0，逻辑简单易懂，而 plus 版则采用更加强大，但难以理解的 Navigator 2.0\n2. mini 版的 HTTP 层直接基于 Dio 进行封装，代码结构清晰简单，而 plus 版则书写一方库 MyNet，通过适配器集成 Dio，更加灵活、可插拔\n3. mini 版的 db 层直接基于 shared_preferences 进行封装，而 plus 版则基于 shared_preferences 书写一方库 MyCache\n4. mini 版的封装方式更贴近现代**前端工程**，而 plus 版则更加**面向对象**\n5. flutter-bruno-getx 则完全基于 mini 版，并采用了最新的 SDK、Bruno UI 框架、GetX 状态管理器\n\n## 不同版本\n\n1. [flutter_template_plus](https://github.com/un-pany/flutter-template-plus)\n2. [flutter_template_mini](https://github.com/un-pany/flutter-template-mini)\n3. [flutter-bruno-getx](https://github.com/un-pany/flutter-bruno-getx)\n\n## 📚 入门 Flutter 系列文章\n\n1. [Flutter 从 0 到 1](https://juejin.cn/column/6995160230476644366)\n2. [移动端学习小记](https://juejin.cn/column/6991310785871872007)\n\n## 📄 License\n\n[MIT](https://github.com/un-pany/flutter-template-mini/blob/main/LICENSE)\n\nCopyright (c) 2021 UNPany\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fun-pany%2Fflutter-template-mini","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fun-pany%2Fflutter-template-mini","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fun-pany%2Fflutter-template-mini/lists"}