Zillow crée un nouveau code clair avec les composants d'architecture Android

Zillow est l'une des principales places de marché immobilières en ligne. Elle fournit aux consommateurs les annonces, les données et les outils de calcul dont ils ont besoin pour acheter, louer ou vendre une maison. Le site met également les utilisateurs en relation avec des agents locaux, des organismes de prêt hypothécaire et des architectes d'intérieur.

Lancé en 2006 et basé à Seattle, Zillow gère une base de données de plus de 110 millions de maisons aux États-Unis. Ils gèrent également une suite populaire de plus de 20 applications mobiles immobilières. En juillet 2017, Zillow a commencé à remanier en profondeur le code de son application mobile Android. L'entreprise souhaitait simplifier la vie de ses développeurs en rendant le code plus lisible et plus facile à comprendre pour les nouveaux membres de l'équipe.

Ce qu'ils ont fait

Zillow a remanié son code à l'aide des composants d'architecture Android. "Nous avons étudié différents types d'architecture", explique Aayush Raj, ingénieur logiciel chez Zillow. "Les composants d'architecture avaient l'avantage supplémentaire de prendre en compte le cycle de vie, ce qui facilitait grandement la gestion du code."

ViewModel permet aux données de survivre aux changements de configuration (tels que les rotations d'écran), tandis que LiveData est une classe de conteneur de données observable. Zillow les a utilisés tous les deux, et ensemble, ils ont fourni un modèle puissant pour implémenter Model-View-ViewModel (MVVM). "Cela nous a aidés à rendre notre code plus testable", explique Raj. La bibliothèque de persistance Room a également permis de créer facilement une couche de cache local, de sorte que l'application n'avait pas à extraire les données du réseau aussi souvent, "ce qui a amélioré les performances et l'expérience utilisateur".

Résultats

Raj ajoute que le déplacement d'une grande partie du code pour les mises à jour de données des activités vers les ViewModels a "vraiment aidé" à rendre l'ensemble du code base plus lisible. Ils n'ont pas encore converti l'intégralité de l'application en ViewModel, mais les composants qui utilisent ViewModel n'ont rencontré aucun bug lié au cycle de vie. La communication des mises à jour de données aux activités et aux fragments fonctionne également très bien.

"Les développeurs sont bien plus productifs avec les composants d'architecture Android", explique Sumiran Pradhan, ingénieur senior en développement de logiciels chez Zillow. Les composants d'architecture leur fournissent des conseils lorsqu'ils partent de zéro, mais sont également utiles dans la base de code existante. "Une fois que les nouveaux développeurs ont compris la logique derrière le ViewModel, ils l'adorent", ajoute Pradhan.

Premiers pas

Les composants d'architecture Android sont ouverts à tous les développeurs dans le cadre d'Android Jetpack. Commencez à utiliser les composants d'architecture Android.