Flutter Template
Flutter Template 是一个高质量
、易于使用的 Flutter 项目模板
,旨在帮助开发者快速构建
出色的跨平台应用程序。该模板采用了 Get 框架
、优秀的设计模式
和合理的文件结构
,以确保开发者能够编写出易于维护的代码
。此外,该模板还使用了 Isar 数据库
,以提供卓越的性能
和全平台支持
。
清晰架构实现的 TODO LIST 效果
不要怕,非常简单,但是应有尽有,数据库持久化,全局状态管理,因为优秀的代码组织结构,促成了非常简洁的代码就实现了一个 todo-list
特点
- 使用 Get 框架进行状态管理、依赖注入和路由管理,简化了应用程序的开发和维护。
- 采用模块化的设计模式,使代码结构清晰、组织良好,便于扩展和维护。
- 使用 Isar 数据库,提供高性能、跨平台的数据存储和查询功能。
- 优化的文件结构,使开发者能够轻松找到和管理项目中的各个部分。
dio
网络请求框架,轻松处理网络请求,支持拦截器,支持便捷的错误处理,请求重试,请求缓存等功能。- oauth2
flutter_web_auth_2
登录框架,轻松实现 github 登录,支持多平台。 - 图片加载框架
extended_image
,支持加载网络图片,支持缓存图片,支持图片加载进度条,支持图片加载失败的占位图。 - 轻松替换 app 的 icon。
- 包含一些预构建的组件和页面,以帮助开发者快速开始构建应用程序。
- 开箱即用,开发者只需要关注业务即可。
- 多语言的支持。
- 主题设置的支持。
- 灵活扩展的设置页
项目结构
项目中,TodoList 应用程序的结构如下所示:
➜ lib git:(main) ✗ tree -L 2
.
├── components
│ ├── add_todo_dialog.dart
│ ├── code_wrapper.dart
│ ├── latex.dart
│ ├── markdown.dart
│ ├── todo_item.dart
│ └── user
├── controller
│ ├── settings.dart
│ ├── todo.dart
│ └── user.dart
├── i18n
│ └── translations.dart
├── main.dart
├── models
│ ├── github_user.dart
│ ├── todo.dart
│ └── todo.g.dart
├── pages
│ ├── home.dart
│ ├── settings.dart
│ ├── todo_list.dart
│ └── unknown.dart
├── repository
│ ├── todo_repository.dart
│ └── user_repository.dart
├── routes.dart
└── service
└── http_service.dart
components\
放置了一些预构建的组件,以帮助开发者快速开始构建应用程序。service\
放置应用程序的服务,如网络请求服务等等。controller\
放置了一些控制器,可以参考 Get。 如何写 controller,来实现全局数据管理repository\
放置了一些数据仓库,如数据库存操作,网络操作等等,主要是处理数据的逻辑。pages\
放置了一些页面,如首页、设置页面等,其他页面放置在此。i18n
放置了一些国际化资源,以帮助开发者快速构建支持国际化的语言包。models\
放置了一些数据模型,如 Todo 模型等。routes.dart
定义了应用程序的路由。main.dart
是应用程序的入口文件,包括主题配置,多语言配置,基本不需要修改这里。
快速开始
要开始使用 Flutter Template,请按照以下步骤操作:
- 克隆此仓库:
git clone https://github.com/bravekingzhang/flutter_template.git
or 直接点我的项目的 Use this template
button,直接通过这个模板创建一个自己的项目。
- 进入项目目录:
cd flutter_template
- 获取依赖项:
flutter pub get
- 运行项目:
flutter run
现在,你已经成功运行了 Flutter Template,并可以开始构建你的应用程序。
项目配置
修改项目名字,请到项目的根目录下执行,请注意 flutter 项目命名规范,因为会体现在包名中,所以尽量取类似这样的名字 flutter_app
,todo_list
,leetcode
./rename_project.sh your_project_name
贡献
我们欢迎任何形式的贡献!如果你有任何建议、问题或需求,请随时提交 Issue 或 Pull Request。
许可证
本项目采用 MIT 许可证。