Únete a ⁠ #Android11: The Beta Launch Show el 3 de junio.

Tinder usa componentes de la arquitectura Android para solucionar errores en su app de citas

Tinder es la app de citas más popular del mundo. Es famosa porque cambió la manera en que las personas se conocen y tienen citas, y porque les permite a los usuarios conectarse con otras personas y chatear con solo deslizar el dedo hacia la derecha. En Tinder, se producen más de 26 millones de coincidencias al día, cifra que alcanza los 20,000 millones desde su lanzamiento en 2012.

Debido a la demanda de los usuarios, la empresa tuvo que ampliar la app con rapidez. Sin embargo, la implementación de la base de datos era la misma desde sus inicios, de manera que cada vez se hacía más complicado expandirla. También tenía una arquitectura pesada en cuanto a visualizaciones para reducir las complejidades del ciclo de vida, pero era necesario saber qué eventos eran específicos de una actividad. La empresa no contaba con un marco de trabajo coherente para manejar ciertas tareas, como la agrupación de elementos Cursor en objetos de dominio, las migraciones de bases de datos o la formulación de consultas de rendimiento de manera constante.

Qué hizo la empresa

Figura 1: Imagen de una fotógrafa en Tinder

Tinder acudió a los componentes de la arquitectura Android para obtener soluciones que le permitieran actualizar el código. Se usó Lifecycle para permitir que View observara el ciclo de vida de su actividad de host y se empleó LifecycleObserver a fin de facilitar una arquitectura de complementos descentralizada y evitar la sobrecarga en los objetos Presenter, Activity y View. La biblioteca de persistencias de Room ofreció un método predeterminado para definir y administrar su base de datos local, además de realizar consultas.

El equipo de desarrollo de Tinder pudo implementar LifecycleObserver y la arquitectura de complementos en solo dos semanas, mientras que la implementación de Room para su SDK de anuncios internos solo llevó dos días.

"Ya no teníamos que dedicar mucho tiempo a administrar el ciclo de vida de la actividad dentro de complementos o vistas", comenta Andy Lawton, jefe de Android en Tinder. "El diseño de Room está bien pensado y facilita la implementación de nuestra capa de persistencia. El uso de Room para el SDK de anuncios internos nos permitió ahorrar alrededor de una semana en el desarrollo anticipado".

Resultados

En Tinder, quedaron tan satisfechos con los resultados del SDK de anuncios que están migrando toda la capa de la base de datos a Room. La etapa de pruebas fue sencilla y la protección de Room frente a los olvidos de registro redujo las pérdidas de memoria. Además, los componentes de la arquitectura Android también ayudaron a reducir la huella de memoria.

"Los componentes de la arquitectura Android fueron la receta perfecta para solucionar muchas de las dificultades que tienen que enfrentar los desarrolladores en las distintas escalas", explica Lawton. "Mediante el uso de componentes optimizados para el ciclo de vida, Tinder consiguió mejorar la modularidad, la capacidad de prueba y la productividad del desarrollador, a la vez que optimizó la arquitectura para las visualizaciones. Room elimina la necesidad de recurrir a otras soluciones para administrar SQLite y convierte las consultas y la administración de la base de datos en un ejercicio de configuración".

Métrica

Se quitaron más de 500 líneas de código de MainActivity mediante la arquitectura de complementos de LifecycleObserver.

Cómo comenzar

Todos los desarrolladores pueden acceder a los componentes de la arquitectura Android como parte de Android Jetpack. Comienza a usar los componentes de la arquitectura Android.