Zillow es un importante mercado en línea de bienes raíces que ofrece a los consumidores los listados, los datos y las calculadoras que necesitan para comprar, alquilar o vender un inmueble. El sitio también conecta a los usuarios con agentes locales, proveedores de hipotecas y diseñadores de hogares.
Zillow, que se lanzó en 2006 y tiene su oficina central en Seattle, mantiene una base de datos de más de 110 millones de hogares de EE.UU. Además, administra un popular paquete de más dos docenas de apps de bienes raíces. En julio de 2017, cuando comenzó una importante actualización del código de su app para dispositivos móviles de Android, el equipo de Zillow se enfocó en simplificar el trabajo de los desarrolladores mediante un código más legible que los nuevos miembros del equipo pudieran entender fácilmente.
Qué hizo la empresa
Zillow modernizó su código con los componentes de la arquitectura de Android. "Estábamos analizando diferentes tipos de arquitectura", comenta Aayush Raj, ingeniero de software de Zillow. "Los componentes de la arquitectura tienen la ventaja adicional de estar optimizados para el ciclo de vida, de manera que el código es mucho más fácil de administrar".
ViewModel permite que los datos sobrevivan a cambios de configuración (como rotaciones de pantalla), mientras que LiveData es una clase de retención de datos observable. Zillow utilizó ambas y, en conjunto, permitieron crear una eficiente plantilla para la implementación de Model-View-ViewModel (MVVM). "Nos ayudó a mejorar la capacidad de prueba de nuestro código", explica Raj. La biblioteca de persistencias de Room también facilitó la compilación de una capa de caché local para que la app no tuviese que extraer datos de la red con tanta frecuencia y pudiese "mejorar el rendimiento y la experiencia del usuario".
Resultados
El traslado de grandes cantidades de código para actualizaciones de datos de las actividades a ViewModels "sin lugar a dudas ayudó" a que todo el código base sea más legible, según Raj. Aún no convirtieron toda la app a ViewModel, pero los componentes que usan ViewModel no tuvieron errores relacionados con el ciclo de vida. La comunicación de actualizaciones de datos a las actividades y los fragmentos también funciona muy bien.
"Los desarrolladores son mucho más productivos cuando usan los componentes de la arquitectura de Android", comenta Sumiran Pradhan, ingeniero sénior de Desarrollo de Software de Zillow. Los componentes de la arquitectura sirven como guía cuando comienzan desde cero, pero también son útiles para el código base existente. "Los nuevos desarrolladores quedan encantados una vez que entienden dónde reside la lógica en ViewModel", agrega Pradhan.
Comenzar
Todos los desarrolladores pueden acceder a los componentes de la arquitectura de Android como parte de Android Jetpack. Comienza a usar los componentes de la arquitectura de Android.