1654000680
Documentation languages
Official CLI for the GetX™ framework.
// To install:
pub global activate get_cli
// (to use this add the following to system PATH: [FlutterSDKInstallDir]\bin\cache\dart-sdk\bin
flutter pub global activate get_cli
// To create a flutter project in the current directory:
// Note: By default it will take the folder's name as project name
// You can name the project with `get create project:my_project`
// If the name has spaces use `get create project:"my cool project"`
get create project
// To generate the chosen structure on an existing project:
get init
// To create a page:
// (Pages have controller, view, and binding)
// Note: you can use any name, ex: `get create page:login`
// Nota: use this option if the chosen structure was Getx_pattern
get create page:home
// To create a screen
// (Screens have controller, view, and binding)
// Note: you can use any name, ex: `get screen page:login`
// Nota: use this option if the chosen structure was CLEAN (by Arktekko)
get create screen:home
// To create a new controller in a specific folder:
// Note: you don't need to reference the folder,
// Getx will search automatically for the home folder
// and add your controller there.
get create controller:dialogcontroller on home
// To create a new view in a specific folder:
// Note: you don't need to reference the folder,
// Getx will automatically search for the home folder
// and insert your view there.
get create view:dialogview on home
// To create a new provider in a specific folder:
get create provider:user on home
// To generate a localization file:
// Note: 'assets/locales' directory with your translation files in json format
get generate locales assets/locales
// To generate a class model:
// Note: 'assets/models/user.json' path of your template file in json format
// Note: on == folder output file
// Getx will automatically search for the home folder
// and insert your class model there.
get generate model on home with assets/models/user.json
//to generate the model without the provider
get generate model on home with assets/models/user.json --skipProvider
//Note: the URL must return a json format
get generate model on home from "https://api.github.com/users/CpdnCristiano"
// To install a package in your project (dependencies):
get install camera
// To install several packages from your project:
get install http path camera
// To install a package with specific version:
get install path:1.6.4
// You can also specify several packages with version numbers
// To install a dev package in your project (dependencies_dev):
get install flutter_launcher_icons --dev
// To remove a package from your project:
get remove http
// To remove several packages from your project:
get remove http path
// To update CLI:
get update
// or `get upgrade`
// Shows the current CLI version:
get -v
// or `get -version`
// For help
get help
Exploring the CLI
let's explore the existing commands in the cli
get create project
Using to generate a new project, you can choose between Flutter and get_server, after creating the default directory, it will run a get init
next command
get init
Use this command with care it will overwrite all files in the lib folder. It allows you to choose between two structures, getx_pattern and clean.
get create page:name
this command allows you to create modules, it is recommended for users who chose to use getx_pattern.
creates the view, controller and binding files, in addition to automatically adding the route.
You can create a module within another module.
get create page:name on other_module
When creating a new project now and use on
to create a page the CLI will use children pages.
get create screen:name
similar to the create page
, but suitable for those who use Clean
get create controller:dialog on your_folder
create a controller in a specific folder.
Using with option You can now create a template file, the way you prefer.
run
get create controller:auth with examples/authcontroller.dart on your_folder
or with url run
get create controller:auth with 'https://raw.githubusercontent.com/jonataslaw/get_cli/master/samples_file/controller.dart.example' on your_folder
input:
@import
class @controller extends GetxController {
final email = ''.obs;
final password = ''.obs;
void login() {
}
}
output:
import 'package:get/get.dart';
class AuthController extends GetxController {
final email = ''.obs;
final password = ''.obs;
void login() {}
}
get create view:dialog on your_folder
create a view in a specific folder
create the json language files in the assets/locales folder.
input:
pt_BR.json
{
"buttons": {
"login": "Entrar",
"sign_in": "Cadastrar-se",
"logout": "Sair",
"sign_in_fb": "Entrar com o Facebook",
"sign_in_google": "Entrar com o Google",
"sign_in_apple": "Entrar com a 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"
}
}
Run :
get generate locales assets/locales
output:
abstract class AppTranslation {
static Map<String, Map<String, String>> translations = {
'en_US' : Locales.en_US,
'pt_BR' : Locales.pt_BR,
};
}
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 pt_BR = {
'buttons_login': 'Entrar',
'buttons_sign_in': 'Cadastrar-se',
'buttons_logout': 'Sair',
'buttons_sign_in_fb': 'Entrar com o Facebook',
'buttons_sign_in_google': 'Entrar com o Google',
'buttons_sign_in_apple': 'Entrar com a Apple',
};
}
now just add the line in GetMaterialApp
GetMaterialApp(
...
translationsKeys: AppTranslation.translations,
...
)
Create the json model file in the assets/models/user.json
input:
{
"name": "",
"age": 0,
"friends": ["", ""]
}
Run :
get generate model on home with assets/models/user.json
output:
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;
}
}
One day a user asked me, if it was possible to change what the final name of the file was, he found it more readable to use: my_controller_name.controller.dart
, instead of the default generated by the cli: my_controller_name_controller. dart
thinking about users like him we added the option for you to choose your own separator, just add this information in your pubsepc.yaml
Example:
get_cli:
separator: "."
To help you organize your imports a new command was created: get sort
, in addition to organizing your imports the command will also format your dart file. thanks to dart_style. When using get sort all files are renamed, with the separator. To not rename use the --skipRename
flag.
You are one of those who prefer to use relative imports instead of project imports, use the --relative
option. get_cli will convert.
CLI now has an internationalization system.
to translate the cli into your language:
TODO:
You can install the package from the command line:
dart pub global activate get_cli
The package has the following executables:
$ get
$ getx
Run this command:
With Dart:
$ dart pub add get_cli
With Flutter:
$ flutter pub add get_cli
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
get_cli: ^1.7.1
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:get_cli/get_cli.dart';
Author: jonataslaw
Source Code: https://github.com/jonataslaw/get_cli
License: Apache-2.0 license
1626850980
If we have a view/screen and it is dependent only on one controller then instead of extending StatelessWidget , we can extend GetView and automatically we will have the instance of that controller on which view is dependent without using Get.find.
It is similar to GetView with one small difference, it gives the same instance of the controller every time and hence is very useful when used in combination with Get.create.
#getx #ripplescode #fluttergetx #flutter #getx #flutter getx tutorial
1626854640
In this video I have discussed Get CLI tool and the different commands associated with it.
#flutter getx #flutter #getx #flutter getx tutorial
1654000680
Documentation languages
Official CLI for the GetX™ framework.
// To install:
pub global activate get_cli
// (to use this add the following to system PATH: [FlutterSDKInstallDir]\bin\cache\dart-sdk\bin
flutter pub global activate get_cli
// To create a flutter project in the current directory:
// Note: By default it will take the folder's name as project name
// You can name the project with `get create project:my_project`
// If the name has spaces use `get create project:"my cool project"`
get create project
// To generate the chosen structure on an existing project:
get init
// To create a page:
// (Pages have controller, view, and binding)
// Note: you can use any name, ex: `get create page:login`
// Nota: use this option if the chosen structure was Getx_pattern
get create page:home
// To create a screen
// (Screens have controller, view, and binding)
// Note: you can use any name, ex: `get screen page:login`
// Nota: use this option if the chosen structure was CLEAN (by Arktekko)
get create screen:home
// To create a new controller in a specific folder:
// Note: you don't need to reference the folder,
// Getx will search automatically for the home folder
// and add your controller there.
get create controller:dialogcontroller on home
// To create a new view in a specific folder:
// Note: you don't need to reference the folder,
// Getx will automatically search for the home folder
// and insert your view there.
get create view:dialogview on home
// To create a new provider in a specific folder:
get create provider:user on home
// To generate a localization file:
// Note: 'assets/locales' directory with your translation files in json format
get generate locales assets/locales
// To generate a class model:
// Note: 'assets/models/user.json' path of your template file in json format
// Note: on == folder output file
// Getx will automatically search for the home folder
// and insert your class model there.
get generate model on home with assets/models/user.json
//to generate the model without the provider
get generate model on home with assets/models/user.json --skipProvider
//Note: the URL must return a json format
get generate model on home from "https://api.github.com/users/CpdnCristiano"
// To install a package in your project (dependencies):
get install camera
// To install several packages from your project:
get install http path camera
// To install a package with specific version:
get install path:1.6.4
// You can also specify several packages with version numbers
// To install a dev package in your project (dependencies_dev):
get install flutter_launcher_icons --dev
// To remove a package from your project:
get remove http
// To remove several packages from your project:
get remove http path
// To update CLI:
get update
// or `get upgrade`
// Shows the current CLI version:
get -v
// or `get -version`
// For help
get help
Exploring the CLI
let's explore the existing commands in the cli
get create project
Using to generate a new project, you can choose between Flutter and get_server, after creating the default directory, it will run a get init
next command
get init
Use this command with care it will overwrite all files in the lib folder. It allows you to choose between two structures, getx_pattern and clean.
get create page:name
this command allows you to create modules, it is recommended for users who chose to use getx_pattern.
creates the view, controller and binding files, in addition to automatically adding the route.
You can create a module within another module.
get create page:name on other_module
When creating a new project now and use on
to create a page the CLI will use children pages.
get create screen:name
similar to the create page
, but suitable for those who use Clean
get create controller:dialog on your_folder
create a controller in a specific folder.
Using with option You can now create a template file, the way you prefer.
run
get create controller:auth with examples/authcontroller.dart on your_folder
or with url run
get create controller:auth with 'https://raw.githubusercontent.com/jonataslaw/get_cli/master/samples_file/controller.dart.example' on your_folder
input:
@import
class @controller extends GetxController {
final email = ''.obs;
final password = ''.obs;
void login() {
}
}
output:
import 'package:get/get.dart';
class AuthController extends GetxController {
final email = ''.obs;
final password = ''.obs;
void login() {}
}
get create view:dialog on your_folder
create a view in a specific folder
create the json language files in the assets/locales folder.
input:
pt_BR.json
{
"buttons": {
"login": "Entrar",
"sign_in": "Cadastrar-se",
"logout": "Sair",
"sign_in_fb": "Entrar com o Facebook",
"sign_in_google": "Entrar com o Google",
"sign_in_apple": "Entrar com a 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"
}
}
Run :
get generate locales assets/locales
output:
abstract class AppTranslation {
static Map<String, Map<String, String>> translations = {
'en_US' : Locales.en_US,
'pt_BR' : Locales.pt_BR,
};
}
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 pt_BR = {
'buttons_login': 'Entrar',
'buttons_sign_in': 'Cadastrar-se',
'buttons_logout': 'Sair',
'buttons_sign_in_fb': 'Entrar com o Facebook',
'buttons_sign_in_google': 'Entrar com o Google',
'buttons_sign_in_apple': 'Entrar com a Apple',
};
}
now just add the line in GetMaterialApp
GetMaterialApp(
...
translationsKeys: AppTranslation.translations,
...
)
Create the json model file in the assets/models/user.json
input:
{
"name": "",
"age": 0,
"friends": ["", ""]
}
Run :
get generate model on home with assets/models/user.json
output:
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;
}
}
One day a user asked me, if it was possible to change what the final name of the file was, he found it more readable to use: my_controller_name.controller.dart
, instead of the default generated by the cli: my_controller_name_controller. dart
thinking about users like him we added the option for you to choose your own separator, just add this information in your pubsepc.yaml
Example:
get_cli:
separator: "."
To help you organize your imports a new command was created: get sort
, in addition to organizing your imports the command will also format your dart file. thanks to dart_style. When using get sort all files are renamed, with the separator. To not rename use the --skipRename
flag.
You are one of those who prefer to use relative imports instead of project imports, use the --relative
option. get_cli will convert.
CLI now has an internationalization system.
to translate the cli into your language:
TODO:
You can install the package from the command line:
dart pub global activate get_cli
The package has the following executables:
$ get
$ getx
Run this command:
With Dart:
$ dart pub add get_cli
With Flutter:
$ flutter pub add get_cli
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
get_cli: ^1.7.1
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:get_cli/get_cli.dart';
Author: jonataslaw
Source Code: https://github.com/jonataslaw/get_cli
License: Apache-2.0 license
1626828960
In this video I have discussed about workers in getx
#flutter getx #flutter #getx #flutter getx tutorial
1626882900
In this video I have discussed about unique id in getx
#flutter getx #getx #flutter #flutter getx tutorial