♪ [música de introducción] ♪ En las aplicaciones móviles, los eventos asincrónicos
pueden ocurrir en cualquier momento. Los eventos táctiles del usuario, la
espera de que se completen las llamadas de red o la recepción de notificaciones automáticas
son algunos ejemplos. Como desarrollador de aplicaciones, tener en
cuenta estos diferentes eventos y combinarlos
con otros eventos asincrónicos a veces puede ser un desafío. Hola, soy Chris y bienvenido a la serie
sobre mapas reactivos en Android para ayudarlo a escribir
aplicaciones de mapas reactivos y con capacidad de respuesta. Estoy trabajando en una aplicación en este momento
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 cambió un lugar con el tiempo. Quiero que mi aplicación responda
a los eventos de los usuarios, por lo que no solo quiero que mi
aplicación muestre lugares a su alrededor, 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 tiene soporte para
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 se queda inactiva, por lo que sé
que sería un buen momento para actualizar el mapa y mostrar más lugares en
relación 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 se quedara inactiva. Como 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,
estoy proporcionando una devolución de llamada que se invocaría
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 llamadas 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 un flujo que emite elementos a lo largo del tiempo. Con 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 de Kotlin
con la biblioteca KTX de mapas o a un objeto observable RxJava
con la biblioteca Rx de mapas.
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 Observable de RxJava para recibir eventos. Ambas bibliotecas
le permitirán escribir código de manera reactiva. El específico que debe usar
en su aplicación depende completamente de usted y debe sopesarse con
la arquitectura de su aplicación. Si desea sumergirse 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] ♪ [aplausos] – (de fondo) GCO69
– Oh , cierto, GCO69. Tomar uno. [aplaudir].