TRILL開発部の石田です。
2020年9月にXcode12がリリースされ、Scroll Hitch Rateという機能が追加されました。 今回はこの機能について紹介します。
Xcode Organizerとは
Xcode Organizerについて、Appleのドキュメントでは以下のように説明されています。
Appのクラッシュログ、エネルギーレポート、パフォーマンスに関する指標(お客様が使用した際のバッテリー消費量や起動時間など)を簡単に確認できます。
ユーザの端末からバッテリーライフやパフォーマンスデータ等の情報がAppleのサーバに送られ、それがXcodeのOrganizerに表示されます。 ただし情報を送信するのはプライバシー設定の「Appデベロッパと共有」をOnにしている端末に限られるようです。
ちなみに、Organizerでユーザの統計情報を確認するために追加の実装は不要です。
Scroll Hitch Rateとは
Scroll Hitch RateはXcode12からOrganizerに追加された機能で、アプリ内のスクロールのスムーズさを表現しています。
Scroll Hitchとはレンダリングされたフレームがスクロール中に画面に表示されないことで、これによってフレーム落ちし、スクロールが不安定な挙動となります。
iPhoneはフレッシュレートが60Hzなので、1フレームは16.67msであり、それ以上の時間がかかるとフレーム落ちし、ユーザ体験が下がります。
表示される指標
- Hitch time: フレームが画面に表示されるのに必要な追加の時間の合計
- Scroll duration: スクロール時間
- Hitch rate = Hitch time / Scroll duration
Hitch rateが高ければ高いほどHitchが多く、ユーザにとって体験の悪いスクロールとなります。 逆にHitch rateが低いほどユーザ体験の良いスクロールとなります。
目指すべき数値
- 5ms/s以下: 良いユーザ体験
- 5ms〜10ms/s: ユーザがHitchに気づき始めるので調査すべき
- 10ms〜: かなり使いづらいので早急に解決すべき
基本的に5ms/sを下回っていれば問題ないようです。 Xcode Organizerはアプリバージョン毎の結果が表示されるので、アプリをアップデートした際に改善しているか・悪化していないかチェックするのが良さそうです。
まとめ
Xcode12からScroll Hitch Rateという機能が追加され、スクロールのスムーズさ(ユーザの手元で起こっているもの)が定量的に判断できるようになりました。 TRILLでも定期的な確認と改善をしていき、ユーザ体験をより良いものにしたいと思います。
delyでは全方面でエンジニアを積極採用中です。 興味のある方は是非お声がけください。