jmsandamil

Update README-es.md

1 ![](get.png) 1 ![](get.png)
2 2
3 -*Idiomas: Español (este archivo), [Inglés](README.md), [Portugués de Brasil](README.pt-br.md), [Polaco](README.pl.md).* 3 +_Idiomas: Español (este archivo), [Inglés](README.md), [Portugués de Brasil](README.pt-br.md), [Polaco](README.pl.md)._
4 4
5 [![pub package](https://img.shields.io/pub/v/get.svg?label=get&color=blue)](https://pub.dev/packages/get) 5 [![pub package](https://img.shields.io/pub/v/get.svg?label=get&color=blue)](https://pub.dev/packages/get)
6 ![building](https://github.com/jonataslaw/get/workflows/build/badge.svg) 6 ![building](https://github.com/jonataslaw/get/workflows/build/badge.svg)
7 [![Gitter](https://badges.gitter.im/flutter_get/community.svg)](https://gitter.im/flutter_get/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 7 [![Gitter](https://badges.gitter.im/flutter_get/community.svg)](https://gitter.im/flutter_get/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
8 <a href="https://github.com/Solido/awesome-flutter"> 8 <a href="https://github.com/Solido/awesome-flutter">
9 - <img alt="Awesome Flutter" src="https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true&style=flat-square" /> 9 +<img alt="Awesome Flutter" src="https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true&style=flat-square" />
10 </a> 10 </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> 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 ![](getx.png) 12 ![](getx.png)
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> 14 +<h3>Lamentamos la inconsistencia en la traducción. El paquete GetX se actualiza con bastante frecuencia y es posible que las traducciones a documentos no sean tan rápidas. Entonces, para que esta documentación aún tenga todo el contenido, dejaré aquí todos los textos nuevos sin traducir (considero que es mejor tener los documentos en inglés que no tenerlos), por lo que si alguien quiere traducir, sería de gran ayuda 😁</h3>
15 15
16 - [Communication and support channels:](#communication-and-support-channels) 16 - [Communication and support channels:](#communication-and-support-channels)
17 - [Sobre GetX](#sobre-getx) 17 - [Sobre GetX](#sobre-getx)
18 - [Como contribuir](#como-contribuir) 18 - [Como contribuir](#como-contribuir)
19 -- [Installing](#installing)  
20 -- [Proyeto Counter no GetX](#proyeto-counter-no-getx) 19 +- [Instalando](#installing)
  20 +- [Proyecto Counter en GetX](#proyecto-counter-no-getx)
21 - [Los tres pilares](#los-tres-pilares) 21 - [Los tres pilares](#los-tres-pilares)
22 - [Gestión del Estado](#gestión-del-estado) 22 - [Gestión del Estado](#gestión-del-estado)
23 - - [Reactivo STATE_MANAGER](#reactivo-state_manager) 23 + - [STATE_MANAGER Reactivo](#reactivo-state_manager)
24 - [Más detalles sobre la gestión del estado.](#más-detalles-sobre-la-gestión-del-estado) 24 - [Más detalles sobre la gestión del estado.](#más-detalles-sobre-la-gestión-del-estado)
25 - - [Video explanation about state management](#video-explanation-about-state-management) 25 + - [Explicación en video sobre state management](#video-explanation-about-state-management)
26 - [Gestión de Rutas](#gestión-de-rutas) 26 - [Gestión de Rutas](#gestión-de-rutas)
27 - [Más detalles sobre la gestión de rutas.](#más-detalles-sobre-la-gestión-de-rutas) 27 - [Más detalles sobre la gestión de rutas.](#más-detalles-sobre-la-gestión-de-rutas)
28 - - [Video Explanation](#video-explanation) 28 + - [Explicación del video](#video-explanation)
29 - [Gestión de dependencias](#gestión-de-dependencias) 29 - [Gestión de dependencias](#gestión-de-dependencias)
30 - [Más detalles sobre la gestión de dependencias.](#más-detalles-sobre-la-gestión-de-dependencias) 30 - [Más detalles sobre la gestión de dependencias.](#más-detalles-sobre-la-gestión-de-dependencias)
31 -- [Utils](#utils) 31 +- [Utilidades](#utils)
32 - [Cambiar de tema](#cambiar-de-tema) 32 - [Cambiar de tema](#cambiar-de-tema)
33 - [Otras API avanzadas y configuraciones manuales](#otras-api-avanzadas-y-configuraciones-manuales) 33 - [Otras API avanzadas y configuraciones manuales](#otras-api-avanzadas-y-configuraciones-manuales)
34 - [Configuraciones globales opcionales](#configuraciones-globales-opcionales) 34 - [Configuraciones globales opcionales](#configuraciones-globales-opcionales)
35 - - [Video explanation of Other GetX Features](#video-explanation-of-other-getx-features) 35 + - [Explicación en video de Other GetX Features](#video-explanation-of-other-getx-features)
36 - [Rompiendo cambios desde 2.0](#rompiendo-cambios-desde-20) 36 - [Rompiendo cambios desde 2.0](#rompiendo-cambios-desde-20)
37 - [¿Por qué Getx?](#por-qué-getx) 37 - [¿Por qué Getx?](#por-qué-getx)
38 38
39 # Communication and support channels: 39 # Communication and support channels:
40 40
41 -[**Slack (English)**](https://communityinviter.com/apps/getxworkspace/getx) 41 +[**Slack (Inglés)**](https://communityinviter.com/apps/getxworkspace/getx)
42 42
43 -[**Discord (English and Portuguese)**](https://discord.com/invite/9Y3wK9) 43 +[**Discord (Ingles y Portugués)**](https://discord.com/invite/9Y3wK9)
44 44
45 -[**Telegram (Portuguese)**](https://t.me/joinchat/PhdbJRmsZNpAqSLJL6bH7g) 45 +[**Telegram (Portugués)**](https://t.me/joinchat/PhdbJRmsZNpAqSLJL6bH7g)
46 46
47 # Sobre GetX 47 # Sobre GetX
48 48
49 - GetX es una solución extra ligera y potente para Flutter. Combina gestión de estádo de alto rendimiento, inyección de dependencia inteligente y gestión de rutas, de forma rápida y práctica. 49 - GetX es una solución extra ligera y potente para Flutter. Combina gestión de estádo de alto rendimiento, inyección de dependencia inteligente y gestión de rutas, de forma rápida y práctica.
50 50
51 -- GetX no es para todos, se enfoca en el consumo mínimo de recursos (rendimiento) ([Mira los puntos de referencia](https://github.com/jonataslaw/benchmarks)), usando una sintaxis fácil y agradable (productividad), que permite el desacoplamiento total de la vista y la lógica de negocio (organización). 51 +- GetX tiene 3 principios básicos, esto significa que esta es la prioridad para todos los recursos de la biblioteca.
  52 + **PERFORMANCE:** GetX se centra en el rendimiento y el consumo mínimo de recursos. Los puntos de referencia casi siempre no son importantes en el mundo real, pero si lo desea, aquí hay un indicador de consumo.([benchmarks](https://github.com/jonataslaw/benchmarks)), donde GetX lo hace mejor que otros enfoques de gestión estatal, por ejemplo. La diferencia no es grande, pero muestra nuestra preocupación por no desperdiciar sus recursos.
  53 + **PRODUCTIVITY:** GetX utiliza una sintaxis fácil y agradable.
  54 + **ORGANIZATION:** GetX permite el desacoplamiento total de la vista de la lógica empresarial.
52 55
53 -- GetX permite ahorrar horas de desarrollo, extraer el máximo rendimiento de una aplicación, siendo tatno fácil de implementar para principiantes como precisa para expertos. Navegue sin contexto, abra dialogs, snackbars y bottomsheets desde cualquier parte de su código, gestione estados e inyecte dependencias de una manera fácil y práctica. GetX es seguro, estable, actualizado y ofrece una amplia gama de APIs que no están presentes en el framework por defecto. 56 +* GetX ahorrará horas de desarrollo y extraerá el máximo rendimiento que su aplicación puede ofrecer, siendo fácil para los principiantes y precisa para los expertos. Navega sin contexto, abre diálogos, snackbars o bottomsheets desde cualquier lugar de tu código, gestiona estados e inyecta dependencias de forma fácil y práctica. Get es seguro, estable, actualizado y ofrece una amplia gama de API que no están presentes en el marco predeterminado.
54 57
55 -- Tiene una multitud de funciones que le permiten comenzar a programar sin preocuparse por nada. Cada una de estas funciones se encuentra en contenedores separados y solo se inicia después de su uso. Si solo usa State Management, solo State Management se compilará. Si solo usa rutas, no se compilará nada de gestión de estado. Puede compilar el repositorio de referencia, y verá que usando solo la gestión de estado de GetX, la aplicación compilada se ha vuelto más pequeña que todas las demás aplicaciones de otros paquetes que solo tienen la gestión de estado, porque nada de lo que no se use se compilará en su código, y cada solución GetX fue diseñada para ser extra liviana. El mérito aquí también proviene del AOT de Flutter, que es increíble y logra eliminar los recursos no utilizados como ningún otro framework lo hace. 58 +- GetX no es bloated. Tiene una multitud de características que le permiten comenzar a programar sin preocuparse por nada, pero cada una de estas características se encuentran en contenedores separados y solo se inician después de su uso. Si solo usa State Management, solo se compilará State Management. Si solo usa rutas, no se compilará nada de la administración estatal. Puede compilar el repositorio de referencia y verá que al usar solo la administración de estado de Get, la aplicación compilada con Get se ha vuelto más pequeña que todas las demás aplicaciones que solo tienen la administración de estado de otros paquetes, porque nada que no se use se compilará en su código, y cada solución GetX fue diseñada para ser muy liviana. El mérito aquí también proviene del movimiento del árbol de Flutter, que es increíble y logra eliminar los recursos no utilizados como ningún otro marco lo hace.
56 59
57 **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)** 60 **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)**
58 61
59 # Como contribuir 62 # Como contribuir
60 63
61 -*¿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.* 64 +_¿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._
62 65
63 - Ayudando a traducir el archivo Léame a otros idiomas. 66 - Ayudando a traducir el archivo Léame a otros idiomas.
64 67
@@ -79,13 +82,13 @@ dependencies: @@ -79,13 +82,13 @@ dependencies:
79 get: 82 get:
80 ``` 83 ```
81 84
82 -Import get in files that it will be used: 85 +Importar archivos get que se utilizarán:
83 86
84 ```dart 87 ```dart
85 import 'package:get/get.dart'; 88 import 'package:get/get.dart';
86 ``` 89 ```
87 90
88 -# Proyeto Counter no GetX 91 +# Proyecto Counter no GetX
89 92
90 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 93 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
91 94
@@ -100,10 +103,10 @@ void main() => runApp(GetMaterialApp(home: Home())); @@ -100,10 +103,10 @@ void main() => runApp(GetMaterialApp(home: Home()));
100 103
101 **Nota**: esto no modifica el MaterialApp del Flutter, GetMaterialApp no es una MaterialApp modificado, es solo un Widget preconfigurado, que tiene como child un MaterialApp por defecto. Puede configurar esto manualmente, pero definitivamente no es necesario. GetMaterialApp creará rutas, las inyectará, inyectará traducciones, inyectará todo lo que necesita para la navegación de rutas. Si usa Get solo para la gestión de estado o dependencias, no es necesario usar GetMaterialApp. GetMaterialApp es necesario para rutas, snackbars, internacionalización, bottomSheets, diálogos y APIs de alto nivel relacionadas con rutas y ausencia de contexto. 104 **Nota**: esto no modifica el MaterialApp del Flutter, GetMaterialApp no es una MaterialApp modificado, es solo un Widget preconfigurado, que tiene como child un MaterialApp por defecto. Puede configurar esto manualmente, pero definitivamente no es necesario. GetMaterialApp creará rutas, las inyectará, inyectará traducciones, inyectará todo lo que necesita para la navegación de rutas. Si usa Get solo para la gestión de estado o dependencias, no es necesario usar GetMaterialApp. GetMaterialApp es necesario para rutas, snackbars, internacionalización, bottomSheets, diálogos y APIs de alto nivel relacionadas con rutas y ausencia de contexto.
102 105
103 -**Note²:** This step in only necessary if you gonna use route management (`Get.to()`, `Get.back()` and so on). If you not gonna use it then it is not necessary to do step 1 106 +**Note²:** Este paso solo es necesario si vas a usar route management (`Get.to()`, `Get.back()` y así). Si no lo va a usar, no es necesario que realice el paso 1
104 107
105 - Paso 2: 108 - Paso 2:
106 -Cree su clase con la lógica de negocio colocando todas las variables, métodos y controladores dentro de ella. Puede hacer que cualquier variable sea observable usando un simple ".obs". 109 + Cree su clase con la lógica de negocio colocando todas las variables, métodos y controladores dentro de ella. Puede hacer que cualquier variable sea observable usando un simple ".obs".
107 110
108 ```dart 111 ```dart
109 class Controller extends GetxController { 112 class Controller extends GetxController {
@@ -113,20 +116,20 @@ class Controller extends GetxController { @@ -113,20 +116,20 @@ class Controller extends GetxController {
113 ``` 116 ```
114 117
115 - Paso 3: 118 - Paso 3:
116 -Cree su vista, use StatelessWidget y ahorre algo de RAM, con GetX ya no necesitará usar StatefulWidget. 119 + Cree su vista, use StatelessWidget y ahorre algo de RAM, con GetX ya no necesitará usar StatefulWidget.
117 120
118 ```dart 121 ```dart
119 class Home extends StatelessWidget { 122 class Home extends StatelessWidget {
120 123
121 - // Instantiate your class using Get.put() to make it available for all "child" routes there. 124 + // Cree una instancia de su clase usando Get.put () para que esté disponible para todas las rutas "secundarias" allí.
122 final Controller c = Get.put(Controller()); 125 final Controller c = Get.put(Controller());
123 126
124 @override 127 @override
125 Widget build(context) => Scaffold( 128 Widget build(context) => Scaffold(
126 - // Use Obx(()=> to update Text() whenever count is changed. 129 + // Utilice Obx (() => para actualizar Text () siempre que se cambie el recuento.
127 appBar: AppBar(title: Obx(() => Text("Clicks: " + c.count.string))), 130 appBar: AppBar(title: Obx(() => Text("Clicks: " + c.count.string))),
128 131
129 - // Replace the 8 lines Navigator.push by a simple Get.to(). You don't need context 132 + // Reemplace el Navigator.push de 8 líneas por un simple Get.to (). No necesitas contexto
130 body: Center(child: RaisedButton( 133 body: Center(child: RaisedButton(
131 child: Text("Go to Other"), onPressed: () => Get.to(Other()))), 134 child: Text("Go to Other"), onPressed: () => Get.to(Other()))),
132 floatingActionButton: 135 floatingActionButton:
@@ -134,12 +137,12 @@ class Home extends StatelessWidget { @@ -134,12 +137,12 @@ class Home extends StatelessWidget {
134 } 137 }
135 138
136 class Other extends StatelessWidget { 139 class Other extends StatelessWidget {
137 - // You can ask Get to find a Controller that is being used by another page and redirect you to it. 140 + // Puede pedirle a Get que busque un controlador que está siendo utilizado por otra página y le redirija a él.
138 final Controller c = Get.find(); 141 final Controller c = Get.find();
139 142
140 @override 143 @override
141 Widget build(context){ 144 Widget build(context){
142 - // Access the updated count variable 145 + // Acceder a la variable de recuento actualizada
143 return Scaffold(body: Center(child: Text(c.count.string))); 146 return Scaffold(body: Center(child: Text(c.count.string)));
144 } 147 }
145 } 148 }
@@ -190,12 +193,11 @@ Obx(() => Text (controller.name)); @@ -190,12 +193,11 @@ Obx(() => Text (controller.name));
190 193
191 **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** 194 **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**
192 195
193 -### Video explanation about state management 196 +### Explicación en video sobre state management
194 197
  198 +Amateur Coder hizo un video increíble sobre state management! Link: [Complete GetX State Management](https://www.youtube.com/watch?v=CNpXbeI_slw)
195 199
196 -Amateur Coder did an awesome video about state management! Link: [Complete GetX State Management](https://www.youtube.com/watch?v=CNpXbeI_slw)  
197 -  
198 -You will get a good idea of GetX power. 200 +Obtendrá una buena idea de la potencia de GetX.
199 201
200 ## Gestión de Rutas 202 ## Gestión de Rutas
201 203
@@ -233,9 +235,9 @@ var data = await Get.to(Payment()); @@ -233,9 +235,9 @@ var data = await Get.to(Payment());
233 235
234 **Vea una explicación más detallada de la Gestión de Rutas [aquí](./docs/es_ES/route_management.md).** 236 **Vea una explicación más detallada de la Gestión de Rutas [aquí](./docs/es_ES/route_management.md).**
235 237
236 -### Video Explanation 238 +### Explicación del video
237 239
238 -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) 240 +Amateur Coder hizo un excelente video que cubre route management con Get! aquí esta el link: [Complete Getx Navigation](https://www.youtube.com/watch?v=RaqPIoJSTtI)
239 241
240 ## Gestión de dependencias 242 ## Gestión de dependencias
241 243
@@ -253,11 +255,11 @@ En lugar de crear una instancia de su clase dentro de la clase que está utiliza @@ -253,11 +255,11 @@ En lugar de crear una instancia de su clase dentro de la clase que está utiliza
253 controller.fetchApi(); 255 controller.fetchApi();
254 ``` 256 ```
255 257
256 -Imagine que ha navegado a través de numerosas rutas y necesita datos que quedaron en su controlador, necesitaría un gestor de estado combinado con Providere o Get_it, ¿correcto? No con GetX. Solo necesita pedirle a GetX que "encuentre" su controlador, no necesita dependencias adicionales: 258 +Imagine que ha navegado a través de numerosas rutas y necesita datos que quedaron en su controlador, necesitaría un gestor de estado combinado con Provider o Get_it, ¿correcto? No con GetX. Solo necesita pedirle a GetX que "encuentre" su controlador, no necesita dependencias adicionales:
257 259
258 ```dart 260 ```dart
259 Controller controller = Get.find(); 261 Controller controller = Get.find();
260 -//Yes, it looks like Magic, Get will find your controller, and will deliver it to you. You can have 1 million controllers instantiated, Get will always give you the right controller. 262 +//Sí, parece que es magia, Get encontrará su controlador y se lo entregará. Puede tener 1 millón de controladores instanciados, Get siempre le dará el controlador correcto.
261 ``` 263 ```
262 264
263 Y luego podrá recuperar los datos de su controlador que se obtuvieron allí: 265 Y luego podrá recuperar los datos de su controlador que se obtuvieron allí:
@@ -270,20 +272,20 @@ Text(controller.textFromApi); @@ -270,20 +272,20 @@ Text(controller.textFromApi);
270 272
271 ```dart 273 ```dart
272 Get.lazyPut<Service>(()=> ApiMock()); 274 Get.lazyPut<Service>(()=> ApiMock());
273 -/// ApiMock will only be called when someone uses Get.find<Service> for the first time 275 +/// ApiMock solo se llamará cuando alguien use Get.find<Service> por primera vez
274 ``` 276 ```
275 277
276 ### Más detalles sobre la gestión de dependencias. 278 ### Más detalles sobre la gestión de dependencias.
277 279
278 **Vea una explicación más detallada de la Gestión de dependencias [aquí](./docs/es_ES/dependency_management.md).** 280 **Vea una explicación más detallada de la Gestión de dependencias [aquí](./docs/es_ES/dependency_management.md).**
279 281
280 -# Utils 282 +# Utilidades
281 283
282 ## Cambiar de tema 284 ## Cambiar de tema
283 285
284 No utilice ningún widget de nivel superior que GetMaterialApp para actualizarlo. Esto puede activar claves duplicadas. Mucha gente está acostumbrada al enfoque prehistórico de crear un widget "ThemeProvider" solo para cambiar el tema de su aplicación, y esto definitivamente NO es necesario con GetX. 286 No utilice ningún widget de nivel superior que GetMaterialApp para actualizarlo. Esto puede activar claves duplicadas. Mucha gente está acostumbrada al enfoque prehistórico de crear un widget "ThemeProvider" solo para cambiar el tema de su aplicación, y esto definitivamente NO es necesario con GetX.
285 287
286 -Puede crear su tema personalizado y simplemente agregarlo dentro de Get.changeTheme sin ningun boilerplate para eso: 288 +Puede crear su tema personalizado y simplemente agregarlo dentro de Get.changeTheme sin ningún boilerplate para eso:
287 289
288 ```dart 290 ```dart
289 Get.changeTheme(ThemeData.light()); 291 Get.changeTheme(ThemeData.light());
@@ -322,116 +324,116 @@ MaterialApp( @@ -322,116 +324,116 @@ MaterialApp(
322 ``` 324 ```
323 325
324 ```dart 326 ```dart
325 -// give the current args from currentScreen 327 +// dar los argumentos actuales de currentScreen
326 Get.arguments 328 Get.arguments
327 329
328 -// give arguments of previous route 330 +// dar argumentos de la ruta anterior
329 Get.previousArguments 331 Get.previousArguments
330 332
331 -// give name of previous route 333 +// dar el nombre de la ruta anterior
332 Get.previousRoute 334 Get.previousRoute
333 335
334 -// give the raw route to access for example, rawRoute.isFirst() 336 +// dar la ruta sin procesar para acceder, por ejemplo, rawRoute.isFirst()
335 Get.rawRoute 337 Get.rawRoute
336 338
337 -// give access to Rounting API from GetObserver 339 +// dar acceso a Routing API desde GetObserver
338 Get.routing 340 Get.routing
339 341
340 -// check if snackbar is open 342 +// comprobar si la cafetería está abierta
341 Get.isSnackbarOpen 343 Get.isSnackbarOpen
342 344
343 -// check if dialog is open 345 +// comprobar si el diálogo está abierto
344 Get.isDialogOpen 346 Get.isDialogOpen
345 347
346 -// check if bottomsheet is open 348 +// comprobar si bottomsheet está abierto
347 Get.isBottomSheetOpen 349 Get.isBottomSheetOpen
348 350
349 -// remove one route. 351 +// eliminar una ruta.
350 Get.removeRoute() 352 Get.removeRoute()
351 353
352 -// back repeatedly until the predicate returns true. 354 +// volver repetidamente hasta que predicate devuelva verdadero.
353 Get.until() 355 Get.until()
354 356
355 -// go to next route and remove all the previous routes until the predicate returns true. 357 +//ir a la siguiente ruta y eliminar todas las rutas anteriores hasta que predicate devuelva verdadero.
356 Get.offUntil() 358 Get.offUntil()
357 359
358 -// go to next named route and remove all the previous routes until the predicate returns true. 360 +// ir a la siguiente ruta con nombre y eliminar todas las rutas anteriores hasta que predicate devuelve verdadero.
359 Get.offNamedUntil() 361 Get.offNamedUntil()
360 362
361 -//Check in what platform the app is running 363 +//Verifique en qué plataforma se ejecuta la aplicación
362 GetPlatform.isAndroid 364 GetPlatform.isAndroid
363 GetPlatform.isIOS 365 GetPlatform.isIOS
364 GetPlatform.isWeb 366 GetPlatform.isWeb
365 367
366 -// Equivalent to the method: MediaQuery.of(context).size.height, but they are immutable. 368 +// Equivalente al método: MediaQuery.of(context).size.height, pero son inmutables.
367 Get.height 369 Get.height
368 Get.width 370 Get.width
369 371
370 -// Gives the context of the screen in the foreground anywhere in your code. 372 +// Da el contexto de la pantalla en primer plano en cualquier parte de su código.
371 Get.context 373 Get.context
372 374
373 -// Gives the context of the snackbar/dialog/bottomsheet in the foreground anywhere in your code. 375 +// Da el contexto de la barra de bocadillos / diálogo / hoja inferior en primer plano en cualquier parte de su código.
374 Get.contextOverlay 376 Get.contextOverlay
375 377
376 -// Note: the following methods are extensions on context. Since you  
377 -// have access to context in any place of your UI, you can use it anywhere in the UI code 378 +// Note: los siguientes métodos son extensiones de context. Desde que tu
  379 +// tiene acceso al contexto en cualquier lugar de su interfaz de usuario, puede usarlo en cualquier lugar del código de la interfaz de usuario
378 380
379 -// If you need a changeable height/width (like browser windows that can be scaled) you will need to use context. 381 +// Si necesita un cambiable height/width (como las ventanas del navegador que se pueden escalar) necesitará usar context.
380 context.width 382 context.width
381 context.height 383 context.height
382 384
383 385
384 386
385 -// gives you the power to define half the screen now, a third of it and so on.  
386 -//Useful for responsive applications. 387 +// le da el poder de definir la mitad de la pantalla ahora, un tercio y así sucesivamente.
  388 +// Útil para aplicaciones receptivas.
387 // param dividedBy (double) optional - default: 1 389 // param dividedBy (double) optional - default: 1
388 // param reducedBy (double) optional - default: 0 390 // param reducedBy (double) optional - default: 0
389 context.heightTransformer() 391 context.heightTransformer()
390 context.widthTransformer() 392 context.widthTransformer()
391 393
392 -/// similar to MediaQuery.of(context).size 394 +/// Similar a MediaQuery.of(context).size
393 context.mediaQuerySize() 395 context.mediaQuerySize()
394 396
395 -/// similar to MediaQuery.of(context).padding 397 +/// similar a MediaQuery.of(context).padding
396 context.mediaQueryPadding() 398 context.mediaQueryPadding()
397 399
398 -/// similar to MediaQuery.of(context).viewPadding 400 +/// similar a MediaQuery.of(context).viewPadding
399 context.mediaQueryViewPadding() 401 context.mediaQueryViewPadding()
400 402
401 -/// similar to MediaQuery.of(context).viewInsets; 403 +/// similar a MediaQuery.of(context).viewInsets;
402 context.mediaQueryViewInsets() 404 context.mediaQueryViewInsets()
403 405
404 -/// similar to MediaQuery.of(context).orientation; 406 +/// similar a MediaQuery.of(context).orientation;
405 context.orientation() 407 context.orientation()
406 408
407 -/// check if device is on landscape mode 409 +/// comprobar si el dispositivo esta en landscape mode
408 context.isLandscape() 410 context.isLandscape()
409 411
410 -/// check if device is on portrait mode 412 +/// comprobar si el dispositivo esta en portrait mode
411 context.isPortrait() 413 context.isPortrait()
412 414
413 -/// similar to MediaQuery.of(context).devicePixelRatio; 415 +/// similar a MediaQuery.of(context).devicePixelRatio;
414 context.devicePixelRatio() 416 context.devicePixelRatio()
415 417
416 -/// similar to MediaQuery.of(context).textScaleFactor; 418 +/// similar a MediaQuery.of(context).textScaleFactor;
417 context.textScaleFactor() 419 context.textScaleFactor()
418 420
419 -/// get the shortestSide from screen 421 +/// obtener el lado más corto de la pantalla
420 context.mediaQueryShortestSide() 422 context.mediaQueryShortestSide()
421 423
422 -/// True if width be larger than 800 424 +/// Verdadero si el ancho es mayor que 800
423 context.showNavbar() 425 context.showNavbar()
424 426
425 -/// True if the shortestSide is smaller than 600p 427 +/// Verdadero si el lado más corto es menor que 600p
426 context.isPhone() 428 context.isPhone()
427 429
428 -/// True if the shortestSide is largest than 600p 430 +/// Verdadero si el lado más corto es más grande que 600p
429 context.isSmallTablet() 431 context.isSmallTablet()
430 432
431 -/// True if the shortestSide is largest than 720p 433 +/// Verdadero si el lado más corto es mayor que 720p
432 context.isLargeTablet() 434 context.isLargeTablet()
433 435
434 -/// True if the current device is Tablet 436 +/// Verdadero si el dispositivo actual es una tableta
435 context.isTablet() 437 context.isTablet()
436 ``` 438 ```
437 439
@@ -456,10 +458,26 @@ Get.config( @@ -456,10 +458,26 @@ Get.config(
456 ) 458 )
457 ``` 459 ```
458 460
459 -## Video explanation of Other GetX Features 461 +Opcionalmente, puede redirigir todos los mensajes de registro de Get. Si desea utilizar su propio paquete de registro favorito y desea capturar los registros allí.
  462 +
  463 +```dart
  464 +GetMaterialApp(
  465 + enableLog: true,
  466 + logWriterCallback: localLogWriter,
  467 +);
  468 +
  469 +void localLogWriter(String text, {bool isError = false}) {
  470 + // pase el mensaje a su paquete de registro favorito aquí
  471 + //Nota: incluso si los mensajes de registro están desactivados
  472 + // con el comando "enableLog: false", los mensajes seguirán pasando por aquí
  473 + // Debe verificar esta configuración manualmente aquí si desea respetarla
  474 +}
460 475
  476 +```
  477 +
  478 +## Video explanation of Other GetX Features
461 479
462 -Amateur Coder did an awesome video about utils, storage, bindings and other features! Link: [GetX Other Features](https://youtu.be/ttQtlX_Q0eU) 480 +Amateur Coder hizo un video asombroso sobre utilidades, almacenamiento, enlaces y otras características! Link: [GetX Other Features](https://youtu.be/ttQtlX_Q0eU)
463 481
464 # Rompiendo cambios desde 2.0 482 # Rompiendo cambios desde 2.0
465 483
@@ -469,7 +487,7 @@ Antes: StringX ahora: RxString @@ -469,7 +487,7 @@ Antes: StringX ahora: RxString
469 487
470 Antes: IntX ahora: RxInt 488 Antes: IntX ahora: RxInt
471 489
472 -Antes: MapX ahora: RxMax 490 +Antes: MapX ahora: RxMap
473 491
474 Antes: ListX ahora: RxList 492 Antes: ListX ahora: RxList
475 493
@@ -521,13 +539,13 @@ GetMaterialApp( @@ -521,13 +539,13 @@ GetMaterialApp(
521 539
522 # ¿Por qué Getx? 540 # ¿Por qué Getx?
523 541
524 -1- Después de una actualización de Flutter, muchos paquetes suelen romperse. A veces se producen errores de compilación, errores de los que aún no hay respuestas y el desarrollador necesita saber el origen del error, poder rastrearlo, y solo entonces intentar abrir un issue en el repositorio correspondiente, para finalmente ver su problema resuelto. Getx centraliza los principales recursos para el desarrollo (gestión de estado, dependencia y rutas), lo que le permite agregar un único paquete a su pubspec y comenzar a trabajar. Después de una actualización de Flutter, lo único que debe hacer es actualizar la dependencia Get y ponerse a trabajar. Get también resuelve problemas de compatibilidad. ¿Cuántas veces una versión de un paquete no es compatible con la versión de otro, porque una usa una dependencia en una versión y la otra en otra? Tampoco es una preocupación usando Get, ya que todo estará en el mismo paquete y será totalmente compatible. 542 +1- Después de una actualización de Flutter, muchos paquetes suelen romperse. A veces se producen errores de compilación, errores de los que aún no hay respuestas y el desarrollador necesita saber el origen del error, poder rastrear, y solo entonces intentar abrir un issue en el repositorio correspondiente, para finalmente ver su problema resuelto. Getx centraliza los principales recursos para el desarrollo (gestión de estado, dependencia y rutas), lo que le permite agregar un único paquete a su pubspec y comenzar a trabajar. Después de una actualización de Flutter, lo único que debe hacer es actualizar la dependencia Get y ponerse a trabajar. Get también resuelve problemas de compatibilidad. ¿Cuántas veces una versión de un paquete no es compatible con la versión de otro, porque una usa una dependencia en una versión y la otra en otra? Tampoco es una preocupación usando Get, ya que todo estará en el mismo paquete y será totalmente compatible.
525 543
526 -2- Flutter es fácil, Flutter es increíble, pero todavía tiene algo repetitivo que puede ser no deseado para la mayoría de los desarrolladores, como `Navigator.of(context).push (context, bulder [...]`. Get simplifica el desarrollo. En lugar de escribir 8 líneas de código para simplemente llamar a una ruta, simplemente puede hacerlo: `Get.to(Home())` y listo, irá a la página siguiente. Algo doloroso de hacer con Flutter actualmente, mientras que con GetX es estúpidamente simple. Gestionar estados en Flutter y dependencias también es algo que genera mucho debate, ya que hay cientos de patrones en el pub. Pero no hay nada tan fácil como agregar un ".obs" al final de su variable, y colocar su widget dentro de un Obx, y eso es todo, todas las actualizaciones de esa variable se actualizarán automáticamente en la pantalla. 544 +2- Flutter es fácil, Flutter es increíble, pero todavía tiene algo repetitivo que puede ser no deseado para la mayoría de los desarrolladores, como `Navigator.of(context).push (context, builder [...]`. Get simplifica el desarrollo. En lugar de escribir 8 líneas de código para simplemente llamar a una ruta, simplemente puede hacerlo: `Get.to(Home())` y listo, irá a la página siguiente. Algo doloroso de hacer con Flutter actualmente, mientras que con GetX es estúpidamente simple. Gestionar estados en Flutter y dependencias también es algo que genera mucho debate, ya que hay cientos de patrones en el pub. Pero no hay nada tan fácil como agregar un ".obs" al final de su variable, y colocar su widget dentro de un Obx, y eso es todo, todas las actualizaciones de esa variable se actualizarán automáticamente en la pantalla.
527 545
528 3- Facilidad sin preocuparse por el rendimiento. El rendimiento de Flutter ya es sorprendente, pero imagine que usa un gestor de estado y un localizador para distribuir sus clases de bloc/stores/controllers/ etc. Tendrá que llamar manualmente a la exclusión de esa dependencia cuando no la necesite. Pero, ¿alguna vez pensó en simplemente usar el controlador, y cuando ya no sea necesario, simplemente se elimine de la memoria? Eso es lo que hace GetX. Con SmartManagement, todo lo que no se está utilizando se elimina de la memoria, y no debería tener que preocuparse por nada más que la programación. Se le garantiza el consumo mínimo de recursos, sin siquiera haber creado una lógica para esto. 546 3- Facilidad sin preocuparse por el rendimiento. El rendimiento de Flutter ya es sorprendente, pero imagine que usa un gestor de estado y un localizador para distribuir sus clases de bloc/stores/controllers/ etc. Tendrá que llamar manualmente a la exclusión de esa dependencia cuando no la necesite. Pero, ¿alguna vez pensó en simplemente usar el controlador, y cuando ya no sea necesario, simplemente se elimine de la memoria? Eso es lo que hace GetX. Con SmartManagement, todo lo que no se está utilizando se elimina de la memoria, y no debería tener que preocuparse por nada más que la programación. Se le garantiza el consumo mínimo de recursos, sin siquiera haber creado una lógica para esto.
529 547
530 -4- Desacoplamiento real. Es posible que haya escuchado la idea de "separar la vista de la lógica de negocio". Esta no es una peculiaridad de BLoC,MVC,MVVM, cualquier otro estándar en el mercado tiene este concepto. Sin embargo, a menudo se puede mitigar en Flutter debido al uso del contexto. 548 +4- Desacoplamiento real. Es posible que haya escuchado la idea de "separar la vista de la lógica de negocio". Esta no es una peculiaridad de BLoC, MVC, MVVM, cualquier otro estándar en el mercado tiene este concepto. Sin embargo, a menudo se puede mitigar en Flutter debido al uso del contexto.
531 Si necesita contexto para encontrar un InheritedWidget, lo necesita en la vista o pasado por parámetro. En particular, encuentro esta solución muy fea, y para trabajar en equipo siempre tendremos una dependencia de la lógica de negocios de la vista. Getx no es ortodoxo con el enfoque estándar, y aunque no prohíbe completamente el uso de StatefulWidgets, InitState, etc., siempre tiene un enfoque similar que puede ser más limpio. Los controladores tienen ciclos de vida, y cuando necesita hacer una solicitud API REST, por ejemplo, no depende de nada en la vista. Puede usar onInit para iniciar la llamada http, y cuando lleguen los datos, se rellenarán las variables. Como GetX es completamente reactivo (realmente, y funciona bajo streams), una vez que se llenan los elementos, todos los widgets que usan esa variable se actualizarán automáticamente en la vista. Esto permite que las personas con experiencia en IU trabajen solo con widgets y no tengan que enviar nada a la lógica de negocios que no sean eventos de usuario (como hacer clic en un botón), mientras que las personas que trabajan con lógica de negocios podrán crearla y probarla por separado. 549 Si necesita contexto para encontrar un InheritedWidget, lo necesita en la vista o pasado por parámetro. En particular, encuentro esta solución muy fea, y para trabajar en equipo siempre tendremos una dependencia de la lógica de negocios de la vista. Getx no es ortodoxo con el enfoque estándar, y aunque no prohíbe completamente el uso de StatefulWidgets, InitState, etc., siempre tiene un enfoque similar que puede ser más limpio. Los controladores tienen ciclos de vida, y cuando necesita hacer una solicitud API REST, por ejemplo, no depende de nada en la vista. Puede usar onInit para iniciar la llamada http, y cuando lleguen los datos, se rellenarán las variables. Como GetX es completamente reactivo (realmente, y funciona bajo streams), una vez que se llenan los elementos, todos los widgets que usan esa variable se actualizarán automáticamente en la vista. Esto permite que las personas con experiencia en IU trabajen solo con widgets y no tengan que enviar nada a la lógica de negocios que no sean eventos de usuario (como hacer clic en un botón), mientras que las personas que trabajan con lógica de negocios podrán crearla y probarla por separado.
532 550
533 Esta librería siempre se actualizará e implementará nuevas características. Siéntase libre de ofrecer PRs y contribuir a ellas. 551 Esta librería siempre se actualizará e implementará nuevas características. Siéntase libre de ofrecer PRs y contribuir a ellas.