jonataslaw

update to 3.3.0

  1 +## [3.3.0]
  2 +- Fix extensions (@stefandevo)
  3 +- Added CPF to utils options (@kauemurakami)
  4 +- Added fenix mode to Get.lazyPut.
  5 +Use `Get.lazyPut<Controller>(()=> Controller(), fenix:true)` to have a controller that after being destroyed, has the ability to be recreated in case someone needs it. This is a function that already exists in smartManagement.keepFactory which is now also possible in full mode.
  6 +- Fix native transition on android
  7 +
1 ## [3.2.2] 8 ## [3.2.2]
2 - Improve transitions and refactor route system 9 - Improve transitions and refactor route system
3 10
  1 +// This is a generated file; do not edit or check into version control.
  2 +FLUTTER_ROOT=/opt/flutter
  3 +FLUTTER_APPLICATION_PATH=/home/jonny/Área de trabalho/getx/benchmark/state_managers
  4 +FLUTTER_TARGET=lib/main.dart
  5 +FLUTTER_BUILD_DIR=build
  6 +SYMROOT=${SOURCE_ROOT}/../build/ios
  7 +OTHER_LDFLAGS=$(inherited) -framework Flutter
  8 +FLUTTER_FRAMEWORK_DIR=/opt/flutter/bin/cache/artifacts/engine/ios
  9 +FLUTTER_BUILD_NAME=1.0.0
  10 +FLUTTER_BUILD_NUMBER=1
  11 +DART_OBFUSCATION=false
  12 +TRACK_WIDGET_CREATION=false
  13 +TREE_SHAKE_ICONS=false
  14 +PACKAGE_CONFIG=.packages
  1 +#!/bin/sh
  2 +# This is a generated file; do not edit or check into version control.
  3 +export "FLUTTER_ROOT=/opt/flutter"
  4 +export "FLUTTER_APPLICATION_PATH=/home/jonny/Área de trabalho/getx/benchmark/state_managers"
  5 +export "FLUTTER_TARGET=lib/main.dart"
  6 +export "FLUTTER_BUILD_DIR=build"
  7 +export "SYMROOT=${SOURCE_ROOT}/../build/ios"
  8 +export "OTHER_LDFLAGS=$(inherited) -framework Flutter"
  9 +export "FLUTTER_FRAMEWORK_DIR=/opt/flutter/bin/cache/artifacts/engine/ios"
  10 +export "FLUTTER_BUILD_NAME=1.0.0"
  11 +export "FLUTTER_BUILD_NUMBER=1"
  12 +export "DART_OBFUSCATION=false"
  13 +export "TRACK_WIDGET_CREATION=false"
  14 +export "TREE_SHAKE_ICONS=false"
  15 +export "PACKAGE_CONFIG=.packages"
@@ -28,7 +28,7 @@ packages: @@ -28,7 +28,7 @@ packages:
28 name: async 28 name: async
29 url: "https://pub.dartlang.org" 29 url: "https://pub.dartlang.org"
30 source: hosted 30 source: hosted
31 - version: "2.4.1" 31 + version: "2.4.2"
32 bloc: 32 bloc:
33 dependency: "direct main" 33 dependency: "direct main"
34 description: 34 description:
@@ -99,6 +99,13 @@ packages: @@ -99,6 +99,13 @@ packages:
99 url: "https://pub.dartlang.org" 99 url: "https://pub.dartlang.org"
100 source: hosted 100 source: hosted
101 version: "7.1.0" 101 version: "7.1.0"
  102 + characters:
  103 + dependency: transitive
  104 + description:
  105 + name: characters
  106 + url: "https://pub.dartlang.org"
  107 + source: hosted
  108 + version: "1.0.0"
102 charcode: 109 charcode:
103 dependency: transitive 110 dependency: transitive
104 description: 111 description:
@@ -133,7 +140,7 @@ packages: @@ -133,7 +140,7 @@ packages:
133 name: collection 140 name: collection
134 url: "https://pub.dartlang.org" 141 url: "https://pub.dartlang.org"
135 source: hosted 142 source: hosted
136 - version: "1.14.12" 143 + version: "1.14.13"
137 convert: 144 convert:
138 dependency: transitive 145 dependency: transitive
139 description: 146 description:
@@ -297,7 +304,7 @@ packages: @@ -297,7 +304,7 @@ packages:
297 name: matcher 304 name: matcher
298 url: "https://pub.dartlang.org" 305 url: "https://pub.dartlang.org"
299 source: hosted 306 source: hosted
300 - version: "0.12.6" 307 + version: "0.12.8"
301 meta: 308 meta:
302 dependency: "direct main" 309 dependency: "direct main"
303 description: 310 description:
@@ -456,7 +463,7 @@ packages: @@ -456,7 +463,7 @@ packages:
456 name: stack_trace 463 name: stack_trace
457 url: "https://pub.dartlang.org" 464 url: "https://pub.dartlang.org"
458 source: hosted 465 source: hosted
459 - version: "1.9.3" 466 + version: "1.9.5"
460 stream_channel: 467 stream_channel:
461 dependency: transitive 468 dependency: transitive
462 description: 469 description:
@@ -491,7 +498,7 @@ packages: @@ -491,7 +498,7 @@ packages:
491 name: test_api 498 name: test_api
492 url: "https://pub.dartlang.org" 499 url: "https://pub.dartlang.org"
493 source: hosted 500 source: hosted
494 - version: "0.2.16" 501 + version: "0.2.17"
495 timing: 502 timing:
496 dependency: transitive 503 dependency: transitive
497 description: 504 description:
@@ -505,7 +512,7 @@ packages: @@ -505,7 +512,7 @@ packages:
505 name: typed_data 512 name: typed_data
506 url: "https://pub.dartlang.org" 513 url: "https://pub.dartlang.org"
507 source: hosted 514 source: hosted
508 - version: "1.1.6" 515 + version: "1.2.0"
509 uuid: 516 uuid:
510 dependency: "direct main" 517 dependency: "direct main"
511 description: 518 description:
@@ -2,20 +2,8 @@ @@ -2,20 +2,8 @@
2 "configVersion": 2, 2 "configVersion": 2,
3 "packages": [ 3 "packages": [
4 { 4 {
5 - "name": "archive",  
6 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/archive-2.0.13",  
7 - "packageUri": "lib/",  
8 - "languageVersion": "2.0"  
9 - },  
10 - {  
11 - "name": "args",  
12 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.6.0",  
13 - "packageUri": "lib/",  
14 - "languageVersion": "2.3"  
15 - },  
16 - {  
17 "name": "async", 5 "name": "async",
18 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.1", 6 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.2",
19 "packageUri": "lib/", 7 "packageUri": "lib/",
20 "languageVersion": "2.2" 8 "languageVersion": "2.2"
21 }, 9 },
@@ -26,40 +14,46 @@ @@ -26,40 +14,46 @@
26 "languageVersion": "2.4" 14 "languageVersion": "2.4"
27 }, 15 },
28 { 16 {
  17 + "name": "characters",
  18 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.0.0",
  19 + "packageUri": "lib/",
  20 + "languageVersion": "2.6"
  21 + },
  22 + {
29 "name": "charcode", 23 "name": "charcode",
30 "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.3", 24 "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.3",
31 "packageUri": "lib/", 25 "packageUri": "lib/",
32 "languageVersion": "2.0" 26 "languageVersion": "2.0"
33 }, 27 },
34 { 28 {
35 - "name": "collection",  
36 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.14.12", 29 + "name": "clock",
  30 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.0.1",
37 "packageUri": "lib/", 31 "packageUri": "lib/",
38 "languageVersion": "2.0" 32 "languageVersion": "2.0"
39 }, 33 },
40 { 34 {
41 - "name": "convert",  
42 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/convert-2.1.1", 35 + "name": "collection",
  36 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.14.13",
43 "packageUri": "lib/", 37 "packageUri": "lib/",
44 - "languageVersion": "1.17" 38 + "languageVersion": "2.3"
45 }, 39 },
46 { 40 {
47 - "name": "crypto",  
48 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-2.1.4", 41 + "name": "dio",
  42 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/dio-3.0.9",
49 "packageUri": "lib/", 43 "packageUri": "lib/",
50 - "languageVersion": "2.1" 44 + "languageVersion": "2.4"
51 }, 45 },
52 { 46 {
53 - "name": "cupertino_icons",  
54 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-0.1.3", 47 + "name": "fake_async",
  48 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.1.0",
55 "packageUri": "lib/", 49 "packageUri": "lib/",
56 - "languageVersion": "2.0" 50 + "languageVersion": "2.2"
57 }, 51 },
58 { 52 {
59 "name": "flutter", 53 "name": "flutter",
60 "rootUri": "file:///opt/flutter/packages/flutter", 54 "rootUri": "file:///opt/flutter/packages/flutter",
61 "packageUri": "lib/", 55 "packageUri": "lib/",
62 - "languageVersion": "2.2" 56 + "languageVersion": "2.9"
63 }, 57 },
64 { 58 {
65 "name": "flutter_test", 59 "name": "flutter_test",
@@ -69,21 +63,21 @@ @@ -69,21 +63,21 @@
69 }, 63 },
70 { 64 {
71 "name": "get", 65 "name": "get",
72 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/get-1.15.2", 66 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/get-3.2.2",
73 "packageUri": "lib/", 67 "packageUri": "lib/",
74 - "languageVersion": "2.1" 68 + "languageVersion": "2.6"
75 }, 69 },
76 { 70 {
77 - "name": "image",  
78 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/image-2.1.12", 71 + "name": "http_parser",
  72 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4",
79 "packageUri": "lib/", 73 "packageUri": "lib/",
80 - "languageVersion": "2.0" 74 + "languageVersion": "2.3"
81 }, 75 },
82 { 76 {
83 "name": "matcher", 77 "name": "matcher",
84 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.6", 78 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.8",
85 "packageUri": "lib/", 79 "packageUri": "lib/",
86 - "languageVersion": "2.2" 80 + "languageVersion": "2.4"
87 }, 81 },
88 { 82 {
89 "name": "meta", 83 "name": "meta",
@@ -93,19 +87,7 @@ @@ -93,19 +87,7 @@
93 }, 87 },
94 { 88 {
95 "name": "path", 89 "name": "path",
96 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.6.4",  
97 - "packageUri": "lib/",  
98 - "languageVersion": "2.0"  
99 - },  
100 - {  
101 - "name": "petitparser",  
102 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-2.4.0",  
103 - "packageUri": "lib/",  
104 - "languageVersion": "2.4"  
105 - },  
106 - {  
107 - "name": "quiver",  
108 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/quiver-2.1.3", 90 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.7.0",
109 "packageUri": "lib/", 91 "packageUri": "lib/",
110 "languageVersion": "2.0" 92 "languageVersion": "2.0"
111 }, 93 },
@@ -123,9 +105,9 @@ @@ -123,9 +105,9 @@
123 }, 105 },
124 { 106 {
125 "name": "stack_trace", 107 "name": "stack_trace",
126 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.9.3", 108 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.9.5",
127 "packageUri": "lib/", 109 "packageUri": "lib/",
128 - "languageVersion": "1.23" 110 + "languageVersion": "2.0"
129 }, 111 },
130 { 112 {
131 "name": "stream_channel", 113 "name": "stream_channel",
@@ -147,15 +129,15 @@ @@ -147,15 +129,15 @@
147 }, 129 },
148 { 130 {
149 "name": "test_api", 131 "name": "test_api",
150 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.15", 132 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.17",
151 "packageUri": "lib/", 133 "packageUri": "lib/",
152 - "languageVersion": "2.4" 134 + "languageVersion": "2.7"
153 }, 135 },
154 { 136 {
155 "name": "typed_data", 137 "name": "typed_data",
156 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.1.6", 138 + "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.2.0",
157 "packageUri": "lib/", 139 "packageUri": "lib/",
158 - "languageVersion": "2.0" 140 + "languageVersion": "2.4"
159 }, 141 },
160 { 142 {
161 "name": "vector_math", 143 "name": "vector_math",
@@ -164,19 +146,13 @@ @@ -164,19 +146,13 @@
164 "languageVersion": "2.0" 146 "languageVersion": "2.0"
165 }, 147 },
166 { 148 {
167 - "name": "xml",  
168 - "rootUri": "file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/xml-3.6.1",  
169 - "packageUri": "lib/",  
170 - "languageVersion": "2.6"  
171 - },  
172 - {  
173 - "name": "profileweb", 149 + "name": "get_state",
174 "rootUri": "../", 150 "rootUri": "../",
175 "packageUri": "lib/", 151 "packageUri": "lib/",
176 - "languageVersion": "2.1" 152 + "languageVersion": "2.7"
177 } 153 }
178 ], 154 ],
179 - "generated": "2020-04-27T06:02:27.159254Z", 155 + "generated": "2020-07-14T09:09:42.984811Z",
180 "generator": "pub", 156 "generator": "pub",
181 - "generatorVersion": "2.8.0-dev.20.10" 157 + "generatorVersion": "2.9.0-21.2.beta"
182 } 158 }
1 -# Generated by pub on 2020-04-27 03:02:27.132181.  
2 -archive:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/archive-2.0.13/lib/  
3 -args:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.6.0/lib/  
4 -async:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.1/lib/ 1 +# Generated by pub on 2020-07-14 06:09:42.955823.
  2 +async:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.2/lib/
5 boolean_selector:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.0.0/lib/ 3 boolean_selector:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.0.0/lib/
  4 +characters:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.0.0/lib/
6 charcode:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.3/lib/ 5 charcode:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.3/lib/
7 -collection:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.14.12/lib/  
8 -convert:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/convert-2.1.1/lib/  
9 -crypto:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-2.1.4/lib/  
10 -cupertino_icons:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-0.1.3/lib/ 6 +clock:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.0.1/lib/
  7 +collection:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.14.13/lib/
  8 +dio:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/dio-3.0.9/lib/
  9 +fake_async:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.1.0/lib/
11 flutter:file:///opt/flutter/packages/flutter/lib/ 10 flutter:file:///opt/flutter/packages/flutter/lib/
12 flutter_test:file:///opt/flutter/packages/flutter_test/lib/ 11 flutter_test:file:///opt/flutter/packages/flutter_test/lib/
13 -get:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/get-1.15.2/lib/  
14 -image:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/image-2.1.12/lib/  
15 -matcher:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.6/lib/ 12 +get:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/get-3.2.2/lib/
  13 +http_parser:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4/lib/
  14 +matcher:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.8/lib/
16 meta:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.1.8/lib/ 15 meta:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.1.8/lib/
17 -path:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.6.4/lib/  
18 -petitparser:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-2.4.0/lib/  
19 -quiver:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/quiver-2.1.3/lib/ 16 +path:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.7.0/lib/
20 sky_engine:file:///opt/flutter/bin/cache/pkg/sky_engine/lib/ 17 sky_engine:file:///opt/flutter/bin/cache/pkg/sky_engine/lib/
21 source_span:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.7.0/lib/ 18 source_span:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.7.0/lib/
22 -stack_trace:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.9.3/lib/ 19 +stack_trace:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.9.5/lib/
23 stream_channel:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.0.0/lib/ 20 stream_channel:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.0.0/lib/
24 string_scanner:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.0.5/lib/ 21 string_scanner:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.0.5/lib/
25 term_glyph:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.1.0/lib/ 22 term_glyph:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.1.0/lib/
26 -test_api:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.15/lib/  
27 -typed_data:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.1.6/lib/ 23 +test_api:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.17/lib/
  24 +typed_data:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.2.0/lib/
28 vector_math:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.0.8/lib/ 25 vector_math:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.0.8/lib/
29 -xml:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/xml-3.6.1/lib/  
30 -profileweb:lib/ 26 +get_state:lib/
  1 +import 'package:get/get.dart';
  2 +import 'package:get_state/home/controllers/home_controller.dart';
  3 +import 'package:get_state/home/data/home_provider.dart';
  4 +import 'package:get_state/home/data/home_repository.dart';
  5 +
  6 +class HomeBinding extends Bindings {
  7 + @override
  8 + void dependencies() {
  9 + Get.lazyPut<HomeController>(() {
  10 + final homeProvider = HomeProvider();
  11 + final homeRepository = HomeRepository(homeProvider);
  12 + return HomeController(homeRepository);
  13 + });
  14 + }
  15 +}
1 import 'package:get/get.dart'; 1 import 'package:get/get.dart';
2 -import 'package:get_state/home/models/home_model.dart';  
3 -import 'package:get_state/home/repositorys/home_repository.dart'; 2 +import 'package:get_state/home/data/home_model.dart';
  3 +import 'package:get_state/home/data/home_repository.dart';
4 4
5 -class Controller extends GetController {  
6 - /// You do not need that. I recommend using it just for ease of syntax.  
7 - /// with static method: Controller.to.fetchDataFromApi();  
8 - /// with no static method: Get.find<Controller>().fetchDataFromApi();  
9 - /// There is no difference in performance, nor any side effect of using either syntax. Only one does not need the type, and the other does.  
10 - static Controller get to => Get.find(); 5 +class HomeController extends GetxController {
  6 + HomeController(this.homeRepository);
  7 + final HomeRepository homeRepository;
11 8
12 - ApiModel data; 9 + Rx<ApiModel> data = Rx<ApiModel>();
  10 +
  11 + @override
  12 + void onInit() => fetchDataFromApi();
13 13
14 void fetchDataFromApi() async { 14 void fetchDataFromApi() async {
15 - Api api = Api();  
16 - final response = await api.fetchData();  
17 - if (response == null) {  
18 - Get.snackbar("Erro", "Não foi possível conectar ao servidor");  
19 - } else {  
20 - data = response;  
21 - update(this); 15 + data.value = await homeRepository.getData();
  16 + if (data.value == null) {
  17 + Get.snackbar("Error", "Can't connect to server");
22 } 18 }
23 } 19 }
24 } 20 }
25 -  
26 -/// The first way works perfectly, but if you want to follow good practices,  
27 -/// you can make the data private and access it through a Get.  
28 -///  
29 -///  
30 -// class Controllers extends GetController {  
31 -// /// You do not need that. I recommend using it just for ease of syntax.  
32 -// /// with static method: Controller.to.fetchDataFromApi();  
33 -// /// with no static method: Get.find<Controller>().fetchDataFromApi();  
34 -// /// There is no difference in performance, nor any side effect of using either syntax. Only one does not need the type, and the other does.  
35 -// static Controller get to => Get.find();  
36 -  
37 -// ApiModel _data;  
38 -// ApiModel get data => _data;  
39 -  
40 -// void fetchDataFromApi() async {  
41 -// Api api = Api();  
42 -// final response = await api.fetchData();  
43 -// if (response == null) {  
44 -// Get.snackbar("Erro", "Não foi possível conectar ao servidor");  
45 -// } else {  
46 -// _data = response;  
47 -// update(this);  
48 -// }  
49 -// }  
50 -// }  
1 import 'package:dio/dio.dart'; 1 import 'package:dio/dio.dart';
2 -import 'package:get_state/home/models/home_model.dart'; 2 +import 'package:get_state/home/data/home_model.dart';
3 3
4 -class Api {  
5 - /// To make your repository Global, you can use this:  
6 - ///  
7 - /// static Api get to => Get.put(Api());  
8 - ///  
9 - /// So you can access it with: Get.find<Api>().fetchData;  
10 - /// You can dispose it with Get.delete<Api>(Api());  
11 - /// Only make the repository global if necessary, if you are going to use it on a single controller, there is no reason to make it global. 4 +class HomeProvider {
12 Future<ApiModel> fetchData() async { 5 Future<ApiModel> fetchData() async {
13 try { 6 try {
14 final response = await Dio().get("https://api.covid19api.com/summary"); 7 final response = await Dio().get("https://api.covid19api.com/summary");
15 return ApiModel.fromJson(response.data); 8 return ApiModel.fromJson(response.data);
16 } catch (e) { 9 } catch (e) {
17 print(e.toString()); 10 print(e.toString());
18 - return null; 11 + return ApiModel();
19 } 12 }
20 } 13 }
21 } 14 }
  1 +import 'package:get_state/home/data/home_provider.dart';
  2 +import 'package:get_state/home/data/home_model.dart';
  3 +
  4 +class HomeRepository {
  5 + HomeRepository(this.homeProvider);
  6 + final HomeProvider homeProvider;
  7 +
  8 + Future<ApiModel> getData() async {
  9 + return homeProvider.fetchData();
  10 + }
  11 +}
1 import 'dart:ui'; 1 import 'dart:ui';
2 import 'package:flutter/material.dart'; 2 import 'package:flutter/material.dart';
3 import 'package:get_state/home/controllers/home_controller.dart'; 3 import 'package:get_state/home/controllers/home_controller.dart';
4 -import 'package:get_state/home/models/home_model.dart'; 4 +import 'package:get_state/home/data/home_model.dart';
5 import 'package:get/get.dart'; 5 import 'package:get/get.dart';
6 6
7 -class CountryPage extends StatelessWidget { 7 +class CountryPage extends GetWidget<HomeController> {
8 @override 8 @override
9 Widget build(BuildContext context) { 9 Widget build(BuildContext context) {
10 return Container( 10 return Container(
@@ -28,9 +28,9 @@ class CountryPage extends StatelessWidget { @@ -28,9 +28,9 @@ class CountryPage extends StatelessWidget {
28 ), 28 ),
29 body: Center( 29 body: Center(
30 child: ListView.builder( 30 child: ListView.builder(
31 - itemCount: null, 31 + itemCount: controller.data.value.countries.length,
32 itemBuilder: (context, index) { 32 itemBuilder: (context, index) {
33 - Country country = Controller.to.data.countries[index]; 33 + Country country = controller.data.value.countries[index];
34 return ListTile( 34 return ListTile(
35 onTap: () { 35 onTap: () {
36 Get.toNamed('/details', arguments: country); 36 Get.toNamed('/details', arguments: country);
1 import 'dart:ui'; 1 import 'dart:ui';
2 import 'package:flutter/material.dart'; 2 import 'package:flutter/material.dart';
3 import 'package:get/get.dart'; 3 import 'package:get/get.dart';
4 -import 'package:get_state/home/models/home_model.dart'; 4 +import 'package:get_state/home/data/home_model.dart';
5 5
6 class DetailsPage extends StatelessWidget { 6 class DetailsPage extends StatelessWidget {
7 @override 7 @override
@@ -3,10 +3,9 @@ import 'package:flutter/material.dart'; @@ -3,10 +3,9 @@ import 'package:flutter/material.dart';
3 import 'package:get/get.dart'; 3 import 'package:get/get.dart';
4 import 'package:get_state/home/controllers/home_controller.dart'; 4 import 'package:get_state/home/controllers/home_controller.dart';
5 5
6 -class HomePage extends StatelessWidget { 6 +class HomePage extends GetWidget<HomeController> {
7 @override 7 @override
8 Widget build(BuildContext context) { 8 Widget build(BuildContext context) {
9 - print("rebuild");  
10 return Container( 9 return Container(
11 decoration: BoxDecoration( 10 decoration: BoxDecoration(
12 color: Colors.white, 11 color: Colors.white,
@@ -24,16 +23,9 @@ class HomePage extends StatelessWidget { @@ -24,16 +23,9 @@ class HomePage extends StatelessWidget {
24 centerTitle: true, 23 centerTitle: true,
25 ), 24 ),
26 body: Center( 25 body: Center(
27 - child: GetBuilder<Controller>(  
28 - init: Controller(),  
29 - initState: (_) {  
30 - Controller.to.fetchDataFromApi();  
31 - },  
32 - builder: (_) {  
33 - if (_.data == null) {  
34 - return CircularProgressIndicator();  
35 - } else {  
36 - return Column( 26 + child: Obx(() => (controller.data() == null)
  27 + ? CircularProgressIndicator()
  28 + : Column(
37 mainAxisAlignment: MainAxisAlignment.center, 29 mainAxisAlignment: MainAxisAlignment.center,
38 children: [ 30 children: [
39 SizedBox( 31 SizedBox(
@@ -46,9 +38,9 @@ class HomePage extends StatelessWidget { @@ -46,9 +38,9 @@ class HomePage extends StatelessWidget {
46 ), 38 ),
47 ), 39 ),
48 Text( 40 Text(
49 - '${_.data.global.totalConfirmed}',  
50 - style: TextStyle(  
51 - fontSize: 45, fontWeight: FontWeight.bold), 41 + '${controller.data.value.global.totalConfirmed}',
  42 + style:
  43 + TextStyle(fontSize: 45, fontWeight: FontWeight.bold),
52 ), 44 ),
53 SizedBox( 45 SizedBox(
54 height: 10, 46 height: 10,
@@ -60,9 +52,9 @@ class HomePage extends StatelessWidget { @@ -60,9 +52,9 @@ class HomePage extends StatelessWidget {
60 ), 52 ),
61 ), 53 ),
62 Text( 54 Text(
63 - '${_.data.global.totalDeaths}',  
64 - style: TextStyle(  
65 - fontSize: 45, fontWeight: FontWeight.bold), 55 + '${controller.data.value.global.totalDeaths}',
  56 + style:
  57 + TextStyle(fontSize: 45, fontWeight: FontWeight.bold),
66 ), 58 ),
67 SizedBox( 59 SizedBox(
68 height: 10, 60 height: 10,
@@ -79,11 +71,10 @@ class HomePage extends StatelessWidget { @@ -79,11 +71,10 @@ class HomePage extends StatelessWidget {
79 child: Text( 71 child: Text(
80 "Fetch by country", 72 "Fetch by country",
81 style: TextStyle(fontWeight: FontWeight.bold), 73 style: TextStyle(fontWeight: FontWeight.bold),
82 - )) 74 + ),
  75 + )
83 ], 76 ],
84 - );  
85 - }  
86 - }), 77 + )),
87 ), 78 ),
88 ), 79 ),
89 ); 80 );
1 import 'package:flutter/material.dart'; 1 import 'package:flutter/material.dart';
2 import 'package:get/get.dart'; 2 import 'package:get/get.dart';
  3 +import 'package:get_state/home/bindings/home_binding.dart';
3 import 'package:get_state/home/views/country_view.dart'; 4 import 'package:get_state/home/views/country_view.dart';
4 import 'home/views/details_view.dart'; 5 import 'home/views/details_view.dart';
5 import 'home/views/home_view.dart'; 6 import 'home/views/home_view.dart';
6 7
7 void main() { 8 void main() {
8 - runApp(GetMaterialApp( 9 + runApp(
  10 + GetMaterialApp(
9 debugShowCheckedModeBanner: false, 11 debugShowCheckedModeBanner: false,
10 initialRoute: '/', 12 initialRoute: '/',
11 - namedRoutes: {  
12 - '/': GetRoute(page: HomePage()),  
13 - '/country': GetRoute(page: CountryPage()),  
14 - '/details': GetRoute(page: DetailsPage()),  
15 - },  
16 - )); 13 + getPages: [
  14 + GetPage(name: '/', page: () => HomePage(), binding: HomeBinding()),
  15 + GetPage(name: '/country', page: () => CountryPage()),
  16 + GetPage(name: '/details', page: () => DetailsPage()),
  17 + ],
  18 + ),
  19 + );
17 } 20 }
@@ -5,5 +5,5 @@ @@ -5,5 +5,5 @@
5 #include "generated_plugin_registrant.h" 5 #include "generated_plugin_registrant.h"
6 6
7 7
8 -void RegisterPlugins(flutter::PluginRegistry* registry) { 8 +void fl_register_plugins(FlPluginRegistry* registry) {
9 } 9 }
@@ -5,9 +5,9 @@ @@ -5,9 +5,9 @@
5 #ifndef GENERATED_PLUGIN_REGISTRANT_ 5 #ifndef GENERATED_PLUGIN_REGISTRANT_
6 #define GENERATED_PLUGIN_REGISTRANT_ 6 #define GENERATED_PLUGIN_REGISTRANT_
7 7
8 -#include <flutter/plugin_registry.h> 8 +#include <flutter_linux/flutter_linux.h>
9 9
10 // Registers Flutter plugins. 10 // Registers Flutter plugins.
11 -void RegisterPlugins(flutter::PluginRegistry* registry); 11 +void fl_register_plugins(FlPluginRegistry* registry);
12 12
13 #endif // GENERATED_PLUGIN_REGISTRANT_ 13 #endif // GENERATED_PLUGIN_REGISTRANT_
  1 +#
  2 +# Generated file, do not edit.
  3 +#
  4 +
  5 +list(APPEND FLUTTER_PLUGIN_LIST
  6 +)
  7 +
  8 +set(PLUGIN_BUNDLED_LIBRARIES)
  9 +
  10 +foreach(plugin ${FLUTTER_PLUGIN_LIST})
  11 + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
  12 + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
  13 + list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
  14 + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
  15 +endforeach(plugin)
@@ -7,7 +7,7 @@ packages: @@ -7,7 +7,7 @@ packages:
7 name: async 7 name: async
8 url: "https://pub.dartlang.org" 8 url: "https://pub.dartlang.org"
9 source: hosted 9 source: hosted
10 - version: "2.4.1" 10 + version: "2.4.2"
11 boolean_selector: 11 boolean_selector:
12 dependency: transitive 12 dependency: transitive
13 description: 13 description:
@@ -15,6 +15,13 @@ packages: @@ -15,6 +15,13 @@ packages:
15 url: "https://pub.dartlang.org" 15 url: "https://pub.dartlang.org"
16 source: hosted 16 source: hosted
17 version: "2.0.0" 17 version: "2.0.0"
  18 + characters:
  19 + dependency: transitive
  20 + description:
  21 + name: characters
  22 + url: "https://pub.dartlang.org"
  23 + source: hosted
  24 + version: "1.0.0"
18 charcode: 25 charcode:
19 dependency: transitive 26 dependency: transitive
20 description: 27 description:
@@ -35,7 +42,7 @@ packages: @@ -35,7 +42,7 @@ packages:
35 name: collection 42 name: collection
36 url: "https://pub.dartlang.org" 43 url: "https://pub.dartlang.org"
37 source: hosted 44 source: hosted
38 - version: "1.14.12" 45 + version: "1.14.13"
39 dio: 46 dio:
40 dependency: "direct main" 47 dependency: "direct main"
41 description: 48 description:
@@ -66,7 +73,7 @@ packages: @@ -66,7 +73,7 @@ packages:
66 name: get 73 name: get
67 url: "https://pub.dartlang.org" 74 url: "https://pub.dartlang.org"
68 source: hosted 75 source: hosted
69 - version: "2.0.8-dev" 76 + version: "3.2.2"
70 http_parser: 77 http_parser:
71 dependency: transitive 78 dependency: transitive
72 description: 79 description:
@@ -80,7 +87,7 @@ packages: @@ -80,7 +87,7 @@ packages:
80 name: matcher 87 name: matcher
81 url: "https://pub.dartlang.org" 88 url: "https://pub.dartlang.org"
82 source: hosted 89 source: hosted
83 - version: "0.12.6" 90 + version: "0.12.8"
84 meta: 91 meta:
85 dependency: transitive 92 dependency: transitive
86 description: 93 description:
@@ -113,7 +120,7 @@ packages: @@ -113,7 +120,7 @@ packages:
113 name: stack_trace 120 name: stack_trace
114 url: "https://pub.dartlang.org" 121 url: "https://pub.dartlang.org"
115 source: hosted 122 source: hosted
116 - version: "1.9.3" 123 + version: "1.9.5"
117 stream_channel: 124 stream_channel:
118 dependency: transitive 125 dependency: transitive
119 description: 126 description:
@@ -141,14 +148,14 @@ packages: @@ -141,14 +148,14 @@ packages:
141 name: test_api 148 name: test_api
142 url: "https://pub.dartlang.org" 149 url: "https://pub.dartlang.org"
143 source: hosted 150 source: hosted
144 - version: "0.2.15" 151 + version: "0.2.17"
145 typed_data: 152 typed_data:
146 dependency: transitive 153 dependency: transitive
147 description: 154 description:
148 name: typed_data 155 name: typed_data
149 url: "https://pub.dartlang.org" 156 url: "https://pub.dartlang.org"
150 source: hosted 157 source: hosted
151 - version: "1.1.6" 158 + version: "1.2.0"
152 vector_math: 159 vector_math:
153 dependency: transitive 160 dependency: transitive
154 description: 161 description:
@@ -157,4 +164,4 @@ packages: @@ -157,4 +164,4 @@ packages:
157 source: hosted 164 source: hosted
158 version: "2.0.8" 165 version: "2.0.8"
159 sdks: 166 sdks:
160 - dart: ">=2.7.0 <3.0.0" 167 + dart: ">=2.9.0-14.0.dev <3.0.0"
@@ -27,7 +27,7 @@ dependencies: @@ -27,7 +27,7 @@ dependencies:
27 27
28 # The following adds the Cupertino Icons font to your application. 28 # The following adds the Cupertino Icons font to your application.
29 # Use with the CupertinoIcons class for iOS style icons. 29 # Use with the CupertinoIcons class for iOS style icons.
30 - get: ^2.0.8-dev 30 + get: ^3.2.2
31 dio: ^3.0.9 31 dio: ^3.0.9
32 32
33 dev_dependencies: 33 dev_dependencies:
@@ -3,14 +3,18 @@ import '../get_main.dart'; @@ -3,14 +3,18 @@ import '../get_main.dart';
3 import 'get_instance.dart'; 3 import 'get_instance.dart';
4 4
5 extension Inst on GetImpl { 5 extension Inst on GetImpl {
6 - void lazyPut<S>(FcBuilderFunc builder, {String tag}) {  
7 - return GetInstance().lazyPut<S>(builder, tag: tag); 6 + void lazyPut<S>(FcBuilderFunc builder, {String tag, bool fenix = false}) {
  7 + return GetInstance().lazyPut<S>(builder, tag: tag, fenix: fenix);
8 } 8 }
9 9
10 Future<S> putAsync<S>(FcBuilderFuncAsync<S> builder, 10 Future<S> putAsync<S>(FcBuilderFuncAsync<S> builder,
11 {String tag, bool permanent = false}) async => 11 {String tag, bool permanent = false}) async =>
12 GetInstance().putAsync<S>(builder, tag: tag, permanent: permanent); 12 GetInstance().putAsync<S>(builder, tag: tag, permanent: permanent);
13 13
  14 + void create<S>(FcBuilderFunc<S> builder,
  15 + {String name, bool permanent = true}) =>
  16 + GetInstance().create<S>(builder, name: name, permanent: permanent);
  17 +
14 S find<S>({String tag, FcBuilderFunc<S> instance}) => 18 S find<S>({String tag, FcBuilderFunc<S> instance}) =>
15 GetInstance().find<S>(tag: tag, instance: instance); 19 GetInstance().find<S>(tag: tag, instance: instance);
16 20
@@ -64,8 +64,10 @@ class GetInstance { @@ -64,8 +64,10 @@ class GetInstance {
64 void create<S>( 64 void create<S>(
65 FcBuilderFunc<S> builder, { 65 FcBuilderFunc<S> builder, {
66 String name, 66 String name,
  67 + bool permanent = true,
67 }) { 68 }) {
68 - _insert(isSingleton: false, name: name, builder: builder); 69 + _insert(
  70 + isSingleton: false, name: name, builder: builder, permanent: permanent);
69 } 71 }
70 72
71 void _insert<S>({ 73 void _insert<S>({
@@ -227,7 +229,8 @@ class GetInstance { @@ -227,7 +229,8 @@ class GetInstance {
227 229
228 FcBuilder builder = GetConfig._singl[newKey] as FcBuilder; 230 FcBuilder builder = GetConfig._singl[newKey] as FcBuilder;
229 if (builder.permanent) { 231 if (builder.permanent) {
230 - print('[GET] [$newKey] has been marked as permanent, SmartManagement is not authorized to delete it.'); 232 + print(
  233 + '[GET] [$newKey] has been marked as permanent, SmartManagement is not authorized to delete it.');
231 return false; 234 return false;
232 } 235 }
233 final i = builder.dependency; 236 final i = builder.dependency;
@@ -336,10 +336,9 @@ class GetPageRoute<T> extends PageRoute<T> { @@ -336,10 +336,9 @@ class GetPageRoute<T> extends PageRoute<T> {
336 child: child) 336 child: child)
337 : child); 337 : child);
338 338
339 - return FadeInTransition().buildTransitions( 339 + return FadeUpwardsPageTransitionsBuilder().buildTransitions(
  340 + this,
340 context, 341 context,
341 - curve,  
342 - alignment,  
343 animation, 342 animation,
344 secondaryAnimation, 343 secondaryAnimation,
345 popGesture ?? Get.defaultPopGesture 344 popGesture ?? Get.defaultPopGesture
@@ -364,10 +363,9 @@ class GetPageRoute<T> extends PageRoute<T> { @@ -364,10 +363,9 @@ class GetPageRoute<T> extends PageRoute<T> {
364 child: child) 363 child: child)
365 : child); 364 : child);
366 365
367 - return FadeInTransition().buildTransitions( 366 + return FadeUpwardsPageTransitionsBuilder().buildTransitions(
  367 + this,
368 context, 368 context,
369 - curve,  
370 - alignment,  
371 animation, 369 animation,
372 secondaryAnimation, 370 secondaryAnimation,
373 popGesture ?? Get.defaultPopGesture 371 popGesture ?? Get.defaultPopGesture
1 -import 'default_transitions.dart';  
2 -import 'transitions_component.dart';  
3 -import 'transitions_type.dart';  
4 -  
5 -class TransitionFilter {  
6 - static TransitionComponent newTransitionComponent(  
7 - Transition transition,  
8 - ) {  
9 - switch (transition) {  
10 - case Transition.leftToRight:  
11 - return SlideLeftTransition();  
12 -  
13 - case Transition.downToUp:  
14 - return SlideDownTransition();  
15 -  
16 - case Transition.upToDown:  
17 - return SlideTopTransition();  
18 -  
19 - case Transition.rightToLeft:  
20 - return SlideRightTransition();  
21 -  
22 - case Transition.zoom:  
23 - return ZoomInTransition();  
24 -  
25 - case Transition.fadeIn:  
26 - return FadeInTransition();  
27 -  
28 - case Transition.rightToLeftWithFade:  
29 - return RightToLeftFadeTransition();  
30 -  
31 - case Transition.leftToRightWithFade:  
32 - return LeftToRightFadeTransition();  
33 -  
34 - case Transition.cupertino:  
35 - return CupertinoTransitions();  
36 -  
37 - case Transition.size:  
38 - return SizeTransitions();  
39 -  
40 - default:  
41 - return FadeInTransition();  
42 - }  
43 - }  
44 -}  
@@ -7,7 +7,7 @@ packages: @@ -7,7 +7,7 @@ packages:
7 name: async 7 name: async
8 url: "https://pub.dartlang.org" 8 url: "https://pub.dartlang.org"
9 source: hosted 9 source: hosted
10 - version: "2.4.1" 10 + version: "2.4.2"
11 boolean_selector: 11 boolean_selector:
12 dependency: transitive 12 dependency: transitive
13 description: 13 description:
@@ -99,7 +99,7 @@ packages: @@ -99,7 +99,7 @@ packages:
99 name: stack_trace 99 name: stack_trace
100 url: "https://pub.dartlang.org" 100 url: "https://pub.dartlang.org"
101 source: hosted 101 source: hosted
102 - version: "1.9.3" 102 + version: "1.9.5"
103 stream_channel: 103 stream_channel:
104 dependency: transitive 104 dependency: transitive
105 description: 105 description:
1 name: get 1 name: get
2 description: Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get. 2 description: Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.
3 -version: 3.2.2 3 +version: 3.3.0
4 homepage: https://github.com/jonataslaw/get 4 homepage: https://github.com/jonataslaw/get
5 5
6 environment: 6 environment: