Edición n.º 28 de Now in Android

Ilustración de Virginia Poltrack

Navegación de MAD Skills, bibliotecas de AndroidX, vocabulario de Kotlin, artículos y videos, un programa Nanodegree sobre desarrollo de Kotlin para Android y un episodio de podcast sobre Paging

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.

MAD Skills: Navigation

MAD Skills es una nueva serie de contenido con la que los desarrolladores pueden aprender a usar las tecnologías de desarrollo moderno de Android para crear mejores aplicaciones con más facilidad. La serie acababa de lanzarse cuando publiqué la última edición de Now in Android. Pasaron algunas semanas y la primera miniserie sobre el componente Navigation ya está completa. Bueno… casi completa. Nos queda el último episodio de Navigation: una sesión de preguntas y respuestas en vivo.

Algo que queríamos hacer con MAD Skills era trascender el mero hecho de enseñar a usar varias características del desarrollo moderno de Android para escuchar también comentarios sobre problemas o preguntas que tengas con el objetivo de tratar de ayudarte. Al final de cada miniserie, realizaremos una sesión de preguntas y respuestas en vivo por YouTube precisamente con ese fin.

Antes, nos comunicaremos por Twitter para recibir algunas preguntas del público. También intentaremos presentar las preguntas en vivo, tanto en Twitter como en YouTube. Luego, tendremos una conversación con algunos de los expertos que trabajan en el producto y escucharemos sus recomendaciones.

En lo que respecta a Navigation, realizaré una sesión de preguntas y respuestas en vivo con Ian Lake este jueves a las 10 a.m. (hora del Pacífico). Envía las preguntas que tengas por esta conversación de Twitter (o publica tuits en #AskAndroid) y súmate a la sesión si puedes hacerlo. Cuando la sesión termine, publicaremos el video para que puedas verla incluso si no pudiste participar en vivo.

Si te perdiste los episodios de Navigation, puedes consultarlos en video o en formato de artículo:

Si deseas obtener contenido de forma constante, recuerda consultar la lista de reproducción de MAD Skills en YouTube, los artículos en Medium o esta práctica página de destino que contiene enlaces a todos ellos. Además, mantente al tanto para recibir más contenido de MAD; ¡la serie siguiente comienza la próxima semana!

https://medium.com/media/c7e90cb6fd9d89ffe4f6ae760270b530/href

AndroidX

Bibliotecas de Android en GitHub

Antes que nada, AndroidX ha puesto más bibliotecas a disposición con el fin de sumar contribuciones a través de GitHub.

Sabemos que muchos desarrolladores prefieren el flujo de contribuciones familiar de GitHub frente al sistema de AOSP+Gerrit que usa Android tradicionalmente y que les complacería vernos usar más GitHub.

¡Esa es una excelente idea! No obstante, es algo difícil de concretar (si consideramos la infraestructura con la que contamos). De todas maneras, te escuchamos y comenzamos a analizar esta opción. Por este motivo, desde hace unos meses, iniciamos el desarrollo activo de un pequeño grupo de bibliotecas en GitHub, con Paging, Room y WorkManager. Hace poco, también agregamos las bibliotecas de Activity, Fragment y Navigation. Consúltalas y, si deseas contribuir, obtén más información en el documento CONTRIBUTING.

Versiones estables

Estaba la enorme cantidad habitual de versiones estables alfa, beta, RC y menores, incluida esta versión estable destacada:

MediaRouter 1.2.0: esta versión es interesante porque incorpora la funcionalidad de sincronización con algunas de las funcionalidades de medios nuevas de Android 11.

Android 11 agregó una cantidad de detalles de UI a los reproductores multimedia, con lo cual envió los controles multimedia a un nuevo espacio dedicado en el panel de notificaciones, a fin de facilitar el control multimedia desde un solo lugar para evitar intercalarlo con el resto de las notificaciones. Esto no tiene que ver con una nueva funcionalidad para desarrolladores, sino con una presentación diferente para las notificaciones que probablemente ya estés creando; puedes continuar usando las API de MediaSession y MediaStyle que están disponibles desde el lanzamiento de Lollipop.

No obstante, se agregaron algunas funcionalidades nuevas en Android 11 para la “transferencia multimedia sin dificultades” que permite que los usuarios cambien el dispositivo de reproducción a través del interruptor de salida (que se muestra a continuación). Esta edición nueva de MediaRouter te permite interactuar con esta nueva capacidad de la plataforma.

Esta nueva edición de MediaRouter te permite controlar qué dispositivos de reproducción se muestran en el interruptor de salida a fin de que los usuarios puedan desplazar el audio de un lugar a otro sin dificultades.

Si deseas ver los cambios multimedia en Android 11, consulta el video What’s New in media de Don Turner.

Ahora disponible en versión alfa

También quería informar sobre un par de versiones alfa interesantes. Por lo general, no explico en detalle las versiones alfa porque, bueno, son alfa y, en consecuencia, están sujetas tanto a cambios como a iteración a medida que el equipo continúa su trabajo en ellas. Pero hubo versiones nuevas de Paging y Navigation (¡justo hoy!) que son interesantes en términos de lo que implican con respecto al desarrollo futuro.

Una de las preguntas que recibimos bastante en el último tiempo, mientras Jetpack Compose realiza el recorrido por su versión alfa, es «¿Cuál es el futuro de [inserta tu biblioteca favorita de Jetpack aquí] en un mundo de Jetpack Compose»?

¡Y esa es una excelente pregunta! La respuesta es que muchos de los componentes de la arquitectura no tratan específicamente sobre las vistas o el kit de herramientas de la UI, por lo cual serán igualmente necesarios y útiles en el nuevo mundo de Jetpack Compose. Aparte de eso, compilamos integraciones para facilitar el trabajo conjunto de diferentes componentes. Compose ya ofrece integraciones con ViewModels y LiveData y, en la actualidad, marca la primera versión de compatibilidad de Paging y Navigation para Jetpack Compose.

Vocabulario de Kotlin

Hace poco hubo tres publicaciones sobre las funciones del lenguaje de Kotlin que quizás desees consultar.

Desestructuración

Florina Muntenescu publicó un artículo y un video nuevos sobre la función de desestructuración de Kotlin. La desestructuración ofrece una forma práctica de asignar variables múltiples a los valores de los diferentes campos de un objeto. Por ejemplo, podrías tener la siguiente clase de datos:

data class Donut(
dough: String,
topping: String
)

y asignar variables con rapidez a los campos de la instancia Donut con:

val (dough, topping) = someDonut

La desestructuración funciona automáticamente en el caso de las clases de datos, pero puedes ofrecer funciones en otras clases a fin de otorgarles una capacidad de desestructuración de la misma forma.

Desglose de las declaraciones de desestructuración

https://medium.com/media/0d3269ed0989258715d596514447e76c/href

Extensiones

Meghan Mehta presentó un artículo nuevo que habla acerca de la función de extensiones del lenguaje de Kotlin. Las extensiones te permiten agregar métodos o propiedades nuevos a clases existentes… o algo así. En realidad, las extensiones no se insertan en una clase existente, pero parecen hacerlo para los llamadores de esos métodos. (Spoiler: se implementan de manera interna como métodos estáticos que reciben una instancia de la clase).

Es probable que esta sea mi característica favorita de Kotlin: como desarrollador de API, me encanta la idea de ser capaz de mejorar las API en el futuro mediante la incorporación de API que puedan vivir fuera del núcleo de la plataforma o biblioteca, pero que funcionen sin problemas cuando las uses en tu código. Entonces, por ejemplo, podría crear un método de extensión en la clase String (tec.), String.isAGoodDonutName(). Luego, los llamadores que usan mi método de extensión llamarían ese método de manera directa en una String, por ejemplo «Sprinkle».isAGoodDonutName() en lugar del enfoque en otros lenguajes de llamarlo a través de algún otro paquete o alguna otra clase, por ejemplo Utils.StringMethods.isAGoodDonutName(«Sprinkle»). Eso no es tan agradable, ni siquiera si en el ejemplo hablamos de donas.

Extensión de la legibilidad del código con las extensiones de Kotlin

Corrutinas

Por último, Manuel Vivo publicó un video nuevo sobre «Los ABC de las corrutinas», en el cual explica temas como CoroutineScope, CoroutineContext, Dispatchers y Jobs. Bueno, quizás sea más parecido a CDJ que a ABC de las corrutinas.

https://medium.com/media/c3d143c90fcf7884230b094d90d0553e/href

Artículos y videos

Infracción de las políticas comunes de reproducción

Uno de los aspectos engañosos de la publicación de aplicaciones es garantizar que dichas aplicaciones cumplan con las pautas de la tienda, que están en vigencia a fin de generar un buen ecosistema de aplicaciones para los usuarios. Pero, a veces, puede ser difícil determinar con exactitud cómo se puede hacer eso de la forma correcta. Por lo tanto, Play Store publicó este artículo para ayudarte a comprender algunas de las infracciones comunes que pueden causar problemas y cómo puedes evitarlas.

Algunas de estas áreas incluyen UI de las aplicaciones con enlaces externos a Play Store, descripciones que están más centradas en términos de búsqueda que en un resumen claro de la aplicación y aplicaciones que simplemente actúan como wrapper de WebView alrededor del contenido del sitio web.

Consejos y pautas para desarrolladores: Infracciones frecuentes de las políticas y cómo evitarlas

Presentaciones de conferencia

Droidcon tomó un enfoque interesante durante esta temporada de conferencias exclusivamente en línea cuando combinó todos sus acontecimientos anuales en eventos más grandes, del tamaño de toda la zona horaria. La versión de EMEA correspondiente a esta conferencia se realizó en octubre y todos esos videos (realizados por algunos de los miembros de nuestro equipo, al igual que por muchos desarrolladores de la comunidad más amplia) ahora están disponibles en línea:

Videos

(Mantente al tanto a fin de informarte sobre las versiones para las Américas y APAC, que se realizarán en las próximas semanas).

MotionTags

La serie de capturas de pantalla de video MotionTags publicó dos episodios más desde la última vez.

En el episodio 7, se abarca <KeyAttribute>, que es la etiqueta que contiene propiedades sobre la visualización, como sus valores de transformación y alfa.

En el episodio 8, se abarca <KeyCycle>. Esta etiqueta posee muchos de los mismos atributos que KeyAttribute, pero también ofrece propiedades que definen la forma de onda que se usa para una animación, lo que puede provocar un comportamiento de movimiento complejo verdaderamente interesante. Ten en cuenta que existe una herramienta CycleEditor independiente que facilita la creación y edición de KeyCycles.

Puedes ver estos episodios, junto con el resto de la serie en la lista de reproducción MotionTags:

https://medium.com/media/18317bfa1c016d6acb36c117adf3db7a/href

Capacitación

Hace poco, se lanzó el nuevo nanogrado de desarrollador de Kotlin para Android en Udacity. Esta edición del curso está destinada a personas que desean aprender a compilar apps para Android en Kotlin de la mano de las prácticas recomendadas. Para conocer los requisitos previos y obtener más detalles, consulta la descripción general del programa.

Ten en cuenta que el nanogrado es un programa pago que incluye proyectos con comentarios, asistencia con mentores técnicos y servicios profesionales de Udacity. Sin embargo, el contenido subyacente del curso que desarrolló Google con Udacity es gratuito, y todos pueden consultarlo. Puedes consultar ese contenido en Desarrollo de apps para Android con Kotlin y Android Avanzado con Kotlin.

Episodios de podcast

Desde la última edición de Now in Android, ha habido otro episodio de Android Developers Backstage. Escúchalo en el siguiente vínculo o en tu cliente de podcast favorito:

ADB 151: Paging 3

Romain Guy y yo conversamos con Dustin Lam y Chris Craik del equipo Android Toolkit con respecto a la nueva versión 3.0 de la biblioteca de Paging («Paging 3»). Esta versión (actualmente en alfa) es una reescritura completa en Kotlin, con corrutinas y Flow, por varios motivos que se incorporarán en el podcast. Consúltalo para obtener más información.

Episodio 151: Paging 3

Ahora bien,

eso es todo por hoy. Consulta la serie MAD Skills. Descarga las bibliotecas de AndroidX más recientes. Obtén más información acerca de las funciones de lenguaje de Kotlin. Consulta los últimos artículos y videos del desarrollador. ¡Obtén un nanogrado! Escucha el episodio más reciente del podcast de ADB. Te esperamos pronto para ofrecerte más novedades desde el universo de desarrolladores de Android.

Source: Google Dev

Deja un comentario