オンライン不動産市場のリーダーである Zillow は、消費者が住宅を購入、賃貸、売却する際に必要なリスト、データ、計算ツールを提供しています。サイトは、ユーザーを地域の不動産仲介業者、住宅ローン融資会社、住宅デザイナーと結び付ける役割も担っています。
2006 年に設立され、シアトルに本社を置く Zillow が管理するデータベースには、1 億 1,000 万を超える米国の住宅が登録されています。また、Zillow が運営するモバイル向け不動産アプリは好評を博しており、その数は 24 を超えています。Zillow は、2017 年 7 月に Android モバイルアプリのコードの大規模な点検を開始したとき、コードの可読性を高め、新しいチームメンバーでもコードを容易に理解できるようにすることで、デベロッパーの作業を簡素化したいと考えました。
Zillow の取り組み
Zillow は Android アーキテクチャ コンポーネントを使用してコードを刷新しました。Zillow のソフトウェア エンジニアである Aayush Raj 氏は次のように述べています。「当社ではさまざまな種類のアーキテクチャについて調査しました。アーキテクチャ コンポーネントにはライフサイクル対応というメリットもあるため、コードの管理が大幅に簡素化されました」
ViewModel を使用すると、構成の変更(画面の回転など)後にもデータを引き継ぐことができます。一方、LiveData は監視可能なデータホルダー クラスです。Zillow はこれらのクラスを組み合わせて使用することで、Model-View-ViewModel(MVVM)を実装するための強力なテンプレートを提供しました。Raj 氏は、「テンプレートのおかげでコードを簡単にテストすることができました」と述べています。また、Room 永続ライブラリを使用することで、ローカル キャッシュ レイヤを簡単に構築できるため、アプリがネットワークからデータを頻繁に取得する必要がありませんでした。その結果、「パフォーマンスとユーザー エクスペリエンスが向上しました」と Raj 氏は述べています。
結果
Raj 氏はさらに、「データ更新用のコードをアクティビティから ViewModel に大量に移動したことは、コードベース全体の可読性を高めるうえで間違いなく役に立った」と述べています。Zillow ではアプリ全体の ViewModel への切り替えはまだ行っていませんが、ViewModel を使用するコンポーネントでライフサイクル関連のバグはまったく発生していません。アクティビティとフラグメントへのデータ更新の伝達も非常にうまく機能しています。
Zillow の上級ソフトウェア開発エンジニアである Sumiran Pradhan 氏は、「Android アーキテクチャ コンポーネントを採用したことで、デベロッパーの生産性が確実に向上しています」と述べています。アーキテクチャ コンポーネントは、コードをゼロから作成する場合だけでなく、既存のコードベースを変更する場合にも役立ちます。Pradhan 氏はさらに、「新人の開発者も ViewModel のロジックの使いどころをいったん理解すれば、間違いなく気に入ります」とも述べています。
スタートガイド
Android アーキテクチャ コンポーネントは Android Jetpack の一部として全デベロッパーに公開されています。Android アーキテクチャ コンポーネントをぜひご利用ください。