git地址
github.com/jonataslaw/…
安装步骤
第一步 安装
#执行完成后会提示配置环境变量的路径
flutter pub global activate get_cli
FengzwdeMacBook-Pro:~ fengzw$ flutter pub global activate get_cli
Running "flutter pub get" in flutter_tools... 9.8s
Resolving dependencies...
+ _fe_analyzer_shared 33.0.0
...
...
Downloading win32 2.3.3...
Building package executables...
Built get_cli:get.
Installed executables get and getx.
Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path.
You can fix that by adding this to your shells config file (.bashrc, .bash_profile, etc.):
'export PATH="$PATH":"$HOME/.pub-cache/bin"'
Activated get_cli 1.7.1.
第二步 配置环境变量
1.根目录找到 .bash_profile 文件 (command + shift + . 可以快捷切换显示隐藏文件)
2.编辑 bash_profile 添加 export PATH="$PATH":"$HOME/.pub-cache/bin"
3.执行 source /Users/fengzw/.bash_profile 使变量生效
4.get --version 测试是否安装成功
使用步骤
功能 | 命令 | 备注 |
---|---|---|
新建项目 | get create project | 新建一个项目,执行期间会选择几个属性,一路下去就行了 |
初始化 | get init | 新建项目里也会执行这步,清空lib文件夹内容,填充为初始的目录结构 |
创建页面 | get create page:页面名字 | 会创建view, controller ,binding 和 routes |
创建控制器 | get create controller:test on folder | 指定文件夹不用写完整路径末级名字就行 |
创建控制器 | get create controller:auth with xx.dart / 'url' on folder | 用模版或者url创建控制器 |
创建view | get create view:name on folder | 创建view |
国际化 | get generate locales assets/locales | 需要在指定目录创建对应json文件 |
创建实体类 | get generate model on home with assets/models/user.json | 需要在指定目录创建对应json文件 |
新建项目
#cd到目标目录执行
get create project
模版创建控制器
#模版文件创建
get create controller:auth with examples/authcontroller.dart on your_folder
#url创建
get create controller:auth with 'https://raw.githubusercontent.com/jonataslaw/get_cli/master/samples_file/controller.dart.example' on your_folder
输入:模版文件
@import
class @controller extends GetxController {
final email = ''.obs;
final password = ''.obs;
void login() {
}
}
输出:生成文件
import 'package:get/get.dart';
class AuthController extends GetxController {
final email = ''.obs;
final password = ''.obs;
void login() {}
}
国际化
#在 assets/locales 目录创建 json 格式的语言文件
get generate locales assets/locales
//生成后,需要在GetMaterialApp中配置
GetMaterialApp(
...
translationsKeys: AppTranslation.translations,
...
)
zh_CN.json
{
"buttons": {
"login": "登录",
"sign_in": "注册",
"logout": "注销",
"sign_in_fb": "用 Facebook 登录",
"sign_in_google": "用 Google 登录",
"sign_in_apple": "用 Apple 登录"
}
}
en_US.json
{
"buttons": {
"login": "Login",
"sign_in": "Sign-in",
"logout": "Logout",
"sign_in_fb": "Sign-in with Facebook",
"sign_in_google": "Sign-in with Google",
"sign_in_apple": "Sign-in with Apple"
}
}
生成类
abstract class AppTranslation {
static Map<String, Map<String, String>> translations = {
'en_US' : Locales.en_US,
'zh_CN' : Locales.zh_CN,
};
}
abstract class LocaleKeys {
static const buttons_login = 'buttons_login';
static const buttons_sign_in = 'buttons_sign_in';
static const buttons_logout = 'buttons_logout';
static const buttons_sign_in_fb = 'buttons_sign_in_fb';
static const buttons_sign_in_google = 'buttons_sign_in_google';
static const buttons_sign_in_apple = 'buttons_sign_in_apple';
}
abstract class Locales {
static const en_US = {
'buttons_login': 'Login',
'buttons_sign_in': 'Sign-in',
'buttons_logout': 'Logout',
'buttons_sign_in_fb': 'Sign-in with Facebook',
'buttons_sign_in_google': 'Sign-in with Google',
'buttons_sign_in_apple': 'Sign-in with Apple',
};
static const zh_CN = {
'buttons_login': 'Entrar',
'buttons_sign_in': 'Cadastrar-se',
'buttons_logout': 'Sair',
'buttons_sign_in_fb': '用 Facebook 登录',
'buttons_sign_in_google': '用 Google 登录',
'buttons_sign_in_apple': '用 Apple 登录',
};
}
生成model实体类
#创建json model 文件assets/models/user.json
get generate model on home with assets/models/user.json
创建json文件
{
"name": "",
"age": 0,
"friends": ["", ""]
}
生成类
class User {
String name;
int age;
List<String> friends;
User({this.name, this.age, this.friends});
User.fromJson(Map<String, dynamic> json) {
name = json['name'];
age = json['age'];
friends = json['friends'].cast<String>();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['age'] = this.age;
data['friends'] = this.friends;
return data;
}
}