Turo は、Android 開発者ツールとベスト プラクティスを使用して、アプリの起動時間を 77% 短縮しました

May 13 2023
Turo は世界最大のカーシェアリング マーケットプレイスで、ゲストは信頼できるホストの活気に満ちたコミュニティから好きな場所で好きな車を予約できます。Turo の開発者は最近、Android アプリケーションの起動パフォーマンスの向上に多額の投資を行っています。

Turoは世界最大のカーシェアリング マーケットプレイスで、ゲストは信頼できるホストの活気に満ちたコミュニティから好きな場所で好きな車を予約できます。

Turo の開発者は最近、Android アプリケーションの起動パフォーマンスの向上に多額の投資を行っています。起動時間はユーザーがアプリに対して抱く第一印象であり、読み込み時間が遅いとユーザーの維持率やエンゲージメントに悪影響を及ぼす可能性があります。チームは、ユーザーがアプリを起動するたびに、より高速で合理化されたエクスペリエンスを提供したいと考えていました。そして、Android の最高のツール、リソース、プラクティスを使用して、アプリの起動時間を 77% 短縮することができました。

App Startup ライブラリを使用して準備を整える

アプリの初期化には、アプリケーションの起動プロセス全体と、最初の UI フレームをレンダリングする前に実行されるすべてのコードが含まれます。Turo にとって、これは、アプリのホーム画面が表示される前に、ユーザーがアプリの初期起動、同期ネットワーク リクエスト、カスタム スプラッシュ アニメーションの実行を待たなければならないことを意味しました。

Turo の開発者は、アプリケーションの読み込み時間を改善するには、これらの煩わしい起動イベントの多くを圧縮して削除する必要があることを認識していました。これらのイベントを削減するために、Turo エンジニアは Android のApp Startup ライブラリを使用しました。

App Startup ライブラリは、Turo の開発者に、アプリケーションの起動中に複数のコンポーネントを初期化するためのシンプルで合理的な方法を提供しました。また、どのコンポーネントをどの順序で初期化するかを選択できるようになり、ロード時間を大幅に短縮することができました。App Startup ライブラリを適切に配置することで、Turo の残りの起動最適化の基礎が設定されます。

ネットワークリクエストの延期とスプラッシュスクリーンのカット

最適化前、アプリは複数のネットワーク リクエストを順番に実行し、ユーザーがアプリのホーム画面にアクセスできるようになる前に、カスタムの 1 秒間のスプラッシュ アニメーションを表示していました。これにより、特にユーザーのネットワーク接続が不十分な場合、起動プロセスが遅くなります。

スプラッシュ アニメーションを削除することは、Turo 開発者にとって体感的な読み込み時間を改善する簡単な方法でした。また、ネットワーク要求を並列かつ非同期にすることで、ユーザーはホーム画面にはるかに速くアクセスできるようになりました。「当初、アプリを HomeActivity にルーティングする前に、専用の SplashActivity を使用してすべての起動作業を実行しました。ただし、最新のガイドラインでは、このアプローチには反対しています。そのため、私たちは冗長な SplashActivity を排除し、Splash Screen API を利用してすべての起動ロジックをルート アクティビティに移しました」と Turo のシニア スタッフ ソフトウェア エンジニアである Pavlo Stavytskyi 氏は述べています。

同時に、アプリはエクスペリエンスを個々のユーザーに合わせて調整するために他の多数の起動ネットワーク リクエストも実行しており、その結果、ユーザー エクスペリエンスに一貫性がなくなりました。「アプリがゲストによって使用される場合、一部のネットワーク リクエストは、どの画面を表示するかを決定するのに役立ちます」スプラッシュ画面の後に表示されます」とパブロ氏は言いました。「デフォルトでは、これがホーム画面です。ただし、ユーザーがアクティブな車両予約またはフィードバック画面に直接リダイレクトされる特殊なケースがあります。」

チームは、こうしたニッチなシナリオをチェックすることで、すべてのアプリの起動速度を低下させることを望んでいませんでした。代わりに、Turo はネットワーク要求を非同期に行う際に、デフォルトで常にホーム画面を開きます。リダイレクトが必要な場合は、適切な画面がホーム画面の上部に表示されます。

ベースラインプロファイルの適用

Turo チームは、アプリケーションのパフォーマンスを向上させるためにベースライン プロファイルも適用しました。ベースライン プロファイルは、起動コード パスを事前にプリコンパイルするのに役立ち、Macrobenchmark テストによると、Turo のアプリの起動時間をさらに 15% 短縮します。「すべての同期ネットワーク要求を削除した後、起動時間がより決定的になり、ベースライン プロファイルを適用することがより合理的になりました」と Pavlo 氏は言います。

パフォーマンスの向上により、ユーザー維持率の向上、トランザクションの増加、評価の向上につながる可能性があります。ベースライン プロファイルは、針を大きく動かすための迅速かつ信頼性の高い方法です。

起動パフォーマンスを優先する

アプリの起動時間に影響を与える可能性のある要因は数多くあります。最高のユーザー エクスペリエンスを実現するためにアプリをどこで、いつ、どのように改善できるかを特定するのは開発者の責任です。

「最小限の労力で最大の結果を生み出すタスクから改善を始めることが重要です」とパブロ氏は言います。「多くの場合、エンジニアリングは、製品の作業とパフォーマンスの最適化のいずれかに時間とリソースを割り当てることの間で矛盾に直面します。ただし、パフォーマンスを独立した製品の機能として扱うことは、成功のためには避けられません。」

今すぐアプリを最適化しましょう

アプリの最適化、Androidのアプリの起動、およびベースライン プロファイルに関する Android のベスト プラクティスを使用して、アプリの起動時間を短縮します。

また、Turo が Android の開発者ツールとベスト プラクティスを使用してアプリの起動効率を向上させた方法の全文を読むこともできます。