Rulerは、Spotifyで開発されたオープンソースツールである。Androidアプリを分析し、開発者がアプリのサイズに最も影響を与えているコンポーネントを特定するためのガイドを提供する。
インストールコンバージョン率を上げるためにアプリのサイズを最適化することの重要性は過小評価できない、と元Google社員のSam Tolomei氏は説明している。実際、2013年から2017年にかけてGoogleで実施された調査によると、アプリのサイズが6MB増えるごとに、インストールのコンバージョン率は1%減少した。また、APKのサイズが大きいと、ダウンロードに関連する時間やコスト、あるいは接続の問題により、インストールの失敗率が高くなることが示された。ユーザの大部分がWiFiにアクセスできず、大きな空きストレージ容量がないことを考えると、状況はさらに悪い。
Androidアプリは現在AABsとして配布されている。特定のデバイス構成のAPKサイズを推定するために、RulerはGoogleが自社のBundletoolを使ってAABからAPKを生成するために使用するのと同じアプローチを用いている。APKが生成されると、Rulerはそれを分析する。
このAPKを分析して、実際にアプリに含まれるファイルとそれらのファイルが占める容量を確認します。apkanalyzerを利用して、Rulerによって報告された数値がAndroid Studioによって分析された数値と一致していることを確認します。そして、別のプロセスによって最適化が行われた後にアプリのサイズを測定することが保証されます。
プロセスの次のステップは、アプリの各ファイルを親コンポーネントにマッピングすることである。これはプロジェクトに含まれるすべてのGradleモジュールと依存関係の分析に基づいて行われる。これにより、個々のモジュールと依存関係のサイズへの影響を見積もることができる。Rulerは、コンポーネントの所有者のリストに基づいて、各コンポーネントをそれを所有するチームにマップすることもできる。
このツールは、リグレッションを可能な限り早期に検出できるように、DevOpsパイプラインに統合し、Spotifyと同じようにプルリクエストごとに実行できる状態となっている。
Spotifyによると、Rulerを社内で6か月以上使用しており、アプリのサイズが全体で約9%削減されている。Spotifyアプリはかなり複雑で、1,000を超えるGradleモジュールと数百のサードパーティの依存関係がある。そのため、皆さんにとって利用価値は違ってくることに注意してください。