Zillow: Android アーキテクチャ コンポーネントを使用して、わかりやすい新しいコードを作成

オンライン不動産市場のリーダーである Zillow は、消費者が住宅を購入、賃貸、売却する際に必要なリスト、データ、計算ツールを提供しています。サイトは、ユーザーを地域の不動産仲介業者、住宅ローン融資会社、住宅デザイナーと結び付ける役割も担っています。

2006 年に設立され、シアトルに本社を置く Zillow が管理するデータベースには、1 億 1,000 万を超える米国の住宅が登録されています。また、Zillow が運営するモバイル向け不動産アプリは好評を博しており、その数は 24 を超えています。Zillow では 2017 年 7 月に Android モバイルアプリのコードの大規模な点検を開始したとき、コードの可読性を高め、新しいチームメンバーでもコードを容易に理解できるようにすることで、デベロッパーの作業を簡素化したいと考えました。

Eyecon の取り組み

Zillow は、Android アーキテクチャ コンポーネントを使用してコードを刷新しました。「私たちはさまざまな種類のアーキテクチャを調査していました」と、Zillow のソフトウェア エンジニアの Aayush Raj 氏は述べています。「アーキテクチャ コンポーネントにはライフサイクル認識という利点があり、コードの管理がはるかに容易になりました。」

ViewModel を使用すると、構成の変更(画面の回転など)後もデータを引き継ぐことができます。一方、LiveData は監視可能なデータホルダー クラスです。Zillow はこれらのクラスを組み合わせて使用することで、Model-View-ViewModel(MVVM)を実装するための強力なテンプレートを提供しました。Raj 氏は次のように述べています。「おかげでコードをテストしやすくなります。また、Room 永続ライブラリを使用することで、ローカル キャッシュ レイヤを簡単に構築できるため、アプリがネットワークからデータを頻繁に pull する必要がなくなり、「パフォーマンスとユーザー エクスペリエンスが向上」しました。

結果

Raj 氏はさらに、データ更新用のコードをアクティビティから ViewModel に大量に移行したことで、コードベース全体の可読性が向上したことが「間違いなく役立った」と述べています。デベロッパーはアプリ全体を ViewModel に変換していませんが、ViewModel を使用しているコンポーネントにはライフサイクル関連のバグはありません。アクティビティとフラグメントへのデータ更新の伝達も非常にうまく機能しています。

Zillow のシニア ソフトウェア開発エンジニアである Sumiran Pradhan 氏は、次のように述べています。「Android アーキテクチャ コンポーネントを使用することで、開発者の生産性は大幅に向上します。アーキテクチャ コンポーネントは、ゼロから構築する際のガイダンスを提供しますが、既存のコードベースでも有用です。「新しいデベロッパーは、ロジックが ViewModel のどこにあるかを理解すれば、それを気に入ってくれます」と、Pradhan 氏は付け加えます。

始める

Android アーキテクチャ コンポーネントは、Android Jetpack の一部として、全デベロッパーに公開されています。Android アーキテクチャ コンポーネントを使ってみる。