Showing
6 changed files
with
295 additions
and
111 deletions
@@ -11,20 +11,35 @@ | @@ -11,20 +11,35 @@ | ||
11 | <a href="https://www.buymeacoffee.com/jonataslaw" target="_blank"><img src="https://i.imgur.com/aV6DDA7.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important; box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" > </a> | 11 | <a href="https://www.buymeacoffee.com/jonataslaw" target="_blank"><img src="https://i.imgur.com/aV6DDA7.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important; box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" > </a> |
12 |  | 12 |  |
13 | 13 | ||
14 | +<h3>We are sorry for the inconsistency in the translation. The GetX package is updated quite often and translations to docs may not come as fast. So in order for this documentation still has all content, i'll leave here all new untranslated texts (I consider is better to have the english docs then to not have at all), so if anyone wants to translate, it would be very helpful 😁</h3> | ||
15 | + | ||
16 | +- [Communication and support channels:](#communication-and-support-channels-) | ||
14 | - [Sobre GetX](#sobre-getx) | 17 | - [Sobre GetX](#sobre-getx) |
18 | +- [como contribuir](#como-contribuir) | ||
19 | +- [Installing](#installing) | ||
20 | +- [Proyeto Counter no GetX](#proyeto-counter-no-getx) | ||
15 | - [Los tres pilares](#los-tres-pilares) | 21 | - [Los tres pilares](#los-tres-pilares) |
16 | - - [Gestión del Estado](#gestión-del-estado) | ||
17 | - - [Explicación completa](#explicación-completa) | ||
18 | - - [Gestión de Rutas](#gestión-de-rutas) | ||
19 | - - [Explicación completa](#explicación-completa-1) | ||
20 | - - [Gestión de dependencias](#gestión-de-dependencias) | ||
21 | - - [Explicación completa](#explicación-completa-2) | 22 | + * [Gestión del Estado](#gesti-n-del-estado) |
23 | + + [Reactivo STATE_MANAGER](#reactivo-state-manager) | ||
24 | + + [Más detalles sobre la gestión del estado.](#m-s-detalles-sobre-la-gesti-n-del-estado) | ||
25 | + * [Gestión de Rutas](#gesti-n-de-rutas) | ||
26 | + + [Más detalles sobre la gestión de rutas.](#m-s-detalles-sobre-la-gesti-n-de-rutas) | ||
27 | + * [Gestión de dependencias](#gesti-n-de-dependencias) | ||
28 | + + [Más detalles sobre la gestión de dependencias.](#m-s-detalles-sobre-la-gesti-n-de-dependencias) | ||
22 | - [Utils](#utils) | 29 | - [Utils](#utils) |
23 | - - [Cambiar de tema](#cambiar-de-tema) | ||
24 | - - [Otras API avanzadas y configuraciones manuales](#otras-api-avanzadas-y-configuraciones-manuales) | ||
25 | - - [Configuraciones globales opcionales](#configuraciones-globales-opcionales) | 30 | + * [Cambiar de tema](#cambiar-de-tema) |
31 | + * [Otras API avanzadas y configuraciones manuales](#otras-api-avanzadas-y-configuraciones-manuales) | ||
32 | + + [Configuraciones globales opcionales](#configuraciones-globales-opcionales) | ||
26 | - [Rompiendo cambios desde 2.0](#rompiendo-cambios-desde-20) | 33 | - [Rompiendo cambios desde 2.0](#rompiendo-cambios-desde-20) |
27 | -- [¿Por qué Getx?](#por-qué-getx) | 34 | +- [¿Por qué Getx?](#-por-qu--getx-) |
35 | + | ||
36 | +# Communication and support channels: | ||
37 | + | ||
38 | +[**Slack (English)**](https://communityinviter.com/apps/getxworkspace/getx) | ||
39 | + | ||
40 | +[**Discord (English and Portuguese)**](https://discord.com/invite/9Y3wK9) | ||
41 | + | ||
42 | +[**Telegram (Portuguese)**](https://t.me/joinchat/PhdbJRmsZNpAqSLJL6bH7g) | ||
28 | 43 | ||
29 | # Sobre GetX | 44 | # Sobre GetX |
30 | 45 | ||
@@ -38,6 +53,8 @@ | @@ -38,6 +53,8 @@ | ||
38 | 53 | ||
39 | **GetX hace que su desarrollo sea productivo, pero ¿quiere hacerlo aún más productivo? [Agregue la extensión a su VSCode](https://marketplace.visualstudio.com/items?itemName=get-snippets.get-snippets)** | 54 | **GetX hace que su desarrollo sea productivo, pero ¿quiere hacerlo aún más productivo? [Agregue la extensión a su VSCode](https://marketplace.visualstudio.com/items?itemName=get-snippets.get-snippets)** |
40 | 55 | ||
56 | +# Como contribuir | ||
57 | + | ||
41 | *¿Quieres contribuir al proyecto? Estaremos orgullosos de destacarte como uno de nuestros colaboradores. Aquí hay algunos puntos en los que puede contribuir y hacer que GetX (y Flutter) sea aún mejor.* | 58 | *¿Quieres contribuir al proyecto? Estaremos orgullosos de destacarte como uno de nuestros colaboradores. Aquí hay algunos puntos en los que puede contribuir y hacer que GetX (y Flutter) sea aún mejor.* |
42 | 59 | ||
43 | - Ayudando a traducir el archivo Léame a otros idiomas. | 60 | - Ayudando a traducir el archivo Léame a otros idiomas. |
@@ -50,9 +67,22 @@ | @@ -50,9 +67,22 @@ | ||
50 | 67 | ||
51 | - Incluyendo nuevas funciones. | 68 | - Incluyendo nuevas funciones. |
52 | 69 | ||
53 | -# Los tres pilares | 70 | +# Installing |
54 | 71 | ||
55 | -## Gestión del Estado | 72 | +Add Get to your pubspec.yaml file: |
73 | + | ||
74 | +```yaml | ||
75 | +dependencies: | ||
76 | + get: | ||
77 | +``` | ||
78 | + | ||
79 | +Import get in files that it will be used: | ||
80 | + | ||
81 | +```dart | ||
82 | +import 'package:get/get.dart'; | ||
83 | +``` | ||
84 | + | ||
85 | +# Proyeto Counter no GetX | ||
56 | 86 | ||
57 | Vea una explicación más detallada de la administración del estado [aquí](./docs/es_ES/state_management.md). Allí verá más ejemplos y también la diferencia entre el Gestión del Estado simple y el Gestión del Estado reactivo | 87 | Vea una explicación más detallada de la administración del estado [aquí](./docs/es_ES/state_management.md). Allí verá más ejemplos y también la diferencia entre el Gestión del Estado simple y el Gestión del Estado reactivo |
58 | 88 | ||
@@ -114,14 +144,46 @@ class Other extends StatelessWidget { | @@ -114,14 +144,46 @@ class Other extends StatelessWidget { | ||
114 | 144 | ||
115 | Este es un proyecto simple pero ya deja en claro cuán poderoso es GetX. A medida que su proyecto crezca, esta diferencia se volverá más significativa. GetX fue diseñado para trabajar con equipos, pero también simplifica el trabajo de un desarrollador individual. Mejore sus plazos, entregue todo a tiempo, sin perder rendimiento. GetX no es para todos, pero si te identificaste con esa frase, ¡GET es para ti! | 145 | Este es un proyecto simple pero ya deja en claro cuán poderoso es GetX. A medida que su proyecto crezca, esta diferencia se volverá más significativa. GetX fue diseñado para trabajar con equipos, pero también simplifica el trabajo de un desarrollador individual. Mejore sus plazos, entregue todo a tiempo, sin perder rendimiento. GetX no es para todos, pero si te identificaste con esa frase, ¡GET es para ti! |
116 | 146 | ||
117 | -### Explicación completa | 147 | +# Los tres pilares |
148 | + | ||
149 | +## Gestión del Estado | ||
150 | + | ||
151 | +Actualmente hay varios State Managers para Flutter. Sin embargo, con la mayoría de ellos implica utilizar ChangeNotifier para actualizar widgets y este es un enfoque malo y muy malo para el rendimiento de aplicaciones medianas o grandes. Puede verificar en la documentación oficial de Flutter que [ChangeNotifier debe usarse con 1 o un máximo de 2 listeners](https://api.Flutter.dev/Flutter/foundation/ChangeNotifier-class.html), por lo que es prácticamente inutilizable para cualquier aplicación mediana o grande. | ||
152 | + | ||
153 | +GetX no es mejor ni peor que cualquier otro gestor de estado, pero debe analizar estos puntos, así como los puntos que se mencionan a continuación, para elegir entre usar GetX en forma pura (vanilla) o usarlo junto con otro gestor de estado. | ||
154 | + | ||
155 | +Definitivamente, GetX no es enemigo de ningún otro gestor de estado, porque GetX es más bien un microframework, no solo un gestor de estado, y se puede usar solo o en combinación con ellos. | ||
156 | + | ||
157 | +### Reactivo STATE_MANAGER | ||
158 | + | ||
159 | +La programación reactiva puede alienar a muchas personas porque se dice que es complicada. GetX convierte la programación reactiva en algo tan simple que puede ser aprendido y utilizado por aquellos que comenzaron en ese mismo momento en Flutter. No, no necesitará crear StreamControllers. Tampoco necesitará crear un StreamBuilder para cada variable. No necesitará crear una clase para cada estado. No necesitará crear un get para un valor inicial. La programación reactiva con GetX es tan fácil como usar setState (¡o incluso más fácil!). | ||
160 | + | ||
161 | +Imaginemos que tiene una variable "name" y desea que cada vez que la modifique, todos los widgets que la usan cambien automáticamente. | ||
162 | + | ||
163 | +Ej. esta es tu variable "name": | ||
164 | + | ||
165 | +```dart | ||
166 | +var name = 'Jonatas Borges'; | ||
167 | +``` | ||
168 | + | ||
169 | +Para que sea observable, solo necesita agregar ".obs" al final: | ||
170 | + | ||
171 | +```dart | ||
172 | +var name = 'Jonatas Borges'.obs; | ||
173 | +``` | ||
174 | + | ||
175 | +¿StreamBuilder? ¿initialValue? ¿builder? No, solo necesitas jugar con esta variable dentro de un widget Obx. | ||
176 | + | ||
177 | +```dart | ||
178 | +Obx(() => Text (controller.name)); | ||
179 | +``` | ||
180 | + | ||
181 | +### Más detalles sobre la gestión del estado. | ||
118 | 182 | ||
119 | **Vea una explicación más detallada de la administración del estado [aquí](./docs/es_ES/state_management.md). Allí verá más ejemplos y también la diferencia entre el Gestión del Estado simple y el Gestión del Estado reactivo** | 183 | **Vea una explicación más detallada de la administración del estado [aquí](./docs/es_ES/state_management.md). Allí verá más ejemplos y también la diferencia entre el Gestión del Estado simple y el Gestión del Estado reactivo** |
120 | 184 | ||
121 | ## Gestión de Rutas | 185 | ## Gestión de Rutas |
122 | 186 | ||
123 | -Vea una explicación más detallada de la administración del estado [aquí](./docs/es_ES/route_management.md). | ||
124 | - | ||
125 | Para navegar a una nueva pantalla: | 187 | Para navegar a una nueva pantalla: |
126 | 188 | ||
127 | ```dart | 189 | ```dart |
@@ -152,13 +214,15 @@ Para navegar a la siguiente ruta y recibir o actualizar datos tan pronto como se | @@ -152,13 +214,15 @@ Para navegar a la siguiente ruta y recibir o actualizar datos tan pronto como se | ||
152 | var data = await Get.to(Payment()); | 214 | var data = await Get.to(Payment()); |
153 | ``` | 215 | ``` |
154 | 216 | ||
155 | -### Explicación completa | 217 | +### Más detalles sobre la gestión de rutas. |
156 | 218 | ||
157 | **Vea una explicación más detallada de la Gestión de Rutas [aquí](./docs/es_ES/route_management.md).** | 219 | **Vea una explicación más detallada de la Gestión de Rutas [aquí](./docs/es_ES/route_management.md).** |
158 | 220 | ||
159 | -## Gestión de dependencias | 221 | +### Video Explanation |
160 | 222 | ||
161 | -Vea una explicación más detallada de la Gestión de dependencias [aquí](./docs/es_ES/dependency_management.md). | 223 | +Amateur Coder did an excellent video that cover route management with Get! here is the link: [Complete Getx Navigation](https://www.youtube.com/watch?v=RaqPIoJSTtI) |
224 | + | ||
225 | +## Gestión de dependencias | ||
162 | 226 | ||
163 | - Nota: si está utilizando el gestor de estado de GetX, no tiene que preocuparse por esto, solo lea para obtener información, pero preste más atención a la API de bindings, que hará todo esto automáticamente por usted. | 227 | - Nota: si está utilizando el gestor de estado de GetX, no tiene que preocuparse por esto, solo lea para obtener información, pero preste más atención a la API de bindings, que hará todo esto automáticamente por usted. |
164 | 228 | ||
@@ -194,7 +258,7 @@ Get.lazyPut<Service>(()=> ApiMock()); | @@ -194,7 +258,7 @@ Get.lazyPut<Service>(()=> ApiMock()); | ||
194 | /// ApiMock will only be called when someone uses Get.find<Service> for the first time | 258 | /// ApiMock will only be called when someone uses Get.find<Service> for the first time |
195 | ``` | 259 | ``` |
196 | 260 | ||
197 | -### Explicación completa | 261 | +### Más detalles sobre la gestión de dependencias. |
198 | 262 | ||
199 | **Vea una explicación más detallada de la Gestión de dependencias [aquí](./docs/es_ES/dependency_management.md).** | 263 | **Vea una explicación más detallada de la Gestión de dependencias [aquí](./docs/es_ES/dependency_management.md).** |
200 | 264 |
@@ -12,6 +12,28 @@ | @@ -12,6 +12,28 @@ | ||
12 | 12 | ||
13 |  | 13 |  |
14 | 14 | ||
15 | +- [**Communication and support channels:**](#communication-and-support-channels-) | ||
16 | +- [**About Get**](#about-get) | ||
17 | +- [**Installing**](#installing) | ||
18 | +- [**Counter App in Get**](#counter-app-in-get) | ||
19 | +- [**The Three pillars**](#the-three-pillars) | ||
20 | + * [State management](#state-management) | ||
21 | + + [Reactive State Manager](#reactive-state-manager) | ||
22 | + + [More details about state management](#more-details-about-state-management) | ||
23 | + * [Route management](#route-management) | ||
24 | + + [More details about route management](#more-details-about-route-management) | ||
25 | + + [Video Explanation](#video-explanation) | ||
26 | + * [Dependency management](#dependency-management) | ||
27 | + + [More details about dependency management](#more-details-about-dependency-management) | ||
28 | +- [**How to contribute**](#how-to-contribute) | ||
29 | +- [**Utils**](#utils) | ||
30 | + * [Change Theme](#change-theme) | ||
31 | + * [Other Advanced APIs](#other-advanced-apis) | ||
32 | + + [Optional Global Settings and Manual configurations](#optional-global-settings-and-manual-configurations) | ||
33 | +- [**Breaking changes from 2.0**](#breaking-changes-from-20) | ||
34 | +- [**Why Getx?**](#why-getx-) | ||
35 | + | ||
36 | + | ||
15 | # Communication and support channels: | 37 | # Communication and support channels: |
16 | 38 | ||
17 | [**Slack (English)**](https://communityinviter.com/apps/getxworkspace/getx) | 39 | [**Slack (English)**](https://communityinviter.com/apps/getxworkspace/getx) |
@@ -20,25 +42,6 @@ | @@ -20,25 +42,6 @@ | ||
20 | 42 | ||
21 | [**Telegram (Portuguese)**](https://t.me/joinchat/PhdbJRmsZNpAqSLJL6bH7g) | 43 | [**Telegram (Portuguese)**](https://t.me/joinchat/PhdbJRmsZNpAqSLJL6bH7g) |
22 | 44 | ||
23 | -# Topics | ||
24 | - | ||
25 | -- [**About Get**](#about-get) | ||
26 | -- [**Installing**](#installing) | ||
27 | -- [**The Three pillars**](#the-three-pillars) | ||
28 | - - [State management](#state-management) | ||
29 | - - [In-depth explanation](#in-depth-explanation) | ||
30 | - - [Route management](#route-management) | ||
31 | - - [In-Depth Explanation](#in-depth-explanation-1) | ||
32 | - - [Dependency management](#dependency-management) | ||
33 | - - [In-depth explanation](#in-depth-explanation-2) | ||
34 | -- [**How to contribute**](#how-to-contribute) | ||
35 | -- [**Utils**](#utils) | ||
36 | - - [Change Theme](#change-theme) | ||
37 | - - [Other Advanced APIs](#other-advanced-apis) | ||
38 | - - [Optional Global Settings and Manual configurations](#optional-global-settings-and-manual-configurations) | ||
39 | -- [**Breaking changes from 2.0**](#breaking-changes-from-20) | ||
40 | -- [**Why GetX?**](#why-getx) | ||
41 | - | ||
42 | # About Get | 45 | # About Get |
43 | 46 | ||
44 | - GetX is an extra-light and powerful solution for Flutter. It combines high performance state management, intelligent dependency injection, and route management in a quick and practical way. | 47 | - GetX is an extra-light and powerful solution for Flutter. It combines high performance state management, intelligent dependency injection, and route management in a quick and practical way. |
@@ -64,12 +67,7 @@ Import get in files that it will be used: | @@ -64,12 +67,7 @@ Import get in files that it will be used: | ||
64 | ```dart | 67 | ```dart |
65 | import 'package:get/get.dart'; | 68 | import 'package:get/get.dart'; |
66 | ``` | 69 | ``` |
67 | - | ||
68 | -# The Three pillars | ||
69 | - | ||
70 | -## State management | ||
71 | - | ||
72 | -**See an more in-depth explanation of state management [here](./docs/en_US/state_management.md). There you will see more examples and also the differente between the simple stage manager and the reactive state manager** | 70 | +# Counter App with GetX |
73 | 71 | ||
74 | The "counter" project created by default on new project on Flutter has over 100 lines (with comments). To show the power of Get, I will demonstrate how to make a "counter" changing the state with each click, switching between pages and sharing the state between screens, all in an organized way, separating the business logic from the view, in ONLY 26 LINES CODE INCLUDING COMMENTS. | 72 | The "counter" project created by default on new project on Flutter has over 100 lines (with comments). To show the power of Get, I will demonstrate how to make a "counter" changing the state with each click, switching between pages and sharing the state between screens, all in an organized way, separating the business logic from the view, in ONLY 26 LINES CODE INCLUDING COMMENTS. |
75 | 73 | ||
@@ -123,19 +121,74 @@ class Other extends StatelessWidget { | @@ -123,19 +121,74 @@ class Other extends StatelessWidget { | ||
123 | Widget build(context){ | 121 | Widget build(context){ |
124 | // Access the updated count variable | 122 | // Access the updated count variable |
125 | return Scaffold(body: Center(child: Text(c.count.string))); | 123 | return Scaffold(body: Center(child: Text(c.count.string))); |
124 | + } | ||
126 | } | 125 | } |
126 | +``` | ||
127 | + | ||
128 | +This is a simple project but it already makes clear how powerful Get is. As your project grows, this difference will become more significant. | ||
129 | + | ||
130 | +Get was designed to work with teams, but it makes the job of an individual developer simple. | ||
131 | + | ||
132 | +Improve your deadlines, deliver everything on time without losing performance. Get is not for everyone, but if you identified with that phrase, Get is for you! | ||
133 | + | ||
134 | +# The Three pillars | ||
135 | + | ||
136 | +## State management | ||
137 | + | ||
138 | +There are currently several state managers for Flutter. However, most of them involve using ChangeNotifier to update widgets and this is a bad and very bad approach to performance of medium or large applications. You can check in the official Flutter documentation that [ChangeNotifier should be used with 1 or a maximum of 2 listeners](https://api.flutter.dev/flutter/foundation/ChangeNotifier-class.html), making it practically unusable for any application medium or large. | ||
139 | + | ||
140 | +Get isn't better or worse than any other state manager, but that you should analyze these points as well as the points below to choose between using Get in pure form (Vanilla), or using it in conjunction with another state manager. | ||
127 | 141 | ||
142 | +Definitely, Get is not the enemy of any other state manager, because Get is a microframework, not just a state manager, and can be used either alone or in conjunction with them. | ||
143 | + | ||
144 | +Get has two different state managers: the simple state manager (we'll call it GetBuilder) and the reactive state manager (who has the package name, GetX) | ||
145 | + | ||
146 | +### Reactive State Manager | ||
147 | + | ||
148 | +Reactive programming can alienate many people because it is said to be complicated. GetX turns reactive programming into something quite simple: | ||
149 | + | ||
150 | +- You won't need to create StreamControllers. | ||
151 | +- You won't need to create a StreamBuilder for each variable | ||
152 | +- You will not need to create a class for each state. | ||
153 | +- You will not need to create a get for an initial value. | ||
154 | + | ||
155 | +Reactive programming with Get is as easy as using setState. | ||
156 | + | ||
157 | +Let's imagine that you have a name variable and want that every time you change it, all widgets that use it are automatically changed. | ||
158 | + | ||
159 | +This is your count variable: | ||
160 | + | ||
161 | +```dart | ||
162 | +var name = 'Jonatas Borges'; | ||
163 | +``` | ||
164 | + | ||
165 | +To make it observable, you just need to add ".obs" to the end of it: | ||
166 | + | ||
167 | +```dart | ||
168 | +var name = 'Jonatas Borges'.obs; | ||
169 | +``` | ||
170 | + | ||
171 | +And in the UI, when you want to show that value and update the screen whenever tha values changes, simply do this: | ||
172 | + | ||
173 | +```dart | ||
174 | +Obx (() => Text (controller.name)); | ||
128 | ``` | 175 | ``` |
129 | 176 | ||
130 | -This is a simple project but it already makes clear how powerful Get is. As your project grows, this difference will become more significant. Get was designed to work with teams, but it makes the job of an individual developer simple. Improve your deadlines, deliver everything on time without losing performance. Get is not for everyone, but if you identified with that phrase, Get is for you! | 177 | +That's all. It's *that* simple. |
131 | 178 | ||
132 | -### In-depth explanation | 179 | +### More details about state management |
133 | 180 | ||
134 | **See an more in-depth explanation of state management [here](./docs/en_US/state_management.md). There you will see more examples and also the difference between the simple stage manager and the reactive state manager** | 181 | **See an more in-depth explanation of state management [here](./docs/en_US/state_management.md). There you will see more examples and also the difference between the simple stage manager and the reactive state manager** |
135 | 182 | ||
136 | -## Route management | 183 | +### Video explanation about state management |
184 | + | ||
185 | + | ||
186 | +Amateur coder did an awesome video about state management! Link: [Complete GetX State Management](https://www.youtube.com/watch?v=CNpXbeI_slw) | ||
137 | 187 | ||
138 | -See a more in-depth explanation of route management [here](./docs/en_US/route_management.md) | 188 | +You will get a good idea of GetX power. |
189 | + | ||
190 | + | ||
191 | +## Route management | ||
139 | 192 | ||
140 | If you are going to use routes/snackbars/dialogs/bottomsheets without context, GetX is excellent for you too, just see it: | 193 | If you are going to use routes/snackbars/dialogs/bottomsheets without context, GetX is excellent for you too, just see it: |
141 | 194 | ||
@@ -171,22 +224,18 @@ To go to the next screen and cancel all previous routes (useful in shopping cart | @@ -171,22 +224,18 @@ To go to the next screen and cancel all previous routes (useful in shopping cart | ||
171 | Get.offAll(NextScreen()); | 224 | Get.offAll(NextScreen()); |
172 | ``` | 225 | ``` |
173 | 226 | ||
174 | -To navigate to the next route, and receive or update data as soon as you return from it: | 227 | +Noticed that you didn't had to use context to do any of these things? That's one of the biggest advantages of using Get route management. With this, you can execute all these methods from within your controller class, without worries. |
175 | 228 | ||
176 | -```dart | ||
177 | -var data = await Get.to(Payment()); | ||
178 | -``` | 229 | +### More details about route management |
179 | 230 | ||
180 | -Noticed that you didn't had to use context to do any of these things? That's one of the biggest advantages of using Get route management. With this, you can execute all these methods from within your controller class, without worries. | 231 | +**Get work with named routes and also offer a lower level control over your routes! There is a in-depth documentation [here](./docs/en_US/route_management.md)** |
181 | 232 | ||
182 | -### In-Depth Explanation | 233 | +### Video Explanation |
183 | 234 | ||
184 | -**Note: Get work with named routes too! As said in the beggining, there is a in-depth documentation [here](./docs/en_US/route_management.md)** | 235 | +Amateur Coder did an excellent video that cover route management with Get! here is the link: [Complete Getx Navigation](https://www.youtube.com/watch?v=RaqPIoJSTtI) |
185 | 236 | ||
186 | ## Dependency management | 237 | ## Dependency management |
187 | 238 | ||
188 | -See a more in-depth explanation of dependency management [here](./docs/en_US/dependency_management.md) | ||
189 | - | ||
190 | Get has a simple and powerful dependency manager that allows you to retrieve the same class as your Bloc or Controller with just 1 lines of code, no Provider context, no inheritedWidget: | 239 | Get has a simple and powerful dependency manager that allows you to retrieve the same class as your Bloc or Controller with just 1 lines of code, no Provider context, no inheritedWidget: |
191 | 240 | ||
192 | ```dart | 241 | ```dart |
@@ -217,14 +266,7 @@ And then you will be able to recover your controller data that was obtained back | @@ -217,14 +266,7 @@ And then you will be able to recover your controller data that was obtained back | ||
217 | Text(controller.textFromApi); | 266 | Text(controller.textFromApi); |
218 | ``` | 267 | ``` |
219 | 268 | ||
220 | -Looking for lazy loading? You can declare all your controllers, and it will be called only when someone needs it. You can do this with: | ||
221 | - | ||
222 | -```dart | ||
223 | -Get.lazyPut<Service>(()=> ApiMock()); | ||
224 | -/// ApiMock will only be called when someone uses Get.find<Service> for the first time | ||
225 | -``` | ||
226 | - | ||
227 | -### In-depth explanation | 269 | +### More details about dependency management |
228 | 270 | ||
229 | **See a more in-depth explanation of dependency management [here](./docs/en_US/dependency_management.md)** | 271 | **See a more in-depth explanation of dependency management [here](./docs/en_US/dependency_management.md)** |
230 | 272 | ||
@@ -233,7 +275,7 @@ Get.lazyPut<Service>(()=> ApiMock()); | @@ -233,7 +275,7 @@ Get.lazyPut<Service>(()=> ApiMock()); | ||
233 | *Want to contribute to the project? We will be proud to highlight you as one of our collaborators. Here are some points where you can contribute and make Get (and Flutter) even better.* | 275 | *Want to contribute to the project? We will be proud to highlight you as one of our collaborators. Here are some points where you can contribute and make Get (and Flutter) even better.* |
234 | 276 | ||
235 | - Helping to translate the readme into other languages. | 277 | - Helping to translate the readme into other languages. |
236 | -- Adding documentation to the readme (not even half of Get's functions have been documented yet). | 278 | +- Adding documentation to the readme (a lot of Get's functions haven't been documented yet). |
237 | - Write articles or make videos teaching how to use Get (they will be inserted in the Readme and in the future in our Wiki). | 279 | - Write articles or make videos teaching how to use Get (they will be inserted in the Readme and in the future in our Wiki). |
238 | - Offering PRs for code/tests. | 280 | - Offering PRs for code/tests. |
239 | - Including new functions. | 281 | - Including new functions. |
@@ -12,25 +12,41 @@ | @@ -12,25 +12,41 @@ | ||
12 | 12 | ||
13 |  | 13 |  |
14 | 14 | ||
15 | +<h2> Pedimos desculpas por qualquer parte não traduzida aqui. O GetX é atualizado com muita frequência e as traduções podem não vir ao mesmo tempo. Então, para manter essa documentação pelo menos com tudo que a versão em inglês tem, eu vou deixar todos os textos não-traduzidos aqui (eu considero que é melhor ele estar lá em inglês do que não estar), então se alguém quiser traduzir, seria muito útil 😁</h2> | ||
16 | + | ||
17 | +- [Canais para comunicação e suporte:](#canais-para-comunicação-e-suporte-) | ||
15 | - [Sobre Get](#sobre-get) | 18 | - [Sobre Get](#sobre-get) |
16 | -- [Instalando e iniciando](#instalando-e-iniciando) | ||
17 | -- [Os três pilares](#os-três-pilares) | ||
18 | - - [Gerenciamento de estado](#gerenciamento-de-estado) | ||
19 | - - [Explicação completa](#explicação-completa) | ||
20 | - - [Gerenciamento de rotas](#gerenciamento-de-rotas) | ||
21 | - - [Explicação completa](#explicação-completa-1) | ||
22 | - - [Gerenciamento de Dependência](#gerenciamento-de-dependência) | ||
23 | - - [Explicação completa](#explicação-completa-2) | 19 | +- [Instalando](#instalando) |
20 | +- [App Counter usando GetX](#app-counter-usando-getx) | ||
21 | +- [Os três pilares](#os-tr-s-pilares) | ||
22 | + * [Gerenciamento de estado](#gerenciamento-de-estado) | ||
23 | + + [Reactive state manager](#reactive-state-manager) | ||
24 | + + [Mais detalhes sobre gerenciamento de estado](#mais-detalhes-sobre-gerenciamento-de-estado) | ||
25 | + + [Explicação em video do gerenciamento de estado](#explicação-em-video-do-gerenciamento-de-estado) | ||
26 | + * [Gerenciamento de rotas](#gerenciamento-de-rotas) | ||
27 | + + [Mais detalhes sobre gerenciamento de rotas](#mais-detalhes-sobre-gerenciamento-de-rotas) | ||
28 | + + [Explicação em video do gerenciamento de rotas](#explicação-em-video-do-gerenciamento-de-rotas) | ||
29 | + * [Gerenciamento de Dependência](#gerenciamento-de-dependência) | ||
30 | + + [Mais detalhes sobre gerenciamento de dependências](#mais-detalhes-sobre-gerenciamento-de-depend-ncias) | ||
31 | +- [Como contribuir](#como-contribuir) | ||
24 | - [Utilidades](#utilidades) | 32 | - [Utilidades](#utilidades) |
25 | - - [Mudar tema (changeTheme)](#mudar-tema-changetheme) | ||
26 | - - [Outras APIs avançadas](#outras-apis-avançadas) | ||
27 | - - [Configurações Globais opcionais e configurações manuais](#configurações-globais-opcionais-e-configurações-manuais) | 33 | + * [Mudar tema (changeTheme)](#mudar-tema--changetheme-) |
34 | + * [Outras APIs avançadas](#outras-apis-avan-adas) | ||
35 | + + [Configurações Globais opcionais e configurações manuais](#configura--es-globais-opcionais-e-configura--es-manuais) | ||
28 | - [Breaking Changes da versão 2 para 3](#breaking-changes-da-versão-2-para-3) | 36 | - [Breaking Changes da versão 2 para 3](#breaking-changes-da-versão-2-para-3) |
29 | - - [Tipagem Rx](#tipagem-rx) | ||
30 | - - [RxController e GetBuilder se uniram](#rxcontroller-e-getbuilder-se-uniram) | ||
31 | - - [Rotas nomeadas](#rotas-nomeadas) | ||
32 | - - [Porque essa mudança](#porque-essa-mudança) | ||
33 | -- [Por que GetX](#por-que-getx) | 37 | + * [Tipagem Rx](#tipagem-rx) |
38 | + * [RxController e GetBuilder se uniram](#rxcontroller-e-getbuilder-se-uniram) | ||
39 | + * [Rotas nomeadas](#rotas-nomeadas) | ||
40 | + + [Porque essa mudança](#porque-essa-mudança) | ||
41 | +- [Por que GetX?](#por-que-getx-) | ||
42 | + | ||
43 | +# Canais para comunicação e suporte: | ||
44 | + | ||
45 | +[**Slack (Inglês)**](https://communityinviter.com/apps/getxworkspace/getx) | ||
46 | + | ||
47 | +[**Discord (Inglês e Português)**](https://discord.com/invite/9Y3wK9) | ||
48 | + | ||
49 | +[**Telegram (Português)**](https://t.me/joinchat/PhdbJRmsZNpAqSLJL6bH7g) | ||
34 | 50 | ||
35 | # Sobre Get | 51 | # Sobre Get |
36 | 52 | ||
@@ -46,17 +62,7 @@ | @@ -46,17 +62,7 @@ | ||
46 | 62 | ||
47 | **GetX faz seu desenvolvimento mais produtivo, mas quer deixá-lo mais produtivo ainda? Adicione a extensão [GetX extension](https://marketplace.visualstudio.com/items?itemName=get-snippets.get-snippets) no seu VSCode**. Não disponível para outras IDEs por enquanto. | 63 | **GetX faz seu desenvolvimento mais produtivo, mas quer deixá-lo mais produtivo ainda? Adicione a extensão [GetX extension](https://marketplace.visualstudio.com/items?itemName=get-snippets.get-snippets) no seu VSCode**. Não disponível para outras IDEs por enquanto. |
48 | 64 | ||
49 | -Quer contribuir no projeto? Nós ficaremos orgulhosos de ressaltar você como um dos colaboradores. Aqui vai algumas formas em que você pode contribuir e fazer Get (e Flutter) ainda melhores | ||
50 | - | ||
51 | -- Ajudando a traduzir o README para outras linguagens. | ||
52 | -- Adicionando mais documentação ao README (até o momento, nem metade das funcionalidades do Get foram documentadas). | ||
53 | -- Fazendo artigos/vídeos ensinando a usar o Get (eles serão inseridos no README, e no futuro na nossa Wiki). | ||
54 | -- Fazendo PR's (Pull-Requests) para código/testes. | ||
55 | -- Incluindo novas funcionalidades. | ||
56 | - | ||
57 | -Qualquer contribuição é bem-vinda! | ||
58 | - | ||
59 | -# Instalando e iniciando | 65 | +# Instalando |
60 | 66 | ||
61 | Adicione Get ao seu arquivo pubspec.yaml | 67 | Adicione Get ao seu arquivo pubspec.yaml |
62 | 68 | ||
@@ -71,11 +77,7 @@ Importe o get nos arquivos que ele for usado: | @@ -71,11 +77,7 @@ Importe o get nos arquivos que ele for usado: | ||
71 | import 'package:get/get.dart'; | 77 | import 'package:get/get.dart'; |
72 | ``` | 78 | ``` |
73 | 79 | ||
74 | -# Os três pilares | ||
75 | - | ||
76 | -## Gerenciamento de estado | ||
77 | - | ||
78 | -**Veja uma explicação mais completa do gerenciamento de estado [aqui](./docs/pt_BR/state_management.md)** | 80 | +# App Counter usando GetX |
79 | 81 | ||
80 | O app 'Counter' criado por padrão no flutter com o comando `flutter create` tem mais de 100 linhas(incluindo os comentários). Para demonstrar o poder do Get, irei demonstrar como fazer o mesmo 'Counter' mudando o estado em cada toque trocando entre páginas e compartilhando o estado entre telas. Tudo de forma organizada, separando a lógica de negócio da View, COM SOMENTE 26 LINHAS INCLUINDO COMENTÁRIOS | 82 | O app 'Counter' criado por padrão no flutter com o comando `flutter create` tem mais de 100 linhas(incluindo os comentários). Para demonstrar o poder do Get, irei demonstrar como fazer o mesmo 'Counter' mudando o estado em cada toque trocando entre páginas e compartilhando o estado entre telas. Tudo de forma organizada, separando a lógica de negócio da View, COM SOMENTE 26 LINHAS INCLUINDO COMENTÁRIOS |
81 | 83 | ||
@@ -137,13 +139,62 @@ Get foi feito para funcionar com times, mas torna o trabalho de um desenvolvedor | @@ -137,13 +139,62 @@ Get foi feito para funcionar com times, mas torna o trabalho de um desenvolvedor | ||
137 | 139 | ||
138 | Melhore seus prazos, entregue tudo a tempo sem perder performance. Get não é para todos, mas se você identificar com o que foi dito acima, Get é para você! | 140 | Melhore seus prazos, entregue tudo a tempo sem perder performance. Get não é para todos, mas se você identificar com o que foi dito acima, Get é para você! |
139 | 141 | ||
140 | -### Explicação completa | ||
141 | 142 | ||
142 | -**Veja uma explicação mais completa do gerenciamento de estado [aqui](./docs/pt_BR/state_management.md)** | 143 | +# Os três pilares |
143 | 144 | ||
144 | -## Gerenciamento de rotas | 145 | +## Gerenciamento de estado |
146 | + | ||
147 | +Há atualmente vários gerenciadores de estados para o Flutter. Porém, a maioria deles envolve usar `ChangeNotifier` para atualizar os widgets e isso é uma abordagem muito ruim no quesito performance em aplicações de médio ou grande porte. Você pode checar na documentação oficial do Flutter que o [`ChangeNotifier` deveria ser usado com um ou no máximo dois listeners](https://api.flutter.dev/flutter/foundation/ChangeNotifier-class.html), fazendo-o praticamente inutilizável em qualquer aplicação média ou grande. | ||
148 | + | ||
149 | +Get não é melhor ou pior que nenhum gerenciador de estado, mas você deveria analisar esses pontos tanto quanto os argumentos abaixo para escolher entre usar Get na sua forma pura, ou usando-o em conjunto com outro gerenciador de estado. | ||
150 | + | ||
151 | +Definitivamente, Get não é o inimigo de nenhum gerenciador, porque Get é um microframework, não apenas um gerenciador, e pode ser usado tanto sozinho quanto em conjunto com eles. | ||
152 | + | ||
153 | +### Reactive state manager | ||
154 | + | ||
155 | +Programação reativa pode alienar muitas pessoas porque é dito que é complicado. GetX transforma a programação reativa em algo bem simples: | ||
156 | + | ||
157 | +* Você não precisa de criar StreamControllers | ||
158 | +* Você não precisa criar um StreamBuilder para cada variável | ||
159 | +* Você não precisa criar uma classe para cada estado | ||
160 | +* Você não precisa criar um get para o valor inicial | ||
161 | + | ||
162 | +Programação reativa com o Get é tão fácil quanto usar setState. | ||
163 | + | ||
164 | +Vamos imaginar que você tenha uma variável e quer que toda vez que ela alterar, todos os widgets que a usam são automaticamente alterados. | ||
165 | + | ||
166 | +Essa é sua variável: | ||
167 | + | ||
168 | +```dart | ||
169 | +var name = 'Jonatas Borges'; | ||
170 | +``` | ||
145 | 171 | ||
146 | -Veja uma explicação mais completa do gerenciamento de rotas [aqui](./docs/pt_BR/route_management.md) | 172 | +Para fazer dela uma variável observável, você só precisa adicionar `.obs` no final: |
173 | + | ||
174 | +```dart | ||
175 | +var name = 'Jonatas Borges'.obs; | ||
176 | +``` | ||
177 | + | ||
178 | +E Na UI, quando quiser mostrar a variável e escutar as mudanças dela, simplesmente faça isso: | ||
179 | + | ||
180 | + | ||
181 | +```dart | ||
182 | +Obx (() => Text (controller.name)); | ||
183 | +``` | ||
184 | + | ||
185 | +Só isso. É *simples assim*; | ||
186 | + | ||
187 | +### Mais detalhes sobre gerenciamento de estado | ||
188 | + | ||
189 | +**Veja uma explicação mais completa do gerenciamento de estado [aqui](./docs/pt_BR/state_management.md). Lá terá mais exemplos e também a diferença do simple state manager do reactive state manager** | ||
190 | + | ||
191 | +### Explicação em video do gerenciamento de estado | ||
192 | + | ||
193 | +Amateur Coder fez um vídeo ótimo sobre o gerenciamento de estado! (em inglês). Link: [Complete GetX State Management](https://www.youtube.com/watch?v=CNpXbeI_slw) | ||
194 | + | ||
195 | +Você vai ter uma boa idea do poder do GetX | ||
196 | + | ||
197 | +## Gerenciamento de rotas | ||
147 | 198 | ||
148 | Para navegar para uma próxima tela: | 199 | Para navegar para uma próxima tela: |
149 | 200 | ||
@@ -177,13 +228,19 @@ var dados = await Get.to(Pagamento()); | @@ -177,13 +228,19 @@ var dados = await Get.to(Pagamento()); | ||
177 | 228 | ||
178 | Notou que você não precisou usar `context` para fazer nenhuma dessas coisas? Essa é uma das maiores vantagens de usar o gerenciamento de rotas do GetX. Com isso, você pode executar todos esse métodos de dentro da classe Controller, sem preocupações. | 229 | Notou que você não precisou usar `context` para fazer nenhuma dessas coisas? Essa é uma das maiores vantagens de usar o gerenciamento de rotas do GetX. Com isso, você pode executar todos esse métodos de dentro da classe Controller, sem preocupações. |
179 | 230 | ||
180 | -### Explicação completa | 231 | +### Mais detalhes sobre gerenciamento de rotas |
181 | 232 | ||
182 | **GetX funciona com rotas nomeadas também! Veja uma explicação mais completa do gerenciamento de rotas [aqui](./docs/pt_BR/route_management.md)** | 233 | **GetX funciona com rotas nomeadas também! Veja uma explicação mais completa do gerenciamento de rotas [aqui](./docs/pt_BR/route_management.md)** |
183 | 234 | ||
184 | -## Gerenciamento de Dependência | 235 | +### Explicação em video do gerenciamento de rotas |
185 | 236 | ||
186 | -**Veja uma explicação mais completa do gerenciamento de dependência [aqui](./docs/pt_BR/dependency_management.md)** | 237 | +Amateur Coder fez um outro vídeo excelente sobre gerenciamento de rotas! Link: [Complete Getx Navigation](https://www.youtube.com/watch?v=RaqPIoJSTtI) |
238 | + | ||
239 | +O Próprio criador desse package, jonatas, fez um vídeo sobre o get. Esse é o vídeo de como ele fez o app do example, um app que usa a api do coronavírus pra mostrar dados | ||
240 | + | ||
241 | +É muito interessante porque tem várias coisas do get lá pra se aprender. Link: [Gestão de estados DESCOMPLICADA com GetX aplicado a comunicação API Rest](https://www.youtube.com/watch?v=3qjebK6kwSM) | ||
242 | + | ||
243 | +## Gerenciamento de Dependência | ||
187 | 244 | ||
188 | - Nota: Se você está usando o gerenciador de estado do Get, você não precisa se preocupar com isso, só leia a documentação, mas dê uma atenção a api `Bindings`, que vai fazer tudo isso automaticamente para você. | 245 | - Nota: Se você está usando o gerenciador de estado do Get, você não precisa se preocupar com isso, só leia a documentação, mas dê uma atenção a api `Bindings`, que vai fazer tudo isso automaticamente para você. |
189 | 246 | ||
@@ -223,10 +280,22 @@ Get.lazyPut<Service>(()=> ApiMock()); | @@ -223,10 +280,22 @@ Get.lazyPut<Service>(()=> ApiMock()); | ||
223 | /// ApiMock só será chamado quando alguém usar o Get.find<Service> pela primeira vez | 280 | /// ApiMock só será chamado quando alguém usar o Get.find<Service> pela primeira vez |
224 | ``` | 281 | ``` |
225 | 282 | ||
226 | -### Explicação completa | 283 | +### Mais detalhes sobre gerenciamento de dependências |
227 | 284 | ||
228 | **Veja uma explicação mais completa do gerenciamento de dependência [aqui](./docs/pt_BR/dependency_management.md)** | 285 | **Veja uma explicação mais completa do gerenciamento de dependência [aqui](./docs/pt_BR/dependency_management.md)** |
229 | 286 | ||
287 | +# Como contribuir | ||
288 | + | ||
289 | +Quer contribuir no projeto? Nós ficaremos orgulhosos de ressaltar você como um dos colaboradores. Aqui vai algumas formas em que você pode contribuir e fazer Get (e Flutter) ainda melhores | ||
290 | + | ||
291 | +- Ajudando a traduzir o README para outras linguagens. | ||
292 | +- Adicionando mais documentação ao README (até o momento, várias das funcionalidades do Get não foram documentadas). | ||
293 | +- Fazendo artigos/vídeos ensinando a usar o Get (eles serão inseridos no README, e no futuro na nossa Wiki). | ||
294 | +- Fazendo PR's (Pull-Requests) para código/testes. | ||
295 | +- Incluindo novas funcionalidades. | ||
296 | + | ||
297 | +Qualquer contribuição é bem-vinda! | ||
298 | + | ||
230 | # Utilidades | 299 | # Utilidades |
231 | 300 | ||
232 | ## Mudar tema (changeTheme) | 301 | ## Mudar tema (changeTheme) |
@@ -464,7 +464,7 @@ Get.config( | @@ -464,7 +464,7 @@ Get.config( | ||
464 | defaultPopGesture = true, | 464 | defaultPopGesture = true, |
465 | defaultTransition = Transitions.cupertino | 465 | defaultTransition = Transitions.cupertino |
466 | ) | 466 | ) |
467 | - | 467 | +``` |
468 | ### Nested Navigators | 468 | ### Nested Navigators |
469 | 469 | ||
470 | Get fez a navegação aninhada no Flutter mais fácil ainda. Você não precisa do `context`, e você encontrará sua `navigation stack` pela ID. | 470 | Get fez a navegação aninhada no Flutter mais fácil ainda. Você não precisa do `context`, e você encontrará sua `navigation stack` pela ID. |
1 | 1 | ||
2 | ## Gerenciador de estado simples | 2 | ## Gerenciador de estado simples |
3 | 3 | ||
4 | -Há atualmente vários gerenciadores de estados para o Flutter. Porém, a maioria deles envolve usar `ChangeNotifier` para atualizar os widgets e isso é uma abordagem muito ruim no quesito performance em aplicações de médio ou grande porte. Você pode checar na documentação oficial do Flutter que o [`ChangeNotifier` deveria ser usado com um ou no máximo dois listeners](https://api.flutter.dev/flutter/foundation/ChangeNotifier-class.html), fazendo-o praticamente inutilizável em qualquer aplicação média ou grande. Outros gerenciadores de estado são bons, mas tem suas nuances. BLoC é bem seguro e eficiente, mas é muito complexo (especialmente para iniciantes), o que impediu pessoas de desenvolverem com Flutter. MobX é mais fácil que o BLoc e é reativo, quase perfeito eu diria, mas você precisa usar um code generator que, para aplicações de grande porte, reduz a produtividade (você terá que beber vários cafés até que seu código esteja pronto denovo depois de um `flutter clean`, o que não é culpa do MobX, na verdade o code generator que é muito lento!). Provider usa o `InheritedWidget` para entregar o mesmo listener, como uma forma de solucionar o problema reportado acima com o ChangeNotifier, o que indica que qualquer acesso ao ChangeNotifier dele tem que ser dentro da árvore de widgets por causa do `context` necessário para acessar o Inherited. | 4 | +Há atualmente vários gerenciadores de estados para o Flutter. Porém, a maioria deles envolve usar `ChangeNotifier` para atualizar os widgets e isso é uma abordagem muito ruim no quesito performance em aplicações de médio ou grande porte. Você pode checar na documentação oficial do Flutter que o [`ChangeNotifier` deveria ser usado com um ou no máximo dois listeners](https://api.flutter.dev/flutter/foundation/ChangeNotifier-class.html), fazendo-o praticamente inutilizável em qualquer aplicação média ou grande. |
5 | 5 | ||
6 | -Get não é melhor ou pior que nenhum gerenciador de estado, mas você deveria analisar esses pontos tanto quanto os argumentos abaixo para escolher entre usar Get na sua forma pura, ou usando-o em conjunto com outro gerenciador de estado. Definitivamente, Get não é o inimigo de nenhum gerenciador, porque Get é um microframework, não apenas um gerenciador, e pode ser usado tanto sozinho quanto em conjunto com eles. | 6 | +Outros gerenciadores de estado são bons, mas tem suas nuances. |
7 | 7 | ||
8 | -Get tem um gerenciador de estado que é extremamente leve e fácil (escrito em apenas 95 linha de código), que não usa ChangeNotifier, vai atender a necessidade especialmente daqueles novos no Flutter, e não vai causar problemas em aplicações de grande porte. | 8 | +* BLoC é bem seguro e eficiente, mas é muito complexo (especialmente para iniciantes), o que impediu pessoas de desenvolverem com Flutter. |
9 | +* MobX é mais fácil que o BLoc e é reativo, quase perfeito eu diria, mas você precisa usar um code generator que, para aplicações de grande porte, reduz a produtividade (você terá que beber vários cafés até que seu código esteja pronto denovo depois de um `flutter clean`, o que não é culpa do MobX, na verdade o code generator que é muito lento!). | ||
10 | +* Provider usa o `InheritedWidget` para entregar o mesmo listener, como uma forma de solucionar o problema reportado acima com o ChangeNotifier, o que indica que qualquer acesso ao ChangeNotifier dele tem que ser dentro da árvore de widgets por causa do `context` necessário para acessar o Inherited. | ||
11 | + | ||
12 | +Get não é melhor ou pior que nenhum gerenciador de estado, mas você deveria analisar esses pontos tanto quanto os argumentos abaixo para escolher entre usar Get na sua forma pura, ou usando-o em conjunto com outro gerenciador de estado. | ||
13 | + | ||
14 | +Definitivamente, Get não é o inimigo de nenhum gerenciador, porque Get é um microframework, não apenas um gerenciador, e pode ser usado tanto sozinho quanto em conjunto com eles. | ||
15 | + | ||
16 | +Get tem um gerenciador de estado que é extremamente leve e fácil que não usa ChangeNotifier, vai atender a necessidade especialmente daqueles novos no Flutter, e não vai causar problemas em aplicações de grande porte. | ||
9 | 17 | ||
10 | **Que melhoras na performance o Get traz?** | 18 | **Que melhoras na performance o Get traz?** |
11 | 19 |
-
Please register or login to post a comment