Home Flutter project style guide
Post
Cancel

Flutter project style guide

在追求持续迭代的过程中,延长交付周期的因素有很多。代码质量和基础设施上的投资往往稀缺而昂贵。

两者比较之下,显然作为业务开发人员,我们在紧张的业务迭代中,应该可以做一点点微小的努力来提升代码质量。


目录结构

这里处理的对象是工程的代码和资源文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.
├── events              // 事件
├── models              // 模型
├── navigators          // 导航
├── networking          // 网络(含 http、socket 等)
├── pages               // 页面
├── redux               // 全局状态管理
├── themes              // 主题
├── utilities           // 工具
├── views               // 业务小部件
├── widgets             // 公共小部件
├── includes.dart       //
├── main.dart           // 入口文件
├── main_beta.dart      // 入口文件(beta 环境)
├── main_dev.dart       // 入口文件(dev 环境)
└── main_stable.dart    // 入口文件(stable 环境)

命名规范

文件

请严格按照以下的命名规范来对文件进行命名。

  • 目录名使用下划线命名法 示例:loginlist_item
  • 文件名使用下划线命名法 示例:loginlist_item
  • 类名驼峰命名法(首字母大写) 示例:LoginPageListItem
  • 匿名类名驼峰命名法(以 _ 开头) 示例:_Login_ListItem
  • 匿名方法名驼峰命名法(以 _ 开头) 示例:_handleClickSubmit_buildBody

图片资源

  • 全部小写字母
  • 单词之间使用下划线(_)连接
  • 尽量不使用缩写作为名称
前缀
名称前缀描述
Iconic_-
Menu Iconic_menu_AppBar 的图标
TabBar Iconic_tab_TabBar 的图标
Buttonbtn_-
RadioButtonbtn_radio_-
CheckBoxbtn_check_-
Switchbtn_switch_-
Togglebtn_toggle_-
RatingBarbtn_rating_star_-

e.g.

1
2
3
4
5
6
ic_launcher.png
ic_menu_share.png
ic_menu_back.png
ic_menu_settings.png
ic_tab_home.png
ic_tab_mine.png
尺寸
名称后缀描述
Mini_mini-
Small_small-
Medium_medium-
Large_large-
Big_big-
开关
名称后缀描述
On_on-
Off_off-
状态
名称后缀描述
Normal_normal-
Pressed_pressed-
Selected_selected-
Checked_checked常用于表单类的控件如 CheckBoxSwitchToggle
Disabled_disabled-
对齐
名称后缀描述
Top_top-
Right_right-
Bottom_bottom-
Left_left-
颜色
名称后缀描述
White_white-
Black_black-
Red_red-
Green_green-
Blue_blue-

页面

项目所有页面均需要添加到 lib/pages/ 目录下,并遵循以下规范:

  • 所有新增页面都需添加到 pages 目录下并包裹在一个同名的文件夹下 例如:pages/login/login.dart,创建一个登录页面
  • 页面的类名均与 Page 结尾 例如:LoginPage

自定义小部件

为了统一风格等需求,项目中对一些常用的小部件进行了自定义,除非特殊情况,均应优先使用这些自定义小部件。

其他

  • 避免引入非本项目一些链接及提交临时代码。

相关链接

This post is licensed under CC BY 4.0 by the author.

最优解是奋斗逼

IoC and DI