
ニューヨーク市に拠点を置く iHeartRadio では、楽曲を制限なしに再生し、さまざまなラジオ局を楽しめるオールインワンのアプリを提供しています。同社では、ラジオ放送のほか、オンライン、モバイル、デジタル、ソーシャルの各メディアの運営、ライブ コンサートやイベントの運営、番組の販売、音楽調査サービス、独立系のメディア広告など、多様な事業を手がけています。
同社のアプリは、2008 年の公開以来、世界中のリスナーに 10 億回以上ダウンロードされています。しかし 2017 年末の時点で、コードベースの老朽化が目立つようになっており、コードのメンテナンスや新機能の追加が難しい状況となっていました。
iHeartRadio の取り組み
iHeartRadio は、コードの刷新に着手するにあたり、Android アーキテクチャ コンポーネントの導入を決断しました。iHeartRadio のエンジニアが特に魅力を感じたのは、わかりやすく実装が容易な Room 永続性ライブラリです。このライブラリは、iHeartRadio がコードで広く使用している非同期クエリや RxJava のサポートに対応しています。
また iHeartRadio では、別のコンポーネントのライフサイクル ステータスの変化に対応してアクションを実行するライフサイクル対応コンポーネントも導入しています。同社のエンジニアがこのコンポーネントを特に高く評価しているのは、アクティビティやフラグメントの依存関係を少なくできる点です。同社ではさらに、ViewModel を使用してプロトタイプを作成することで、画面の回転などの構成の変更後にもデータを引き継げるようにしました。
結果
アーキテクチャ コンポーネントへの移行はスムーズに進み、統合が正常に行われているかどうかも、ライブラリを使用して簡単に確認することができました。 Room をはじめとするコンポーネントでは、必要なボイラープレート コードがごくわずかで済むため、アプリのコード量が大幅に削減されています。またアーキテクチャ コンポーネントは、メモリリークの減少にも役立っています。さらなるメリットとして、新たにチームに加わったデベロッパーが直ちに状況を把握し、コーディングを開始できるようになりました。
アーキテクチャ コンポーネントが iHeartRadio にもたらした総合的なメリットは、わかりやすく効率的なコードベースを作成し、エラーを削減できるようになったことです。これは、あらゆるアプリ、特に世界中のユーザーに向けてオールインワンのデジタル オーディオ サービスを提供するアプリにとって、大きなメリットとなります。
スタートガイド
Android アーキテクチャ コンポーネントは Android Jetpack の一部として全デベロッパーに公開されています。Android アーキテクチャ コンポーネントをぜひご利用ください。