アプリは時間が経つに連れて大きくなる傾向がある。新しい機能を追加するということは、より多くのコード、より多くのサードパーティ製フレームワーク、より多くの画像や動画などのアセットを追加するということだ。フォントやサポートドキュメントのようなリソースは重複し、最適化や圧縮が行われないままビルドプロセスを通過してしまう。
アプリを小さく維持することは、ユーザーにも開発者にもメリットがあるものの、必ずしも常に最優先されるものではない。開発チームの規模や優先順位によっては、誰かに文句を言われるまで忘れ去られてしまう類のことだ。
Y Combinator(Yコンビネータ)W21(2021年冬)クラスのEmerge Tools(エマージ・ツールズ)は、アプリを小さく留めるためのツールを開発している企業だ。このツールは、ビルドごとの変更を監視し、必要なストレージ容量を削減するためのアクションを推奨してくれる。
なぜアプリを小さくするのか?理由はいくつかあるが、Emergeの共同設立者であるJoshua Cohenzadeh(ジョシュア・コヘンザデ)氏は次のようなことを指摘している。例えば、開発したiOSアプリのサイズが大きすぎると、App Store(アップ・ストア)はユーザーに、Wi-Fiが使えるようになるまでダウンロードするのを待つように提案するため、ユーザーが興味を失ってしまうことがある。ちなみにUber(ウーバー)は最近のブログ記事で、App Storeのサイズ制限によって最大でインストール数の10%が失われたと書いている。世界中にユーザーを拡げたいと考えているアプリ開発者は、潜在的なユーザーの多くが低速のネットワークを利用していたり、メガバイト単位で通信料を支払っている可能性があることを考慮しなければならない。あるいはまた、スマートフォンの空き容量を確保しようとした時に「おいおい、なんで〇〇のアプリが400MBも使っているんだ?」と思ったことがない人はいないだろう。
Emergeを共同で設立したコヘンザデ氏とNoah Martin(ノア・マーティン)氏は、文字通り子どもの頃から一緒にものづくりを行ってきた。高校時代には、Macの画面解像度をすばやく変更するためのメニューバーツール「QuickRes(クイックレズ)」を開発した。その後も、人気の高いMac用スクリーンショットマネージャーや、MacからTesla(テスラ)をコントロールするためのメニューバーウィジェット、さらにTinder(ティンダー)の写真をA/Bテストするためのツールなどを作成したが、コヘンザデ氏によると、これは配布停止命令を受けることになってしまったとのこと。
大学卒業後、大企業に就職した2人は、サイドプロジェクトとしてのアプリ開発(コヘンザデ氏は「小さな取るに足りないアプリ」と呼んでいた)をやめて、本格的にスタートアップを起ち上げることにした。Y Combinatorに応募した2人は、アイデアを練っているうちに、モバイルネットワークに制限がある国々では、ユーザーがデータ転送に多大な労力を費やしているという調査結果を見つける。そこで2人は、アプリがどこでデータを浪費しているかを調べ、さらに掘り下げていったところ、アプリのサイズについては、多くの開発チームが、多くの大企業でさえも、常に重視しているわけではないことがわかった。
「小規模な企業では、独自のパフォーマンスチームを持つほどのリソースはありません。クレイジーな最適化などを行うリソースもありません」とコヘンザデ氏はいう。「だからEmergeの基礎となったのは、これを標準化しようということでした」。
Emergeは、いくつかの異なる方法でインサイトを提供している。開発チームのGitHub(ギットハブ)に接続して、アプリのサイズ変更を各プルリクエストのコメントとしてフラグを付けることもできるし、一方でEmergeのダッシュボードでは、アプリ内で何がスペースを占めているかを複数の異なるビューで表示し、スリム化する方法を提案する。
「X-ray」ビューでは、各フレームワークやアセットがどれだけの容量を占めているかが一目瞭然だ。特定のフレームワークを1つか2つのあまり使わない機能にしか使用していないのに、アプリのサイズの5分の1を占めている場合、そのフレームワークを使用する価値はあるだろうか? ビルドに何度も紛れ込むように管理されたファイルもハイライトされる。「重複ファイルを抱え込んでいる会社が多いことには驚かされます」と、コヘンザデ氏はいう。
「Breakdown」ビューでは、アプリの中でバイナリ自体が占める割合、画像や動画などのアセットが占める割合などが、カテゴリーごとに分けて表示される。
「Insights」タブには、アプリのサイズに最も大きな影響を与える可能性のあるアクションが提案される。例えば、Swift(スイフト)のバイナリでバイナリシンボルを削除したり、所定のプラットフォームで異なる画像タイプを使用したり(iOSではPNGの代わりにHEICを使用するなど)、前述の重複ファイルを削除する方法を考え出したりする。
自分たちが開発したアプリの中からEmergeが何を見つけるか、興味がある人もいるだろう。だが、1つ問題がある。同社のツールはまだ誰にでも公開されているわけではないのだ。というのも、コヘンザデ氏によると、彼らが提携している企業のほとんどは、このようなツールにアクセスを許可する前に、厳格なセキュリティ審査と法的契約を必要とするからだ。Emergeでは、小規模なチームを対象とした「完全セルフサービスのモデル」を近々発表する予定であるという。価格は、アプリの数、ビルドの数、チームの規模、どのプラットフォーム向けにビルドするかといった基準に基づき、企業ごとに異なる。Emergeが2021年初めに設立された当初は、iOS向けアプリのみに集中していたが、2021年10月よりAndroid向けアプリのサポートも追加した。
Emergeは最近、170万ドル(約1億9000万円)を調達した投資ラウンドを完了させたが、これは同社にとって初のラウンドだった。コヘンザデ氏によると、このラウンドにはHaystack(ヘイスタック)、Matrix Partners(マトリックス・パートナーズ)、Y Combinator、Liquid2 Ventures(リキッド2ベンチャーズ)の他、数名のエンジェル投資家が参加したとのこと。
画像クレジット:Emerge
[原文へ]
(文:Greg Kumparak、翻訳:Hirokazu Kusakabe)