一个以 get
为基础的 flutter 脚手架。
# 本机运行
flutter run
# 打包APP
flutter build apk --no-tree-shake-icons
flutter build ios --no-tree-shake-icons
# 检查本机flutter状态
flutter doctor
# 获取所有真机设备包括Ios模拟器
flutter devices
# 将工具链上的库提升到最新版本
flutter upgrade
# 下载第三方库依赖
flutter packages get
# 生成类(生成g.dart文件)
flutter packages pub run build_runner build
# 升级本地Flutter版本
flutter upgrade --force
// 创建GetX作用域
Obx(() => Widget widget);
// 页面跳转并在返回时接收返回值
Get.toNamed(Routes route).then((value) {});
// 页面跳转(如果需要同时显示底部栏,须传入当前底部栏id)
Get.toNamed(Routes route, id: int id);
// 返回主页面(Tab Bar)
Get.offAllNamed(Routes.base);
// 弹出框
Get.dialog(Widget widget);
// 底部弹出框
Get.bottomSheet(Widget widget);
// 关闭弹出框/返回前一页面
Get.back();
// 返回前一页面并发送数据
Get.back(result: data);
// 切换语言
var locale = Locale('en', 'US');
Get.updateLocale(locale);
// 切换主题
Get.changeTheme(ThemeData.light());
// [第三方]日期格式化
DateUtil.formatDate(date, format: 'yyyy-MM-dd HH:mm')
// [第三方]日期格式化,例如:'三天前'
TimelineUtil.formatByDateTime(controller.model.value.endTime, locale: 'zh')
https://github.com/jonataslaw/getx/blob/master/README.zh-cn.md
https://github.com/AlexV525/effective_flutter/blob/master/rules.md
Android权限列表 https://www.cnblogs.com/diyishijian/p/5629545.html
Ios权限列表 https://pub.flutter-io.cn/packages/permission_handler
- 不可开启自动换行,保证所有格式化都手动完成。
- 不可在项目中自定义颜色,必须使用主题已定义颜色。
- 所有在
pubspec.yaml
中引入的第三方库都应该有其基本说明。 - 尽量避免在页面中定义局部变量,使用
fish_redux
完成。 - 不要写
new
关键字。 - 尽量避免在page层出现任何业务逻辑。
- 尽量避免在controller层出现通过字符串url的接口调用。
文件夹名 | 功能 | 备注 |
---|---|---|
assets | 静态资源 | 所有静态资源的文件夹(例如图片/字体等) |
lib/api | 接口封装库 | 用于轻度封装接口调用 |
lib/component | 组件库 | 放置例如下拉框、搜索框等等独立组件 |
lib/config | 主要配置 | 包含路由等配置项。 |
lib/config/app_config | App配置 | App相关所有基础配置项。 |
lib/locales | 多语言 | 用于放置多语言文件 |
lib/model | 实体类 | 用于放置项目所需的dto实体类 |
lib/packages | 功能库 | 用于放置封装的一些功能库,例如网络状态、日志打印等等 |
lib/packages/log | 日志库 | 用于打印日志 |
lib/packages/app_lifecycle | App声明周期库 | |
lib/packages/app_router | 路由库 | 用于路由的统一管理 |
lib/packages/barcode_scan | 条形码扫描 | |
lib/packages/icons | 字体图标相关库 | |
lib/packages/log | 日志打印库 | |
lib/packages/log | 网络状态监控库 | |
lib/page | 页面 | 用于放置项目所需页面/控制器/绑定 |
lib/theme | 主题 | 用于定制系统的各个不同主题 |
lib/utils | 工具库 | 例如网络请求或其他各类工具函数等 |
lib/utils/controller | 基础页面控制器 | 例如网络请求或其他各类工具函数等 |
lib/utils/cache.dart | 本地缓存库 | |
lib/utils/feature-permission.dart | 功能权限库 | |
lib/utils/global.dart | 公共库 | 用于存放全局公共变量及部分配置 |
lib/utils/http-util.dart | HTTP请求库 | 用于调用HTTP请求用 |
lib/utils/sys-permission.dart | 系统权限库 | 用于获取或查看系统权限(例如相机/照片等) |
lib/utils/tool.dart | 公共函数库 | 用于存放部分常用公共函数 |