RxJava es una biblioteca JVM que utiliza secuencias observables para realizar programación asíncrona y basada en eventos. Sus bloques de construcción principales son las triples O, que significan Operador, Observador y Observables. Y los usamos para completar tareas asincrónicas en nuestro proyecto. Simplifica enormemente los subprocesos múltiples en nuestro proyecto. Nos ayuda a determinar en qué subproceso queremos ejecutar la tarea.
GeekTip: RxJava, por otro lado, está diseñado principalmente para proyectos Java. Se requiere RxAndroid para usar RxJava en Android.
¿Qué es exactamente RxAndroid?
RxAndroid es una extensión de RxJava para Android que solo se usa en aplicaciones de Android. RxAndroid agregó el subproceso principal requerido por Android. Necesitaremos Looper y Handler para la ejecución de Main Thread para poder trabajar con multithreading en Android.
Nota: RxAndroid proporciona AndroidSchedulers.
mainThread() devuelve un programador, que ayuda a realizar tareas en el subproceso principal de la interfaz de usuario, que se usa principalmente en el proyecto de Android. Entonces, aquí tenemos AndroidSchedulers. mainThread() se usa para obtener acceso al subproceso principal de la aplicación para que podamos realizar acciones como actualizar la interfaz de usuario. Debido a que técnicamente no es posible actualizar la interfaz de usuario desde el subproceso en segundo plano en Android, podemos usar AndroidSchedulers.mainThread() para actualizar cualquier cosa en el subproceso principal. Internamente, hace uso de los conceptos Handler y Looper para realizar la acción en el hilo principal.
GeekTip: RxAndroid compila y usa RxJava internamente. Sin embargo, mientras usamos RxAndroid en nuestro proyecto, aún incluimos la dependencia de RxJava para trabajar, como
implementación ‘io.reactivex.rxjava3:rxjava:2.5.0’
implementación ‘io.reactivex.rxjava3:rxandroid:3.0.0’
La razón de esto es que es posible que RxAndroid no tenga la versión más reciente de RxJava utilizada en el proyecto. Como resultado, usamos la dependencia de RxJava para anular el control de versiones de la versión interna de RxJava que usa RxAndroid.
El uso real de este
RxJava aprovecha el poder de los operadores y, como dice el adagio, «RxJava tiene un operador para casi todo».
Ejemplo 1:
Considere el siguiente escenario: queremos hacer una llamada a la API y guardar el resultado en algún archivo/almacenamiento. Sería una tarea de ejecución prolongada, y realizar una tarea de ejecución prolongada en el subproceso principal podría generar un comportamiento inesperado, como que la aplicación no responde. Entonces, para completar la tarea mencionada anteriormente, podríamos considerar usar AsyncTask como nuestra solución de acceso. Sin embargo, con Android R, AsyncTask quedará obsoleto y las bibliotecas como RxJava serán la solución. Usar RxJava en lugar de AsyncTask nos permite escribir menos código. Mejora la gestión del código porque AsyncTask puede hacer que el código sea largo y difícil de gestionar.
Ejemplo #2:
Considere un escenario en el que queremos recuperar los detalles del usuario de una API y luego, usando la ID del usuario obtenida de la API anterior, llamamos a otra API para recuperar la lista de amigos del usuario. Al usar AsyncTask, es posible que necesitemos usar varias AsyncTask y administrar los resultados de una manera que nos permita combinar todas las AsyncTask y devolver el resultado como una sola respuesta.
Ejemplo #3:
Considere el siguiente escenario: hacemos una llamada API para obtener una lista de usuarios, y solo queremos los datos que coincidan con la condición actual dada. Un enfoque general sería hacer la llamada a la API y luego, desde la colección, filtrar el contenido de ese usuario específico según la condición y devolver los datos. Sin embargo, al usar RxJava, podemos filtrar directamente los datos mientras devolvemos la respuesta de la API usando el operador de filtro, y hacemos todo esto mientras administramos los subprocesos.
Conclusión
Estos son algunos ejemplos de casos de uso de RxJava para Android y por qué necesitamos RxAndroid en nuestro proyecto. También hay otros artículos en geeks para Geeks con enlaces a otros métodos Rx Java, que puede encontrar aquí .
Publicación traducida automáticamente
Artículo escrito por therebootedcoder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA