Tech Talksについて
世界約50カ国の国と地域から集まった個性豊かなプロダクトメンバーたちの声を通して、モノづくりへの姿勢や雰囲気をダイレクトにお伝えするTech Talksシリーズ。
今回は、コンシューマー向けアプリ改善をリードするApp Operationチームにおいて、Android App Engineerとして活躍するMaoさんにお話を伺います。
Mao Yufeng (モウ イクフウ)
Product統括本部 Payment Product本部 Technology部 App Operationチーム
学生時代からエンジニアとして研鑽を重ね、2019年に株式会社サイバーエージェントへ入社。メディア事業において、Flutterを活用してのAndroidアプリ開発などを行った後、2023年にPayPay入社。現在はAndroidアプリのリリース管理やパフォーマンス改善に注力している。
アプリの安定的なリリースが使命
App Operationチームのミッションを教えてください
App Operationチームは、新規機能開発や保守、設計改善を通じてiOSやAndroidアプリの品質を高めつつ、毎週のように実施しているアプリのリリースを無事に終えることをミッションとしています。チーム内での私の役割は、ユーザーのみなさんに不便なくアプリを利用いただけるようAndroidアプリを改善することです。

現在取り組んでいるプロジェクトについて教えてください
私がAndroid App Engineerとして取り組んでいる代表的なプロジェクトの1つは「アプリパフォーマンス改善プロジェクト」です。プロジェクトリーダーである宇野さんの記事に詳しく書かれていますが、コンシューマー向けアプリを対象に、ユーザーの満足度や利便性をさらに向上させるための取り組みです。アプリパフォーマンスの実態を把握したうえで、ユーザーが体感できる「起動速度」や「画面表示速度」の改善を行っています。
プロジェクトを推進していくうえで、私はAndroidアプリの起動速度改善を担当しました。データ計測結果から、Androidアプリの起動速度はやや遅く、対応の優先度が高い案件だったためです。
新技術の導入で、起動速度を「51%改善」へと導く
起動速度の改善には、どのように取り組みましたか?
まず1つは、2021年にGoogleが開発者向けに公開した「Baseline Profiles」の導入です。Baseline Profilesの仕組みとしては、アプリの起動前にプロファイル内のメソッドをAOT(事前)コンパイルすることで、起動速度を改善できます。期待される改善効果が大きかったため、チーム内でぜひ導入したいという話になりました。
新技術の導入にあたり、懸念されたのは既存アプリへの影響でした。ですが、QAチームが素早く、しっかりと検証を行ってくれたことで、既存のプロダクトにもかかわらずスムーズな導入が実現できました。結果、約20%の起動速度向上を実現しています。

新技術を、迅速に取り入れる仕組みができているんですね
はい。PayPayにはアプリエンジニアが新技術にチャレンジできる環境が整っています。課題解決につながる新技術を自分たちで選定し、プロダクト開発時に技術導入を試みることができるのは私たちにとってもやりがいにつながっていますね。
さらに、もう1つのアプローチとして行った、Android Studioの「CPU Profiler」機能を活用したコード最適化の取り組みも新技術に関連しています。この機能はGoogleが主催する開発者向けイベント「Google I/O」で毎年のようにアップデート情報が発信されており、トレンドの新技術を活かした開発です。社内では最新のテック情報がキャッチアップできるよう、専用のSlackチャンネルを立てて積極的な情報の交換・共有を行っています。
プロジェクトのなかでのチャレンジはどんな部分でしたか?
1つあげるとするなら、今回のプロジェクトで新たに取り入れた「ミドルエンド以下のAndroid端末を使った検証作業」ですね。ミドルエンド以下の端末は処理速度全般が劣るため、普段からハイエンド環境に慣れている私にとっては検証時にストレスを感じる部分でした。
ですが、実際ユーザーの半数以上がミドルエンド以下のAndroid端末を利用しています。検証にミドルエンド以下の端末を使用した理由は、ユーザーに近い環境で検証を行う意図があったためです。ユーザーの利便性を向上させるために、私たちAndroid App Engineerがどう取り組むべきか。常に考えながら、前向きに取り組めましたし、ユーザーと同じ環境、同じ目線でサービスに触れる大切さを学びましたね。

また、CPU Profilerを使った検証時、改善すべきターゲットと手法を誤ってしまい、改善効果が見られなかった時期もありました。ですが、課題をチームのSlackチャンネルで共有したところ、メンバーが自主的に検証へ協力してくれました。チームの協力を得て検証を重ねた結果、コードの実行順を見直し、別ターゲットの最適化によって課題が解決しました。
今後、Android App Engineerとして成し遂げていきたいことを教えてください
2024年5月時点で、起動速度は前年比51%改善できました。現在は、ユーザー体験に近い「TTFD(アプリが完全に表示され、ユーザーが操作可能な状態になるまでの時間)」の改善を中心に取り組んでおり、ユーザーにも速度向上を実感してもらいたいです。
また、アプリリリース後にパフォーマンスを計測する際、計測までに2週間ほどのラグが発生しており、起動速度の改善に最低1か月かかっているのが現状です。対策として、毎日ベンチマークを設定してデータを集め、計測用のベンチマークダッシュボードを作成しています。一連のサイクルを早め、よりスピード感あるアプリ改善を実現したいです。

最後に、読者へのメッセージをお願いします
PayPayの良いところは、機能開発や新技術の導入だけでなく、リファクタリングにもしっかりと取り組んでいることです。表面的な部分はもちろん、ソースコードの改善や整理といった地道な作業にもしっかりとリソースが投じられています。
また、PayPayには6,400万人以上のユーザーがいるため、決済データの量や多機能さなど、圧倒的な規模感があります。日本発のスーパーアプリを目指すチャレンジは大変なことも多いですが、自分もPayPayユーザーなので、機能改善の結果を生活の中で感じられるのはモチベーションになりますね。周りのエンジニアから「また機能が改善されたね」と声をかけられることも多く、注目度の高さも感じます。
日本中のPayPayユーザーに影響を与えられる環境にやりがいを感じ、エンジニアとしてチャレンジしてみたい方は、ぜひPayPayで一緒に働きましょう。
現在募集中のポジション
※募集状況、社員の所属等は取材当時のものです。

