El programa de Expertos de Google Developers es una red global de expertos en tecnología, influencers y líderes de opinión de gran trayectoria, que apoyan activamente a los desarrolladores, empresas y comunidades de tecnología. Para ello, participan en conferencias y publican contenido.
Joel Humberto Gómez es desarrollador en IBM y crea apps que mejoran el rendimiento de la organización interna de la empresa. Si bien su trabajo se centra en el desarrollo de frontend con React, también tiene experiencia en desarrollo web con JavaScript. Ha ocupado muchas funciones de líder en tecnología, en las que tomó decisiones técnicas y creó planes de envío de productos. Joel tiene un título en Ciencias de la Educación de la Universidad Veracruzana y conocimientos de bases de datos, desarrollo para dispositivos móviles, desarrollo web, redes y servidores. Es GDE en tecnologías web y Google Maps Platform.
“He participado en proyectos relacionados con envío de activos y NFC en desarrollo para dispositivos móviles, y en proyectos sobre procesos de visualización y automatización de datos en empresas”, comentó. “En 2022, quiero involucrarme más en la comunidad del código abierto”.
Joel usa Google Maps Platform para visualizar datos y explorar datos en proyectos centrados en la visualización de datos. En un proyecto, utilizó la API de JavaScript de Maps. En otro, se concentró en hacer un seguimiento de rutas y visualizar puntos para recolectar y entregar paquetes. En un tercer proyecto, usó los servicios de Place Autocomplete y la API de Directions. Ahora, trabaja en un proyecto sin fines de lucro para mostrar lugares relacionados con servicios médicos.
Participación en la comunidad de desarrolladores
En la universidad, uno de los instructores de Joel organizaba eventos relacionados con Linux, como el Festival Installfest, a los que invitaba a sus alumnos.
“Con el tiempo, me convertí en uno de sus estudiantes y me motivó a compartir mis conocimientos con el resto, y a que tuviera el valor para ir más allá de la universidad y salir de mi zona de confort”, explicó Joel. “Comencé a organizar eventos y charlas, y a conocer personas de otras comunidades”.
Finalmente, Gómez se convirtió en organizador de GDG.
“Mi sección era GDG Monterrey”, comentó. “Organizamos una Android Study Jam y algunos eventos de Google I/O Extended”.
Gómez disfrutó de compartir información con su comunidad y recibió el apoyo de otros GDEs para postularse al programa de GDE y compartir sus conocimientos con un público más amplio.
“Me encanta compartir información con mi comunidad, pero a veces el conocimiento se mantiene dentro de la comunidad”, explicó. “Diego DeGranda, un GDE que se especializa en tecnologías web, me alentó a que me postulara y que fuera más allá de mi comunidad para compartir mis conocimientos con otras comunidades fuera de mi país”.
Como GDE, Gómez ha conocido a desarrolladores de todo el mundo, con quienes habla sobre tecnología y comparte experiencias. Otro beneficio de ser GDE es la oportunidad de aprender de otros GDEs y empleados de Google.
“En 2020, tuve más actividades porque la ubicación ya no era un impedimento”, explicó. “Para los oradores, los encuentros virtuales suelen ser complicados, pero nos estamos adaptando a la situación, y usamos y creamos herramientas para obtener y brindar una mejor experiencia”.
Funciones favoritas de Google Maps Platform
La función de Google Maps Platform favorita de Gómez es la API de Contexto Local.
“Creo que es una función genial y tiene mucho potencial para crear mejores apps”, comentó. “En algunos proyectos, Contexto Local me ayudó con algunas funciones y no necesito realizar mi propio desarrollo. En 2020, di algunas charlas sobre las nuevas funciones, y escribí entradas de blogs e hice videos sobre ellas”.
Planes para el futuro
Joel planea crear más contenido sobre Contexto Local, Plus Codes y otras funciones de Google Maps Platform.
“Planeo lanzar un podcast sobre Maps y cómo usarlo para crear mejores apps”, comentó. “Lo estuve haciendo en español, así que necesito crear contenido en inglés”.
Tiene tres objetivos profesionales: comenzar a contribuir al código abierto, crear una pequeña startup e iniciar proyectos en los que se utilice Google Maps Platform.
Sigue a Joel en Twitter:@DezkaReid | Descubre los proyectos de Joel en GitHub
Para obtener más información sobre Google Maps Platform, visita nuestro sitio web u obtén más información sobre nuestro programa GDE.
Es esa época del año en el hemisferio norte: las hojas cambian de color, la temperatura refresca y la última versión estable del año ya está aquí. ¡Hola y bienvenido a Flutter 2.8! Esta versión representa el trabajo duro de 207 contribuyentes y 178 revisores, que produjeron 2424 peticiones de validación (PR) fusionadas y 2976 problemas resueltos. Queremos agradecer especialmente al contribuyente principal de la comunidad de esta versión, Bartosz Selwesiuk, un ingeniero de Flutter en Very Good Ventures, que proporcionó 23 PR, de las cuales la mayoría estuvieron "enfocadas" (cita textual) más que nada en el complemento de cámara para la Web.
Todo este trabajo colectivo produjo mejoras de rendimiento significativas, tanto en el motor como en Flutter DevTools: una versión estable del kit de desarrollo de software (SDK) de Google Mobile Ads para Flutter, una gran cantidad de funciones y mejoras nuevas de Firebase, WebView 3,0, un nuevo lote de paquetes de Flutter Favorite, una serie de actualizaciones de computadora de escritorio en el camino hacia una versión estable y una nueva versión de DartPad con compatibilidad para más paquetes, incluido el propio Firebase. Puede que este sea el último lanzamiento del año, pero de ninguna manera el menos importante. ¡Comencemos!
Como siempre, la prioridad número uno de Flutter es la calidad. Pasamos mucho tiempo asegurándonos de que Flutter se ejecute de la forma más fluida y robusta posible en todo el rango de dispositivos compatibles.
Esta versión incluye mejoras en la latencia de inicio de apps. Probamos estas mejoras en Google Pay, una app popular de gran tamaño con más de un millón de líneas de código para asegurar que estos cambios generen un impacto perceptible en el mundo real. En conjunto, estas mejoras han generado una reducción del 50% en la latencia de inicio de Google Pay cuando se ejecuta en un dispositivo Android poco sofisticado y una mejora del 10% en dispositivos de alta gama.
Gracias a las mejoras en la manera en que Flutter influye en la política de recolección de elementos no utilizados de la VM de Dart, ahora se pueden evitar ciclos de recolección de elementos no utilizados (GC) inoportunos durante la secuencia de inicio de la app. Por ejemplo, antes de que se renderice el primer fotograma en Android, Flutter ahora solo envía notificaciones a la VM de Dart sobre exigencia de memoria para señales TRIM_LEVEL_RUNNING_CRITICAL y posteriores. En las pruebas locales, este cambio disminuyó el tiempo para el primer fotograma hasta 300 ms en un dispositivo poco sofisticado.
Debido a un exceso de precaución, en versiones anteriores, Flutter bloqueaba el subproceso de la plataforma mientras generaba visualizaciones de la plataforma. En el análisis y razonamiento cuidadoso, se determinó que se podía quitar parte de la serialización, lo que quitó más de 100 ms de bloqueo durante el inicio de Google Pay en un dispositivo poco sofisticado.
En el pasado, la configuración del administrador de fuente predeterminada generaba un retraso artificial en la configuración del primer elemento aislado de Dart. El retraso en la configuración del administrador de fuente predeterminada para que se ejecute de forma simultánea con la configuración del elemento aislado de Dart mejoró la latencia de inicio e hizo que los efectos de las optimizaciones anteriores sean mucho más visibles, ya que esto era el cuello de botella principal.
Los desarrolladores de Flutter que trabajaban con dispositivos que tenían restricciones de memoria tenían problemas con los registros del rendimiento debido a que Flutter cargaba con rapidez el "elemento aislado del servicio" de la VM de Dart, cuyo código AOT estaba unido a la app de manera que Flutter leía a ambos en la memoria al mismo tiempo. Para Android en la versión 2.8, se dividió el elemento aislado del servicio de la VM de Dart en su propio conjunto que se puede cargar por separado, lo que da como resultado ahorros de memoria de hasta 40 MB hasta que se necesite el elemento aislado del servicio. Se redujo aún más el consumo de memoria hasta un 10% mediante la VM de Dart que informa al SO que las páginas de la memoria utilizadas por el programa AOT están respaldadas por un archivo que es probable que no se necesite leer de nuevo. Por lo tanto, las páginas que tenían una copia de los datos respaldados por el archivo se pueden recuperar y destinar a otros usos.
En ocasiones, los desarrolladores desean ver los datos de registro de rendimiento de Flutter junto con los eventos de seguimiento nativos de Android. Además, a veces desean ver eventos de registro incluso en compilaciones en modo de lanzamiento a fin de comprender mejor los problemas de rendimiento en sus apps implementadas. Con ese propósito, la versión estable 2.8 ahora envía eventos de seguimiento al registrador de Systrace de Android si está habilitado en el inicio de la app, y estos eventos se envían incluso cuando la app de Flutter se compila en modo de lanzamiento.
También, para ayudar a crear animaciones con menos bloqueo, algunos de ustedes querían recibir más información en los registros de seguimiento sobre el comportamiento del caché de trama, lo que permite a Flutter copiar imágenes costosas reutilizadas en lugar de volver a dibujarlas en cada fotograma. Los nuevos eventos de flujo en los registros de seguimiento ahora permiten rastrear las vidas útiles de las imágenes de caché de trama.
Para la depuración de problemas de rendimiento, esta versión de DevTools agrega una nueva función de "mejora de seguimiento" para ayudarte a diagnosticar bloqueos de IU que surgen de operaciones costosas de compilación, diseño y pintura.
Cuando se habilita cualquiera de estas funciones de seguimiento, el cronograma incluye nuevos eventos para widgets compilados, objetos de renderización diseñados y objetos de renderización pintados, según corresponda.
Además, esta versión de DevTools agrega una nueva compatibilidad para la creación de perfiles del rendimiento del inicio de tu app. Este perfil contiene muestras de CPU desde la inicialización de la VM de Dart hasta la renderización del primer fotograma de Flutter. Luego de presionar el botón de "Perfil de inicio de app" y después de que se haya cargado el perfil de inicio de la app, verás que la etiqueta de usuario "AppStartUp" está seleccionada para el perfil. También puedes cargar el perfil de inicio de la app mediante la selección de este filtro de etiqueta de usuario, si está presente, en la lista de etiquetas de usuario disponibles. La selección de esta etiqueta muestra tus datos de perfil para el inicio de tu app.
Android y iOS no son las únicas plataformas con mejoras del rendimiento. Esta versión también mejora el rendimiento de las vistas de plataforma de la web de Flutter. Si no estás familiarizado con las vistas de plataforma, estas son las maneras en que Flutter permite alojar componentes de IU nativos desde la plataforma subyacente en tu app. La web de Flutter implementa esto mediante el widget HtmlElementView, que permite alojar elementos HTML dentro de tu app web de Flutter. Si utilizas las versiones web del complemento google_maps_flutter o del complemento video_player, o si sigues el consejo del equipo de Flutter sobre cómo optimizar las imágenes de la pantalla en la Web, entonces utilizas las vistas de plataforma.
En versiones anteriores de Flutter, la incorporación de una vista de plataforma creaba un lienzo nuevo de forma inmediata, y cada vista de plataforma adicional agregaba otro lienzo. Es costoso crear lienzos adicionales, ya que cada uno tiene el tamaño de toda la ventana. Esta versión reutiliza lienzos creados para vistas de plataforma anteriores, por lo que, en lugar de incurrir en el costo 60 veces por segundo, incurres en el costo una vez en toda la vida útil de la app. Esto significa que puedes tener varias instancias HtmlElementView en tus apps web sin degradar el rendimiento, mientras reduces el bloqueo de desplazamiento cuando se utilizan las vistas de plataforma.
Flutter no solo implica el marco de trabajo, el motor y las herramientas: hay más de 20 000 paquetes y complementos compatibles con Flutter en pub.dev y se agregan más cada día. Una parte significativa de las interacciones que los desarrolladores de Flutter tienen día tras día forma parte del ecosistema más amplio, así que veamos lo que ha estado sucediendo en el ecosistema de Flutter desde la versión anterior.
En primer lugar, la versión del SDK de Google para móviles para Flutter tiene disponibilidad general en noviembre.
Esta versión es compatible con 5 formatos de anuncios, integra compatibilidad para AdMob y Ad Manager e incluye una versión beta de una nueva función de mediación para ayudarlo a optimizar el rendimiento de los anuncios. Para obtener más información sobre la integración de Google Ads en tu app de Flutter y otras opciones de monetización, consulta la nueva página de monetización en flutter.dev.
Otro nuevo lanzamiento que viene con Flutter en esta ocasión es la versión 3.0 del complemento webview_flutter. Hemos incrementado el número de versión debido a la cantidad de funciones nuevas, pero también debido a un posible cambio rotundo en la manera en que funcionan las vistas web en Android. En versiones anteriores de webview_flutter, estaba disponible el modo de composición híbrida, pero no el modo predeterminado. Mediante la composición híbrida, se arreglan ciertos problemas que tiene el modo de visualizaciones virtuales predeterminado anterior. Según los comentarios de los usuarios y el rastreo de problemas, creemos que es hora de que la composición híbrida se convierta en la opción predeterminada. Además, webview_flutter también agrega varias funciones muy solicitadas:
Además, en la versión 3.0, webview_flutter proporciona compatibilidad preliminar para una nueva plataforma: la Web. Muchos de ustedes pidieron la capacidad de alojar WebView en una app web de Flutter, lo que permite compilar una app para dispositivos móviles o la Web de una única base de código. ¿Cómo luce el alojamiento de WebView en una app web de Flutter? Bueno, desde una perspectiva de programación, luce exactamente igual:
Cuando se ejecuta en la Web, funciona de la manera esperada:
Ten en cuenta que la implementación actual de webview_flutter para la Web tiene algunas limitaciones, con base en el hecho de que está compilado con iframe, que solo admite cargas de URL simples y no tiene capacidad de controlar o interactuar con el contenido cargado (para obtener más información, consulta el archivo README de webview_flutter_web). Sin embargo, estamos tratando de que webview_flutter_web esté disponible como un complemento no aprobado debido a la gran demanda. Si deseas probarlo, agrega la siguiente línea a tu pubspec.yaml:
Si tienes comentarios sobre webview_flutter v.3.0, ya sea en la Web o fuera de esta, regístralos en el repositorio de Flutter como un problema de WebView. Además, si no has utilizado WebView antes o te gustaría ver un repaso, consulta el nuevo codelab de WebView, que te guía paso por paso a través del proceso de alojamiento de contenido web en tu app de Flutter.
El Comité del ecosistema de Flutter se ha reunido de nuevo para designar lo siguiente como paquetes de Flutter Favorite:
Felicitamos a esos creadores de paquetes y les agradecemos por apoyar a la comunidad de Flutter con su trabajo duro. Si estás interesado en nominar a tu paquete de Flutter favorito para que reciba un premio de Flutter Favorite, sigue las guías e instrucciones en la página del programa Flutter Favorite.
Si eres creador de paquetes, una decisión que debes tomar es qué plataformas vas a admitir. Si compilas un complemento con un código nativo para plataformas específicas, puedes hacerlo con la propiedad pluginClass en el pubspec.yaml de tu proyecto, que indica la clase nativa que proporciona la funcionalidad:
Sin embargo, a medida que la interfaz de funciones foráneas (FFI) de Dart se vuelve más madura, es posible implementar la funcionalidad para plataformas específicas en Dart al 100%, como lo hace el paquete path_provider_windows. Cuando no tienes ninguna clase nativa para utilizar, pero aún deseas designar tu paquete para que admita solo ciertas plataformas, utiliza la propiedad dartPluginClass en su lugar:
Con esta configuración implementada, has designado a tu paquete para que solo admita ciertas plataformas, incluso si no tienes ningún código nativo. También debes proporcionar la clase de complemento de Dart; obtén más información en los documentos sobre implementaciones de plataformas solo en Dart en flutter.dev.
Otra parte importante del ecosistema de Flutter es FlutterFire, que se utiliza en dos tercios de apps de Flutter. Esta versión agrega un conjunto de funciones nuevas que facilitan la compilación de apps con Flutter y Firebase:
Todos (o casi todos) los complementos de FlutterFire han dejado de ser versiones beta para pasar a ser versiones de calidad estable.
Entre los complementos que pasan a ser versiones estables para Android, iOS y la Web, se incluyen Analytics, Dynamic Links, In-App Messaging, Performance Monitoring, Realtime Database, Remote Config y, el recién llegado, Installations. El complemento App Check y la compatibilidad para plataformas macOS todavía se encuentran en versiones beta debido a la fase de las propias bibliotecas de Firebase, que también están en versiones beta. Si te has preocupado por elegir Realtime Database, Analytics o Remote Config porque las bibliotecas de FlutterFire no estaban listas para hacerse públicas, ya no te preocupes. Ahora estos son complementos totalmente compatibles listos para usar en la producción.
A medida que los paquetes se han trasladado a la calidad de producción, hemos agregado la capacidad de inicializar Firebase en cualquier plataforma compatible de Dart:
Este código inicializa una app de Firebase mediante las opciones adecuadas para cada plataforma compatible, como se define en el archivo firebase_options.dart, que contiene estructuras de datos según plataformas que tienen el siguiente aspecto:
A fin de recolectar los datos para cada estructura de datos de la opción de inicialización de cada plataforma, consulta la nueva herramienta de la CLI de FlutterFire.
Esta herramienta analiza los datos en tus subcarpetas de plataformas específicas para encontrar la ID de conjunto única y, luego, la utiliza con el fin de buscar los detalles específicos del proyecto de Firebase para tus apps de plataformas específicas compatibles e incluso crea nuevas apps para plataformas específicas o un nuevo proyecto de Firebase si no había ninguno. Lo que esto significa es que ya no necesitarás descargar y agregar un archivo json a tu proyecto de Android, descargar y agregar un archivo plist a tus proyectos de iOS y macOS ni pegar código en el index.html de tus proyectos web; sin importar con qué plataforma compatible con Firebase estés trabajando, este único fragmento de código Dart inicializa Firebase para tu app. Ten en cuenta que puede que esta no sea la única inicialización que tengas que realizar para hacer funcionar tu app de FlutterFire; por ejemplo, puede que desees integrar la creación de tus símbolos de Crashlytics en tu compilación Android o compilación iOS, pero debería ponerse en marcha en minutos con cualquier proyecto nuevo de Firebase.
Con esta inicialización de FlutterFire solo en Dart, ahora puedes utilizar Firebase desde dentro de DartPad.
En este ejemplo, se demuestra una pequeña app de chat con Flutter, Firebase y DartPad, los que puedes utilizar ahora mismo sin instalación. En la compatibilidad para Firebase de DartPad actual, ya se incluyen las API principales, la autenticación y Firestore. Se espera que surjan más servicios de Firebase en DartPad con el tiempo.
Otra función que la compatibilidad de FlutterFire en DartPad habilita es la capacidad de utilizar una instancia incorporada de DartPad en los documentos.
En este ejemplo, estás viendo los documentos de Cloud Firestore con el código para la app de ejemplo que puedes ejecutar y editar directamente en tu navegador sin tener que instalar nada, crear un proyecto de prueba o incluso copiar o pegar el código. Todo está allí para que lo utilices de forma inmediata.
Cuando se integra Firebase en una app, la mayoría de las apps tienen algún tipo de flujo de autenticación. Esto incluye permitir que los usuarios inicien sesión con un correo electrónico y una contraseña o con un proveedor de autenticación social como el que proporciona Google. Firebase Authentication también permite crear cuentas nuevas sobre la marcha, validar direcciones de correo electrónico, cambiar contraseñas, y hasta puede implicar la verificación de 2 pasos con SMS, iniciar sesión con un número de teléfono o hasta combinar varias cuentas de usuario en una sola cuenta. Firebase Authentication admite todas estas funcionalidades, pero, como desarrollador de Flutter, eres responsable de implementar la IU para todas ellas. Así era hasta hoy.
Hoy estamos felices de anunciar que el paquete flutterfire_ui puede crear una experiencia de autenticación básica con una pequeña cantidad de código. Como ejemplo, asume que tienes configurada la autenticación por correo electrónico y la de Google en tu proyecto de Firebase:
Con esta configuración, puedes activar una experiencia de autenticación de la siguiente manera:
Esto inicializa Firebase y, cuando se observa que el usuario todavía no ha iniciado sesión, se muestra la pantalla de inicio de sesión. El widget SigninScreen se configura mediante los proveedores de autenticación de correo electrónico y Google. El código también escucha el estado de autenticación del usuario con el paquete firebase_auth, de manera que, una vez que el usuario inicie sesión, puedes mostrar el resto de la app. Con este código, obtienes un inicio de sesión en funcionamiento para todas las plataformas admitidas por Firebase: Android, iOS, Web y macOS.
Con un poco más de configuración, puedes agregar de forma fácil una imagen y algo de texto personalizado (los detalles están disponibles en los documentos), lo que te da una experiencia de inicio de sesión repleta de funciones.
En esta captura de pantalla se muestra la versión para dispositivos móviles, pero, como las pantallas de flutterfire_ui son adaptables, esto es lo que ves en un dispositivo de escritorio:
Si el usuario ya tiene un correo electrónico o una contraseña, puede iniciar sesión y terminar. Si utiliza la autenticación de Google, se le mostrará el flujo de autenticación normal de Google, ya sea si utiliza un dispositivo móvil, la Web o la computadora. Si no tiene una cuenta todavía, puede presionar el botón en la pantalla de inicio de sesión e ir a la pantalla de registro. Una vez que el usuario haya iniciado sesión o se haya registrado, hay flujos para validar su correo electrónico, cambiar la contraseña, cerrar sesión y vincular cuentas de autenticación social. El inicio de sesión por correo electrónico funciona en todas las plataformas junto con la compatibilidad para la autenticación social de Google, Facebook y Twitter y compatibilidad parcial para Apple (no funciona en Android). La compatibilidad de autenticación en flutterfire_ui admite varios escenarios y esquemas de navegación, junto con opciones de localización y personalización. Consulte las muestras y documentos detallados en los documentos de firebase.flutter.dev.
Además, la autenticación no es la única función de Firebase relacionada con IU compatible con flutterfire_ui. Para mostrarles a los usuarios una lista de datos desplazable, infinita y en vivo de una consulta de Firebase, esta versión incluye la función FirestoreListView, que puedes incorporar en tu app con una consulta en vivo de la siguiente manera:
Y así luce cuando está en funcionamiento:
O, si te gustaría ofrecer a tus usuarios la capacidad de crear, leer, actualizar y borrar entradas en una tabla, ya tienes lo básico en FirestoreDataTable:
Que funciona de la siguiente manera:
Para obtener detalles sobre autenticación, vistas de lista y tablas de datos, consulta los documentos de flutterfire_ui. Como esta es una versión preliminar, se prevén funciones adicionales. Si tienes alguna duda o una solicitud de función, dirígete al repositorio de GitHub para registrar problemas o preguntar dudas en la sección de discusiones.
Y por último, aunque no menos importante, una nueva función de la integración entre Firebase y Flutter que deberías conocer es la versión alfa del asignador de objetos/documentos de Firestore. El ODM de Firestore está orientado a ayudar a los desarrolladores de Flutter a ser más productivos mediante la simplificación del uso de Firestore a través de objetos y métodos estructurados familiares de tipo seguro. Mediante la generación de código, el ODM de Firestore mejora la sintaxis para interactuar con documentos y colecciones y te permite modelar tus datos de forma segura:
Con estos tipos en funcionamiento, ahora puedes ejecutar consultas de tipo seguro:
El ODM también admite la definición de subcolecciones de asignación rigurosa y proporciona opciones incorporadas para optimizar recompilaciones de widget con su función selecta. Puedes leer acerca de todo esto y mucho más en los documentos sobre el ODM de Firestore. Como esta es una versión alfa, proporciónanos tus comentarios. Para enviar comentarios y preguntar dudas, únete al hilo sobre ODM de Firestore en la discusión de FlutterFire.
En la versión 2.8 de Flutter, se incluye otro gran paso en el camino hacia la versión estable de Windows, macOS y Linux. El estándar de calidad es alto, incluida la compatibilidad con internacionalización y localización, como la compatibilidad con IME china, la compatibilidad con IME coreana y la compatibilidad con IME de kanji recién lanzadas. O como la integración sólida que se está incorporando en la compatibilidad de accesibilidad de Windows. No es suficiente que Flutter se ejecute en computadoras de escritorio en el canal estable (algo que ya hace en la versión beta detrás de una marca), tiene que ejecutarse de forma correcta para lenguajes y culturas alrededor del mundo y para personas con distintos tipos de capacidades. Todavía no funciona como queremos, ¡pero lo estamos logrando!
Un ejemplo del trabajo continuo a fin de preparar a las computadoras de escritorio para una versión estable es el cambio de arquitectura completo de cómo Flutter administra eventos de teclado para permitir una respuesta síncrona. Esto habilita a un widget a administrar una pulsación de tecla y cancelar su propagación a través del resto del árbol. El trabajo inicial incorporado en Flutter 2.5 y Flutter 2.8 agrega correcciones para problemas y regresiones a medida que se aproxima a la calidad estable. Esto se suma al trabajo continuo para renovar la forma en que administramos la entrada del teclado de dispositivos específicos y una refactorización de la manera en que Flutter administra la edición de texto, todas funciones necesarias para las apps de computadora de escritorio con teclado de gran entrada.
Además, continuamos ampliando la compatibilidad de Flutter para la densidad visual y la alineación de exposición de los diálogos, ambas para habilitar una IU más compatible con la computadora de escritorio.
Y, finalmente, el equipo de Flutter no es el único que trabaja en la computadora de escritorio de Flutter. Solo como un ejemplo, el equipo de computadoras de escritorio de Canonical está trabajando con Invertase en una implementación de los complementos de Firebase más populares para Flutter en Linux y Windows.
Puedes leer más sobre la versión preliminar en el blog de Invertase.
Una versión de Flutter no está completa sin analizar las mejoras de herramientas. Esta publicación se enfoca en las mejoras de DartPad, de las cuales la mayor admite una gran cantidad de paquetes. De hecho, hay 23 paquetes disponibles para importación. Además de varios servicios de Firebase, la lista incluye paquetes populares como bloc, characters, collection, google_fonts y flutter_riverpod. El equipo de DartPad continúa agregando nuevos paquetes, así que si deseas ver qué paquetes se admiten actualmente, haz clic en el ícono de información en la esquina inferior derecha.
Para conocer sobre el plan de agregar nuevos paquetes a DartPad con el transcurso del tiempo, consulta este artículo en el wiki de Dart.
También hay otra función nueva de DartPad que es muy útil. Anteriormente, DartPad siempre se ejecutaba en la última versión estable. Con esta versión, puedes seleccionar las versiones de canal beta más recientes como también la versión estable anterior (llamada el "canal antiguo") mediante el nuevo menú Canal en la barra de estado.
Esta opción puede ser muy útil si, por ejemplo, estás escribiendo una entrada de blog donde la versión estable más reciente no es lo suficientemente nueva…
Un "canal" de Flutter administra qué tan rápido el marco y el motor subyacentes de Flutter cambian en su máquina de desarrollo, y el canal estable representa la menor tasa de abandono y el maestro la mayor. Debido a restricciones de recursos, hace poco dejamos de actualizar el canal para desarrolladores. Aunque recibimos algunas preguntas acerca de esto, observamos que menos del 3% de los desarrolladores de Flutter utilizan el canal para desarrolladores. Por lo tanto, hemos decidido comenzar el proceso de quitar el canal para desarrolladores de manera formal. Aunque algunos desarrolladores utilizan el canal para desarrolladores, exige una cantidad considerable de tiempo y esfuerzo por parte de los ingenieros de Flutter para mantenerlo. Si pasas todo tu tiempo en el canal estable (como más del 90% de los desarrolladores de Flutter), no lo extrañarás. Si se quita, tienes una decisión menos por tomar, y el equipo de Flutter puede usar su tiempo y energía en otras cosas.
Puedes decidir qué canal te gustaría utilizar mediante el comando de canales de Flutter. A continuación, se describe lo que el equipo de Flutter piensa sobre cada canal:
A medida que quitamos el canal para desarrolladores en los próximos meses, considera los canales beta o maestro según tu tolerancia a la tasa de abandono y tu necesidad de mantenerte actualizado.
Como siempre, nos esforzamos por reducir la cantidad de cambios rotundos en cada versión. En esta versión, Flutter 2.8 no presenta cambios rotundos, además de las API obsoletas que han expirado y se han quitado según nuestra política de cambios rotundos.
Si todavía utilizas estas API y te gustaría obtener detalles sobre cómo actualizar tu código, puedes leer la guía de migración en flutter.dev. Como siempre, agradecemos a la comunidad por contribuir con pruebas que nos ayudan a identificar estos cambios rotundos.
A medida que despedimos el 2021 y esperamos con ansias el 2022, el equipo de Flutter quiere expresar nuestra gratitud por el trabajo y la asistencia de toda la comunidad de Flutter. Aunque es cierto que compilamos Flutter para la cantidad en aumento de desarrolladores del mundo, también es cierto que no podríamos compilarlo sin ti. La comunidad de Flutter es diferente a cualquier otra, y estamos agradecidos por eso. ¡Te deseamos unas felices vacaciones y nos vemos el año próximo!
Publicado por Maru Ahues Bouza, directora de Relaciones con desarrolladores de Android
Las apps son fundamentales para que las personas disfruten de la plataforma de Android, ya sea que la usen en sus teléfonos, autos, televisores o relojes. Como plataforma popular para dispositivos móviles, Android es cada vez más importante: según la encuesta de desarrolladores 2020 de Stack Overflow, en todo el mundo, 1 de 4 desarrolladores compilan para Android.
La misión del área de Relaciones con desarrolladores de Android (o simplemente Android DevRel) es ayudar a los desarrolladores a alcanzar el éxito en Android. Para ello, los ayudamos a compilar excelentes apps con las funciones más recientes de Android y Play, de modo que tengan una gran carrera como desarrolladores de Android, y los apoyamos a medida que Android y Play evolucionan. Es muy reconfortante porque a diario podemos ver el futuro de las apps y ayudar a nuestros colegas desarrolladores a lograr objetivos importantes. Para esta misión tan importante, contrataremos ingenieros, escritores técnicos y administradores de programas. Si todo esto te inspira, ¡nos encantaría conocerte! Sigue los vínculos que aparecen al final de este blog y solicita unirte a nuestro equipo.
Pero, antes de continuar, ¿cuál es la función de Android DevRel? Nuestro equipo trabaja con desarrolladores externos, escribe código, crea contenido, lanza carreras, desarrolla comunidades, organiza conferencias y muchos más. ¡Sigue leyendo para obtener más información!
En Android y Play, trabajamos con equipos de productos e ingeniería para definir estrategias de salida al mercado para productos de nuevos desarrolladores, y ejecutamos programas de acceso anticipado (EAP) con el objetivo de compilar mejores productos para todos los desarrolladores. A través de estos EAP, realizamos un exhaustivo trabajo de ingeniería técnica con los desarrolladores más influyentes a fin de ayudarlos a integrar y enviar comentarios para demostrar que los productos que compilamos están listos para funcionar a gran escala.
Colaboramos con estos desarrolladores para compilar apps de alta calidad para diferentes pantallas, a fin de asegurar experiencias de usuario más positivas en Android. Además, compartimos sus casos de éxito para demostrar cómo la integración con estos productos ayudará a los desarrolladores a tener más éxito en el ecosistema de Android e inspirará a otros a adoptarlos.
En gran medida, ayudamos a los desarrolladores a través del código, ya sean instructivos, videos, blogs o cursos educativos de varias unidades completos. Producimos todo, desde simples fragmentos de código con los que se explica cómo realizar una función específica, hasta apps de muestra, como Jet* o la app de Google I/O, con la que se demuestra cómo se combina todo. En el proceso de creación de código de muestra, puedes ser el primer desarrollador en compilar algo con una nueva API. A esto lo denominamos “cliente cero” y es una función importante con la que puedes influir directamente en la dirección de un producto mediante comentarios (y sí, ¡también con prueba y error!).
Cuando ayudamos a los desarrolladores, terminamos aprendiendo las prácticas recomendadas y produciendo toneladas de contenidos: documentación, instructivos, presentaciones en pantalla, charlas, entradas de blog, podcasts y muchos más. Desglosar temas complejos e incluirlos en un recorrido de aprendizaje para ayudar tanto a desarrolladores principiantes como avanzados es todo un arte que aplicamos a diario. Por ejemplo, presentamos nuevos conceptos, determinamos las prácticas recomendadas y documentamos detalladamente la funcionalidad de una nueva API. Nuestra función es ayudar a los desarrolladores a comprender cómo funciona Android y a usarlo con éxito. Si bien nuestro resultado es el contenido en sí mismo, es importante destacar que la ingeniería es una parte esencial de nuestro trabajo. Para que los desarrolladores aprendan a usar estas tecnologías, primero debemos entenderlos nosotros a ellos.
Enseña a millones de desarrolladores a través materiales de aprendizaje
Muchos fuimos desarrolladores de Android antes de unirnos a DevRel, y uno de los aspectos más gratificantes de nuestra función es conocer a desarrolladores de todo el mundo y conectarnos con ellos. Interactuamos frecuentemente con expertos de Google Developer para Android (GDEs), grupos de Google Developer y, por supuesto, con miembros de la comunidad, a través de eventos, redes sociales y Slack. Nos encanta saber en qué están trabajando las personas, ayudar en lo que podamos y crear conexiones en toda la comunidad para que los miembros puedan aprender unos de otros.
Uno de los lugares en los que la comunidad se une es en las conferencias, ¡y Android cuenta con muchas! Si bien puedes elegir una habilidad o aprender sobre el último patrón de diseño de software, siempre se dice que lo más valioso que se consigue en las conferencias son las conexiones con otros desarrolladores. Conocer personas cara a cara (nota al margen: ¡no veo la hora de que podamos volver a hacerlo!) es una pieza muy importante de la creación de una red de personas a las que podemos acudir en busca de ayuda, ya sea que estemos atascados en un proyecto o busquemos asesoramiento profesional. Si bien muchas de estas conferencias las organiza la misma comunidad, participamos en estos eventos en todo el mundo y buscamos interactuar con la comunidad, esté donde esté. También organizamos la Android Developer Summit y Android Track en Google I/O.
Las apps te conectan con las personas, te ayudan a hacer tareas con facilidad e incluso te ayudan a adquirir nuevas habilidades. Durante el último año, muchos tuvimos que encontrar nuevas maneras de hacer tareas, de modo que tuvimos que acudir a las apps más que nunca, lo que aumentó la demanda de desarrolladores de apps. De hecho, los empleos de desarrolladores crecen 5,5 veces más rápido que otras profesiones (según laOficina de Estadísticas Laborales de EE. UU.). En Android DevRel, tenemos el privilegio de crear programas de estudio y trabajar con universidades y grupos de estudiantes de todo el mundo para mejorar las habilidades de las próximas generaciones de desarrolladores.
Entrenar a la próxima generación de desarrolladores de Android
¿Quieres unirte a Android DevRel? Echa un vistazo a las funciones que se muestran a continuación. Con frecuencia, Google usa un solo directorio para que las personas puedan postularse con facilidad. Por lo tanto, si en el nombre de la función no se incluye “Android DevRel”, en tu carta de presentación solo debes decir que te interesa unirte a nuestro equipo.
Android DevRel colabora con desarrolladores de todo el mundo. Queremos que nuestro equipo represente a todos los desarrolladores con los que trabajamos y creemos que los equipos diversos compilan mejores productos para todos. Si formas parte de un grupo subrepresentado en el sector de tecnología, postúlate incluso si no crees que cumples con todos los requisitos y lee sobre lo que estamos haciendo para hacer de Google una empresa más diversa e inclusiva.
Continúa leyendo para conocer las funciones que están disponibles hoy:
A veces, las personas dicen que la infraestructura de la nube está mercantilizada y no diferenciada. En Google Cloud, nos gusta pensar que está diferenciada, al igual que el contenido que les gusta leer a los visitantes de nuestro blog. Año tras año, los blogs sobre computación, almacenamiento y redes, al igual que los que tratan de infraestructura física, como centros de datos y cables, siempre se encuentran entre los contenidos más leídos del año. Aquí están las principales historias de infraestructura de Google Cloud de 2021, ordenada según la elección de los lectores. Sigue leyendo para revivir tus favoritas o para ponerte al día con las historias que te hayas perdido.
Las noticias sobre nuestros cables submarinos son una de las favoritas de los lectores, y el anuncio de Dunant, que está listo para operar, no fue una excepción. Anunciado originalmente en 2018, el cable Dunant transmitirá 250 terabits de datos por segundo entre EE. UU. y Francia. Obtén más detalles aquí.
¡Sumamos una nueva incorporación a nuestra familia de Compute Engine este año! Basado en procesadores AMD EPYC de tercera generación, el T2D (el primer tipo de instancia de la familia Tau VM) ofrece un rendimiento absoluto un 56% más alto y un rendimiento de precio un 42% más alto en comparación con las máquinas virtuales de uso general de cualquiera de los principales proveedores de nube pública, todo sin tener que rediseñar sus cargas de trabajo para otra arquitectura de microprocesador. Lee el blog aquí.
No es novedad que muchas de las tecnologías que subyacen a Google Cloud se diseñaron originalmente para impulsar a Google en su conjunto, y el sistema de archivos Colossus es solo un ejemplo. En esta publicación, los líderes de almacenamiento de Google te muestran el detrás de escena de la arquitectura Colossus y cómo ofrece su impresionante escalabilidad. Encontrarás más información aquí.
Año tras año, sigue creciendo la cantidad de lugares donde puedes encontrar una región de Google Cloud. Hace un año, anunciamos nuevas regiones en Chile, Alemania y Arabia Saudita. Recientemente, anunciamos que abriríamos una segunda región en Alemania y nuevas regiones de EE. UU. en Columbus, Ohio y Dallas, Texas.
Junto con una nueva región de GCP en Chile, también anunciamos que estamos construyendo un cable submarino a Sudamérica que va desde la costa este de los Estados Unidos hasta Argentina. Firmina se une al cable submarino Curie, que toma una ruta por el Pacífico desde los EE. UU. hasta Sudamérica. Lee sobre Firmina aquí.
Cualquiera que ejecute cargas de trabajo de misión crítica en la nube necesita una forma sencilla de realizar copias de seguridad. Backup for GKE, una solución de copia de seguridad propia que facilita la protección de datos con estado de las apps que se ejecutan en GKE, fue uno de nuestros lanzamientos de almacenamiento más populares de 2021. Lee todo al respecto aquí.
Mientras tanto, en la tierra de las redes de Google Cloud, los lectores se deleitaron con las noticias de nuestro nuevo centro de conectividad de red, una solución de administración de red que funciona en redes locales y en redes basadas en la nube. Obtén más detalles.
Las personas usan la palabra “borde” todo el tiempo, pero ¿qué significa con exactitud, especialmente en el contexto de Google Cloud? En esta entrada popular del blog, conocerás la diferencia entre las regiones y zonas de Google Cloud, los POP de borde, Cloud CDN, los POP de Cloud Interconnect, los nodos de borde y las extensiones de región. Lee todo al respecto.
Además de los lanzamientos de nuevos productos, el contenido que resuena de manera más confiable entre los lectores suelen ser los explicadores. En esta pieza de almacenamiento superior, aprende lo que queremos decir con 11 nueves y las técnicas que utiliza Cloud Storage para lograrlo. Echa un vistazo.
Con toda esta gran tecnología, es apropiado que Google Cloud haya sido nombrado líder en el Cuadrante Mágico de Gartner de 2021 para servicios de plataforma y de infraestructura en la nube. ¡Nuevamente! Consulta el blog y regístrate para leer el informe completo aquí.
Con suerte, esta lista te dará una idea de qué se trata el alboroto por la infraestructura de Google Cloud. ¡Gracias por leer y sigue atento en 2022!
Artículo relacionado
En computación, redes y almacenamiento, Google Cloud tiene una infinidad de características que lo convierten en la mejor opción.
Publicado por Purnima Kochikar, vicepresidenta de Google Play Partnerships
Hola.
Hoy lanzamos Notas de Google Play, una nueva serie en la que celebraremos por su impacto y creatividad varias veces al año, y compartiremos información valiosa y prácticas recomendadas para inspirarlos a ser más audaces, ir más lejos y crear apps y juegos más innovadores.
Purnima Kochikar aborda nuestros objetivos en la serie “Notas de Google Play”.
2021 fue otro año lleno de incertidumbre y desafíos, y ustedes nos inspiraron con su capacidad de convertir obstáculos en apps y servicios útiles y divertidos. Tus apps ayudaron a más de 2500 millones de usuarios de dispositivos Android a aprender, conectarse, relajarse, ejercitarse, reír, divertirse y mucho más. Como resultado de esto, los desarrolladores con ingresos superiores a un millón de dólares por mes que utilizan el servicio de facturación de Google Play y aquellos con diez millones de usuarios activos mensuales aumentaron un 30% este año.
En esta edición inaugural de Notas de Google Play, celebramos su creatividad y resiliencia. Un desarrollador que ejemplificó estas características y que nos conmovió e inspiró a mí y a mi equipo es Mohammed Kamara. Gracias, Mo, por canalizar tu terrible pérdida personal a fin de crear un mundo mejor para las mujeres de raza negra, en el que reciben atención sanitaria asequible y personalizada a través de la app. Nos enorgullece haber podido hacer realidad tu visión de InovCares.
Mohammed Kamara, director general y fundador de InovCares, cuenta la historia detrás de su innovadora app de atención sanitaria.
Enviamos un saludo especial a los ganadores de Lo mejor de Google Play y el Indie Games Festival. Todos ustedes nos inspiran a continuar trabajando duro para mejorar Play y Android, y permitirles crear excelentes apps y empresas exitosas.
Este enfoque en ustedes y su éxito trajo muchos avances importantes en 2021, que incluyen la evolución de nuestro modelo de negocios, además de nuevas funciones y herramientas para nuestros productos. En Google Play nos enfocamos en dos objetivos claves: ayudar en la creación y el desarrollo de empresas globales sostenibles e invertir en funciones, herramientas y ecosistemas de las plataformas de Android y Play que les permitan crear apps y juegos innovadores.
En el proceso de maduración de la industria de dispositivos móviles, han creado empresas de apps con necesidades diferentes, por lo que diseñamos varios programas para ayudarlos. Por ejemplo, creamos el programa Play Media Experience, que ayuda a los desarrolladores de video, audio y libros a crear excelentes experiencias en diferentes dispositivos, mientras asistimos a las apps que apoyan a los autores y a los músicos reduciendo la tarifa de servicio hasta en un 10%. Hace algunos meses, anunciamos una nueva estructura de tarifas para apoyar la evolución del modelo empresarial de suscripciones, lo cual permite que todos los desarrolladores de apps con suscripciones se beneficien con las tarifas más bajas. Gracias a los cambios innovadores que anunciamos este año, me complace anunciar que el 99% de los desarrolladores de todo el mundo ahora califican para una tarifa de servicio del 15% o inferior. Agradecemos que los comentarios constructivos que enviaron mientras diseñábamos estos programas y el apoyo desde que lanzamos la nueva estructura de tarifas.
También continuamos invirtiendo en programas que les permiten llegar a sus usuarios, retenerlos y volver a atraerlos.
Nos comprometemos a apoyarlos para que transformen sus ideas creativas en apps excelentes, por lo que creamos herramientas y lineamientos a fin de garantizar que sus apps sean de alta calidad. Los invito a prestar atención a tres funciones y lineamientos claves:
La confianza y la seguridad son los pilares del éxito sostenible de las empresas y son claves para la lealtad de los usuarios. Este año, continuamos invirtiendo en funciones y políticas de la plataforma que los ayudarán a crear apps más seguras y fortalecer la confianza de los usuarios. También recibimos sus comentarios e invertimos en herramientas y recursos educativos para ayudarlos a anticipar y entender las nuevas funciones y políticas. Los momentos claves de este año:
Nada me emociona más que encontrar y apoyar a la siguiente generación de desarrolladores talentosos y crear ecosistemas locales alrededor del mundo que aborden las necesidades locales. A principios de este año, anunciamos una categoría de tarifa de servicio reducida del 15% en el primer millón de dólares de ingresos anuales para todos los desarrolladores, lo que nos permite fomentar la innovación en Android/Play.
Fue muy gratificante ver a influencers, partes interesadas y líderes del sector y gubernamentales apoyar este esfuerzo junto a nosotros. Nuestros desarrolladores más exitosos invirtieron su tiempo y energía personales para instruir, entrenar y apoyar a desarrolladores independientes mediante Indie Games Accelerator. Varios líderes gubernamentales se asociaron con nosotros para apoyar los ecosistemas emergentes en países como Corea y la India. El programa ChangGoo en Corea se creó en asociación con el Ministerio de Pymes y Empresas Emergentes (SMEs and Startups, MSS) y el Korea Institute of Startup & Entrepreneurship Development (KISED), mientras que Appscale Academy en la India se estableció en asociación con MeitY Startup Hub, una iniciativa del Ministerio de Tecnología Electrónica y de la Información (Ministry of Electronics and Information Technology, MeitY). Les agradecemos por su compromiso con la innovación y el ecosistema de apps.
Está disponible el resumen de Appscale Academy, nuestro programa de crecimiento y desarrollo para empresas emergentes en la India.
Extrañé verlos en persona durante los últimos dos años. Los desafíos impuestos por el COVID-19 nos ayudaron a encontrar nuevas maneras de seguir conectados. Muchos de ustedes participaron en sesiones virtuales para aprender sobre nuevas oportunidades en el mercado e iniciaron discusiones interesantes en línea sobre temas tan diversos como el futuro del trabajo, la diversidad, la equidad, la inclusión y las estrategias de crecimiento y expansión global. Algunos de ustedes nos dijeron que se sienten fatigados por los eventos en línea, por lo que este año también invertimos en contenido que pueden consumir a su propio ritmo, que incluye cursos sobre liderazgo conceptual y prácticas recomendadas y cursos de aprendizaje en línea en la Academia de Play. Incluso, lanzamos nuestro primer certificado para ayudarlos a aprovechar al máximo nuestras herramientas y funciones del directorio de la tienda.
Nos vemos en la próxima edición. Mi equipo y yo les deseamos lo mejor para el próximo año. Esperamos que siempre vean a Google Play como un socio que los ayudará a complacer a usuarios, expandir su audiencia y hacer crecer su empresa.
Felices fiestas.
Purnima Kochikar,
Vicepresidenta, Google Play Partnerships
No se pierdan las próximas ediciones; síganme a mí o sigan nuestra cuenta en Twitter o regístrense para recibir nuestro boletín informativo mensual.
Te damos la bienvenida a Now in Android, una guía que actualizamos constantemente con las novedades más importantes sobre el desarrollo de Android. Ahora que nos acercamos al final de 2021, reflexionemos sobre algunas de las cosas que hicimos este año en Android.
Lanzamos Android 12 y lo incorporamos al Proyecto de código abierto de Android (AOSP). Presentamos un nuevo lenguaje de diseño llamado Material You. Disminuimos el tiempo de CPU que usan los servicios centrales del sistema, agregamos capacidades de dispositivo de clase de rendimiento, y sumamos nuevas funciones para mejorar el rendimiento. Los usuarios tienen más control de su privacidad con el panel de privacidad y otras nuevas funciones de seguridad y privacidad. Mejoramos la experiencia del usuario con una API unificada para inserción de contenido enriquecido, transcodificación de contenido multimedia compatible, difuminados y efectos más sencillos, compatibilidad con imágenes AVIF, tecnología táctil mejorada, nuevas capacidades y efectos de cámara, depuración mejorada de fallas por error en código nativo, compatibilidad con pantallas de esquinas redondeadas, juego durante la descarga y API de modo de juego.
Además, Android 12L está disponible en versión beta, lo que hace que Android 12 sea incluso mejor en pantallas grandes. Incluye herramientas para que la capacidad multitarea sea más intuitiva, contiene mejoras en el modo de compatibilidad y mucho más. Pruébalo hoy.
Jetpack Compose, el moderno kit de herramientas de IU nativas de Android logró estabilidad y está listo para que lo adoptes en la producción. Funciona de manera integrada con tu app existente, se integra con bibliotecas de Jetpack existentes, implementa Material Design con temas sencillos, es compatible con listas con componentes diferidos con mínimo uso de código estándar, y cuenta con un sistema de animación poderoso y extensible. Puedes obtener más información sobre cómo trabajar con Compose en la ruta de aprendizaje de Compose y ver hacia dónde vamos en las futuras versiones en la guía de Compose.
Este año, el equipo de capacitación de Android lanzó las últimas cuatro nuevas unidades finales de Conceptos básicos de Android en Kotlin.
Fue un excelente año para MAD Skills, ya que se lanzaron varias series de video y blogs sobre muchos temas importantes:
Si deseas obtener más contenido, recuerda consultar la lista de reproducción de MAD Skills en YouTube, los artículos en Medium o esta página de destino útil, en la que se muestra todo el contenido.
Este año disfrutamos de los eventos de Google I/O y Android Dev Summit, virtuales y gratis para todos.
En I/O lanzamos actualizaciones para Jetpack, Compose, Android Studio, pantallas grandes, Wear OS, ejecución de pruebas y mucho más. ¡Ponte al tanto de todos los videos de Android de I/O!
En Android Dev Summit lanzamos actualizaciones para privacidad y seguridad, pantallas grandes, Android 12, Google Play y Play Games, compilación para diferentes pantallas, Jetpack Compose, desarrollo moderno de Android y mucho más. ¡Mira todos los videos de ADS!
Lanzamos nuevas guías de arquitectura de apps, estabilizamos las bibliotecas de Jetpack de Wear OS, estabilizamos Hilt, lanzamos Android Game Development Kit, creamos una serie de videos sobre accesibilidad, lanzamos la biblioteca de aplicaciones de Android for Cars y mucho más.
Si deseas obtener contenido de Android de forma constante, puedes consultar nuestro blog, el canal de Medium, el canal de YouTube y nuestro podcast.
Gracias por mantenerte al tanto, crear apps increíbles, hacer comentarios y ser parte de nuestra comunidad mundial de desarrolladores. ¡Volveremos en 2022 con más actualizaciones de Android! 😍😍😍