Zillow ist ein führender Online-Immobilienmarktplatz, der Verbrauchern die Angebote, Daten und Rechner zur Verfügung stellt, die sie für den Kauf, die Vermietung oder den Verkauf eines Hauses benötigen. Außerdem können Nutzer über die Website mit lokalen Immobilienmaklern, Hypothekenanbietern und Hausdesignern in Kontakt treten.
Zillow wurde 2006 gegründet und hat seinen Hauptsitz in Seattle. Das Unternehmen unterhält eine Datenbank mit mehr als 110 Millionen Häusern in den USA. Das Unternehmen betreibt auch eine beliebte Suite mit über zwei Dutzend mobilen Immobilien-Apps. Als Zillow im Juli 2017 mit einer umfassenden Überarbeitung des Codes in seiner Android-App begann, wollte das Unternehmen seinen Entwicklern das Leben erleichtern, indem es den Code lesbarer und für neue Teammitglieder verständlicher machte.
Vorgehensweise
Zillow hat seinen Code mit Android Architecture Components überarbeitet. „Wir haben verschiedene Arten von Architektur untersucht“, sagt Aayush Raj, Softwareentwickler bei Zillow. „Architecture Components hatten den zusätzlichen Vorteil, dass sie den Lebenszyklus berücksichtigen, was die Verwaltung des Codes erheblich erleichtert hat.“
Mit ViewModel können Daten Konfigurationsänderungen (z. B. Bildschirmrotationen) überstehen, während LiveData eine beobachtbare Datenhalterklasse ist. Beide wurden von Zillow verwendet und bildeten zusammen eine leistungsstarke Vorlage für die Implementierung von Model-View-ViewModel (MVVM). „Es hat dazu beigetragen, dass unser Code besser testbar wurde“, sagt Raj. Die Persistenzbibliothek Room erleichterte auch das Erstellen einer lokalen Cacheschicht, sodass die App nicht so oft Daten aus dem Netzwerk abrufen musste. Das „verbesserte die Leistung und die Nutzerfreundlichkeit“.
Ergebnisse
Raj fügt hinzu, dass die Verlagerung von viel Code für Datenaktualisierungen von Aktivitäten zu ViewModels „definitiv dazu beigetragen hat“, die gesamte Codebasis lesbarer zu machen. Sie haben die gesamte App noch nicht auf ViewModel umgestellt, aber bei Komponenten, die ViewModel verwenden, sind keine Fehler im Zusammenhang mit dem Lebenszyklus aufgetreten. Auch die Kommunikation von Datenaktualisierungen an Aktivitäten und Fragmente funktioniert sehr gut.
„Entwickler sind mit Android-Architekturkomponenten absolut produktiver“, sagt Sumiran Pradhan, Senior Software Development Engineer bei Zillow. Architecture Components bietet ihnen eine Anleitung für den Fall, dass sie von Grund auf neu beginnen, ist aber auch für die vorhandene Codebasis nützlich. „Sobald neue Entwickler verstanden haben, wo sich die Logik im ViewModel befindet, sind sie begeistert“, fügt Pradhan hinzu.
Erste Schritte
Android Architecture Components ist für alle Entwickler als Teil von Android Jetpack verfügbar. Erste Schritte mit Android-Architekturkomponenten