Intro to reactive programming on Android part 1

♪ [música de introducción] ♪ En las aplicaciones móviles, los eventos asincrónicos
pueden ocurrir en cualquier momento. Algunos ejemplos son eventos táctiles del usuario,
esperar a que se completen las llamadas de red o recibir notificaciones automáticas
. Como desarrollador de aplicaciones,
tener en cuenta estos diferentes eventos y combinarlos
con otros eventos asincrónicos a veces puede resultar un desafío. Hola, soy Chris y bienvenido a la serie
sobre mapas reactivos en Android para ayudarte a escribir
aplicaciones de mapas reactivos y responsivos. Estoy trabajando en una aplicación ahora
llamada Old Places. Es una aplicación que te muestra
lugares a tu alrededor que tienen fotos antiguas disponibles para que puedas ver
cómo un lugar cambió con el tiempo. Quiero que mi aplicación responda
a los eventos de los usuarios, así que no solo quiero que mi aplicación
muestre lugares alrededor de ellos, sino que también quiero que mi aplicación responda
y muestre más lugares a medida que se desplazan por el mapa.

El SDK de Maps para Android admite escuchar
diferentes eventos. Como cuando la cámara comienza
y deja de moverse. Los eventos específicos que me interesan
son cuando la cámara queda inactiva, así que sé que
sería un buen momento para actualizar el mapa y mostrar más lugares
relacionados con la nueva ubicación. Para usar esto, proporcionaría una devolución de llamada, que se invocaría cada vez que
la cámara quede inactiva.

Dado que necesito realizar una llamada de red
para obtener nuevos lugares, debo asegurarme de realizar
esa solicitud fuera del hilo principal para no bloquear la interfaz de usuario. En esta implementación,
proporciono una devolución de llamada que se invocará
cuando se complete la solicitud. Además, para evitar llamadas innecesarias
a mi servidor, me gustaría implementar un retraso
para que la llamada de red solo se invoque cuando la cámara deje de moverse
durante al menos medio segundo. Como puede ver, componer todos estos
eventos asincrónicos puede resultar complicado.

Cada finalización asincrónica
requiere una devolución de llamada, por lo que cuando se encadenan,
afecta la legibilidad de su código. Como alternativa a pasar devoluciones de llamada
para eventos asincrónicos, la programación reactiva
ha ganado popularidad en la comunidad de Android, ya que ayuda a simplificar el trabajo
con eventos asincrónicos. Con la programación reactiva,
los eventos se modelan como una secuencia que emite elementos a lo largo del tiempo. Usando las bibliotecas que compartiré
contigo en la serie, puedes reescribir el mismo código
para escuchar los eventos de la cámara. A un objeto de flujo Kotlin
con la biblioteca Maps KTX o a un objeto observable RxJava
con la biblioteca Maps Rx. En los próximos dos videos,
compartiré más detalles sobre estas bibliotecas para SDK de Android,
que le permiten escribir código reactivo. Con la biblioteca KTX,
puede usar KotlinFlows y con la biblioteca Maps Rx,
puede usar los objetos observables de RxJava para recibir eventos.

Ambas bibliotecas
le permitirán escribir código de forma reactiva. El específico que debes usar
en tu aplicación depende completamente de ti y debe sopesarse con la
arquitectura de tu aplicación. Si desea profundizar directamente en el código,
consulte los enlaces de GitHub en la descripción del video a continuación; de lo contrario, permanezca atento para obtener más información. ♪ [música final] ♪ [aplauso] – (de fondo) GCO69
– Oh, claro, GCO69. Toma uno. [aplaudir].

As found on YouTube