P: ¿Qué es mejor que una API nueva?
R: Una API existente que haga cosas nuevas.
Wojtek Kaliciński y Ben Weiss están trabajando en una nueva API del componente de navegación que facilita el uso de los módulos de funciones dinámicas mediante la misma API de navegación que ya utilizas para los destinos no dinámicos.
Comencemos con algo de historia y terminología:
Android App Bundle es el nuevo formato de app (el primero desde la invención del APK) que permite a los desarrolladores subir un superconjunto de lo que necesitan todos los usuarios. Luego, Play Store determina el subconjunto que se instalará en un dispositivo determinado (según su configuración). Con esto, los desarrolladores pueden abarcar más fácilmente todas las situaciones posibles sin tener que subir demasiados APK distintos, y Play Store puede reducir el tamaño de las descargas solo a lo que es necesario.
Los módulos de funciones dinámicas ofrecen a los desarrolladores la capacidad adicional de dividir su app en partes distintas (módulos) que no hace falta instalar de inmediato. Así, es posible instalar una app con el subconjunto mínimo que haga falta para iniciarla y se pueden instalar los módulos posteriores (por ejemplo, recursos adicionales de rutas opcionales en la app) más adelante, cuando sea necesario.


Los desarrolladores pueden usar las API en la biblioteca de Play Core para solicitar manualmente la descarga e instalación de módulos de funciones dinámicas.
Sin embargo, ahora estos módulos son más sencillos gracias a la versión 2.3.0 del componente de navegación. Puedes usar la llamada de navegación habitual navigate(). Si el destino es un módulo de funciones dinámicas, la biblioteca se ocupa de los pormenores relativos a la descarga e instalación de las partes necesarias.
Por el momento, la biblioteca se encuentra en la versión Alfa y es posible que no esté preparada para el código de producción que uses. Sin embargo, si quieres usar esta funcionalidad, hazlo y envíanos tus comentarios. Consulta los documentos para obtener más información y prueba el ejemplo que Ben Weiss publicó la semana pasada.

Artículos

Abstracciones sin costo* en Kotlin

Abstracciones sin costo* en Kotlin
Florina Muntenescu sigue explicándonos el vocabulario de Kotlin con este artículo sobre las clases integradas, que son una función experimental de Kotlin 1.3.50.
Las clases integradas pueden ofrecer un nivel mejorado de seguridad de tipo para variables que, de otro modo, podrían generar conflictos y errores en el tiempo de ejecución. Lo mejor de todo es que pueden hacerlo sin agregar sobrecarga* porque se compilan en un código que usa el tipo subyacente en lugar de crear la clase que encapsula el tipo.
* Según el uso de la clase. Consulta el artículo para conocer los detalles y las desventajas.

Ajustes de estilo de Android: comparación entre temas y estilos

Ajustes de estilo de Android: comparación entre temas y estilos
Comúnmente, se confunden los conceptos y el uso de los temas y los estilos. Después de todo, ambos usan la etiqueta <style>, por lo que se ven muy similares a simple vista.
Nick Butcher empezó a escribir una nueva serie de artículos para ayudar a explicar con mayor profundidad este aspecto del desarrollo de Android.
En este primer artículo, Nick analiza la diferencia entre los temas y los estilos, y en qué situaciones los desarrolladores pueden elegir uno u otro.
Nota: Estos artículos amplían la información que Nick Butcher y Chris Banes presentaron en Android Dev Summit:

Episodios del podcast de ADB

Desde la última edición de Ahora en Android, se publicó un episodio del podcast de Android Developers Backstage. Escúchalo en el siguiente vínculo o en tu cliente de podcast favorito:

ADB 132: almacenar datos con Store

Episodio 132: Almacenar datos con Store
Uno de los patrones de almacenamiento y recuperación de datos que recomendamos en nuestra Guía de arquitectura de apps es usar un repositorio, que tiene una capa de abstracción además del lugar del que provienen los datos. Por ejemplo, imagina que tienes datos almacenados en una memoria caché local y en un servidor en el otro extremo de la red. Con este enfoque, puedes usar código para obtener los datos sin tener que preocuparte por el lugar donde residen ni la forma de conseguirlos, ya que es el repositorio el que se encarga de eso.
Tener una técnica es fantástico, pero sería todavía mejor tener una API que facilitara el proceso.
Allí es donde entra en juego la biblioteca Store (por el momento, en versión Alfa). En este episodio, hablamos con Mike Nakhimovich de Dropbox y Yigit Boyar del equipo de Android Toolkit. Mike lidera el desarrollo de la biblioteca Store de código abierto (que Yigit modifica en su tiempo libre).

Para terminar…

Eso es todo por hoy. Echa un vistazo a la serie de videos y el podcast de Ahora en Android. Prueba las versiones de AndroidX más recientes. Visita la nueva biblioteca de navegación para navegar con módulos de funciones dinámicas. Lee los artículos sobre clases integradas en Kotlin y sobre la comparación entre temas y estilos. Escucha el último episodio del podcast de ADB. Te esperamos pronto para ofrecerte más novedades desde el universo de desarrolladores de Android.