この記事は Android チームによる Android Developers Blog の記事 " Mercari reduces 355K lines of code, a 69% difference, by rebuilding with Jetpack Compose " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。また過去に本内容について詳しく解説いただいた動画はこちらからご覧いただけます。
2020 年、Mercari チームはアプリの技術的なインフラストラクチャを更新するという大きな取り組みを実施しました。当時、そのコードベースは 7 年前のもので、大きなアーキテクチャ更新を受けていませんでした。これは、チームが新しい機能を開発し、タイムリーなアプリアップデートをリリースするということに支障をきたしていました。この技術的負債を解決するために、Mercari は GroundUP プログラムと呼ばれる、Android を含むプラットフォーム全体のアプリケーションを完全に書き直す取り組みをリリースしました。
その目標は、拡張可能な設計で完全に近代化されたアプリケーションを作成することでした。アプリをリツールしている間、Mercari のデベロッパーは、ネイティブ UI を作成するための Android の最新の宣言ツールキットである Jetpack Compose に目を向けました。評価中、チームは Jetpack Compose で書き換えるとコードベースが整理され、アプリの見た目をよりコントロールするのに役立つことを学びました。
Mercari チームは、Jetpack Compose を使用して Android アプリのアーキテクチャと技術スタックを完全に書き換えました。Mercari のデベロッパーは新しいデザインシステムを作り、Compose を使って完全に統合し、新しい機能を簡単にテストして実装できるようにしました。この新しいデザインシステムを使用して、Mercari チームは 130 以上の UI 画面をマーケットプレイス用に書き換え、多くのコンポーネントの見た目を近代化しました。
Jetpack ライブラリの助けを借りて、Mercari のチームは書き換え中にレガシーコードをすべて削除し、コードベースを大幅に削減し、デベロッパーにとって管理しやすくしました。「コードは大幅に少なくなりましたが、実際には同じアプリです」と Mercari の Android テクノロジーリーダー、Allan Conda は述べます。「書き換えられたアプリのコード行数は約 35 万 5000 行少なく、これは以前よりも約 69% 少なくなっています。」
Mercari チームが最初に GroundUP プログラムを開始したとき、Jetpack Compose はデベロッパープレビューでのみ利用可能でした。UI を作成するための新しい宣言的なアプローチのために、Mercari チームは Jetpack Compose で完全にアプリを作成することにしました。しかし、それはまだ非常に新しいので、2つのツールキットを併用するためにはこれまでになかったエッジケースを解決する必要があることに気付きました。
例えば、Mercari の出品フォーム画面ではユーザーは出品したい商品の詳細を入力するように求められます。その後、ユーザーはデバイスのギャラリーから写真を選択し、ドラッグ ジェスチャーを使用してこの画面で並べ替えることができます。当時、ジェスチャー API は Jetpack Compose では利用できなかったため、チームは Compose の AndroidView を利用することで、ジェスチャーを扱える View を出品フォーム画面にシームレスに統合しました。これによって、この機能が Jetpack Compose で利用できるようになるまで、安定しているとはいえ一時的な形でドラッグ ジェスチャーを実装することができました。
Mercari チームは、2 つのツールキットのスイッチがいかに簡単であるかに感銘を受け、Compose と一緒に Views を使用することで、このようなエッジケースをよりうまくコントロールできるようになりました。Compose は現在、Gesture API をサポートしており、それ以来 Mercari デベロッパーは Compose のみを使用してドラッグ ジェスチャー コンポーネントを完全に作成し統合しています。
Jetpack Compose は Mercari が最初にこれを採用した当初に比べ非常に成熟し、今では Android デベロッパーのほとんどは、Android アプリが Compose で完全に書き込めるようになったため、両方のツールキットと相互運用する必要がなくなりました。
Mercari チームは Compose を使用して、アプリの安定版リリースに対する ベースライン プロファイル の生成を自動化し、それが非常に有益だと感じていました。標準の Compose ベースラインプロファイルを使用すると、使用しない場合に比べ、ホーム画面は最大 2 倍速くフレームをレンダリングします。さらにカスタムプロファイルを提供すると、標準のベースラインプロファイルを持つだけと比較して、最大 20%メルカリユーザーがスクロールする際に追加で高速化されます。
チームは、Android Macrobenchmark でのアプリのコア シナリオに基づいて、自動化されたパフォーマンス テストも作成しました。「Android Macrobenchmark を使用すると、起動、スクロール、および画面の読み込み時間のパフォーマンスを自動的にテストできます」と Allan は述べています。「現在、検索結果や商品の閲覧など、このようなテストでカバーされているコア シナリオが 6 つあります」
また、Mercari のデベロッパーは、リアルタイムアプリのパフォーマンスモニタリングツールである Firebase Performance Monitoring とカスタムコードを統合し、Compose 画面のスクロールパフォーマンスを計算しました。Firebase Performance Monitoring を使用して、Mercari チームは検索結果画面でのパフォーマンスの問題を検出しました。Mercari デベロッパーは Android Profiler を使用して問題を調査し、検索結果のスクロール時のフレーム レートが低いことがわかりました。これにより、レンダリングが遅くなる場面が約 23.6% 減少しました。
Mercari チームは Google の Compose のパフォーマンスのベスト プラクティス と Compose の安定性 (英語) を参照して、このフレーム レートの問題を解決しました。Mercari のデベロッパーは、アプリが Composables (英語) をスキップするように、 検索画面上の未使用の状態を外に取り出すことで、フレームレートを大幅に向上しました。
管理するコードが少ないため、Mercari デベロッパーは機能のテストと実装がはるかに簡単になりました。「新しい基盤を使って、ようやく多くのテストができます。ユーザーは Mercari アプリの新機能をより速い速度で期待できるでしょう。」と Allan 氏は述べています。
Mercari のデベロッパーはさらに Animation API を使用するアプリを開発できることを楽しみにしています。Compose を使用すると、コンポーネントのアニメーション化がはるかに簡単になり、Android UX の大幅に改善できる可能性があります。
Jetpack Compose で UI 開発を最適化しましょう。
Reviewed by Mari Kawanishi - Developer Marketing Manager, Google Play
この記事は Google Play Software Engineering、Laura Nechita、Google Play Product Specialist、Victor Chen による Android Developers Blog の記事 "Enable next generation IDs for better Play Games Services support for all Google accounts" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Play ゲームサービス(PGS)は、ユーザーのプライバシーとマルチ プラットフォームでのゲーム体験をさらに向上させるため、Play ゲームサービス(PGS)に次世代 ID の導入を決定しました。この変更により、ユーザーが初めてゲームをプレイする際に、ユーザーがゲームをプレイするデバイスやプラットフォームに関係なく一貫性を保ちながら、ゲームごとに異なる固有の次世代 ID が常に割り当てられることになります。
既存のユーザー、または PGS を使用してゲームにログイン済みのアカウントは、現在の PGS プレイヤーIDが維持されるため、この変更の影響を受けません。複数のタイトルをお持ちで、ゲーム間のユーザー体験を提供するために、タイトルをまたいでユーザーを識別しなければならない場合は、デベロッパー プレイヤーキーも導入します。詳しくはこちらをご覧ください。
次世代 ID では、管理対象のアカウントを含め、すべてのアカウントで Play ゲームサービスのサポートが向上します。
ロールアウト スケジュールは以下のようになっています。
ゲームへの影響
次世代 ID は、ゲームで PGS に初めてログインするユーザーにのみ割り当てられます。
すでにゲームで PGS にログインしているユーザーには影響しません。
新しいデベロッパー プレーヤーキーを導入することで、ポートフォリオ内のゲーム間でユーザーを識別することができます。
この記事は Android & Google Play ゲーム、Product Director、Greg Hartrell による Android Developers Blog の記事 " Key product updates from the 2023 Google for Games Developer Summit " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
ゲーム開発に初めて取り組んでいる方や、次のシーズンパスへの対応に取りかかっている方などに向けて、Google は開発と公開のライフサイクル全体を通して皆さんにサポートを提供し続けます。今回の Google for Games Developer Summit (英語) では、期待の新ツールを紹介したほか、Android と Google Play が提供するエキサイティングな新ツールや洞察を紹介し、皆さんのようなデベロッパーの方々が、誰もが楽しめるゲームを作れるようにお手伝いすることができました。
基調講演とプロダクト セッションは、動画プレイリスト (動画/英語 - 日本語字幕あり) からオンデマンドでご覧いただけます。(※日本語字幕は YouTube の自動翻訳機能で日本語を選択してください) または、本記事でハイライトを短くまとめて紹介しますので、そのままお読みください。
アプリの品質は Android と Google Play のすべての活動の基本です。これは、すべてのユーザーにとって重要なことなので、技術的品質へのアプローチを改訂し、これまで以上にユーザー エクスペリエンスを重視しています。
現在、Google Play の技術的品質の水準に、ユーザーが認識するクラッシュと ANR の指標が新たに使われるようになっています。この指標はデバイスごとに評価するとともに、全体でも評価しています。Google Play ではデバイスレベルで 8% の品質水準を導入しており、ユーザーのスマートフォンでこのしきい値を満たしていないタイトルは、そのユーザーの目にとまりにくくなっています。この基準を満たしてもらうため、たくさんの新機能を Android Vitals にリリースし、簡単に問題の監視や対応ができるようにしています。これらの機能については、こちらのセッション (動画/英語 - 日本語字幕あり) で詳しく説明しています。品質基準については、こちらのブログ投稿をご覧ください。
技術的品質のもう 1 つの重要な側面は、パフォーマンスです。Google Play のゲームでスムーズなユーザー エクスペリエンスを実現するには、少なくとも 30 フレーム / 秒を実現する必要があります。この目標の達成に役立ててもらうため、Android Vitals にゲームのフレームレート指標を追加しました。この指標は、Play Console または Developer Reporting API から確認できます。将来的には、ユーザーのスマートフォンで 20 フレーム / 秒を達成できないゲームは、そのユーザーの目にとまりにくくする予定です。この新しい指標の詳細については、こちらのセッション (動画/英語 - 日本語字幕あり) をご覧ください。
さらに、ゲームの品質向上に役立つ多数の新ツールや新サービスを導入しています。
Firebase Crashlytics をアップデートし、Unity による致命的なイベントのオンデマンド レポートをはじめ、Unity のスタック トレースの質を改善したことをお知らせしました。また、ネイティブ Android ANR のシンボリケーションをサポートし、近日中には GWP-ASAN 対応ゲームのメモリデバッグもサポートする予定です。
加えて、Android Game Development Kit (英語) に一連の Adaptability API も導入します。これにより、デバイスのパフォーマンスや熱が変化するシナリオに対してゲームを対応させやすくなります。Android Dynamic Performance Framework には、ワークロードに関する信号を CPU に送るヒンティング ライブラリが含まれているので、必要なときにパフォーマンスを上げ、そうでないときは電力を節約できます。熱によってデバイスが遅くなりそうなタイミングを実行時にリッスンする Thermal API もあるので、デバイスをオーバーヒートさせないようにワークロードを調整し、パフォーマンスを平準化できます。これらのアップデートの詳細については、こちらのセッション (動画/英語 - 日本語字幕あり) をご覧ください。
多くのゲームでは、プレーヤーとのつながりを持つことが成功の秘訣となります。そこで、新しいプレーヤーを見つけるチャンスや、既存のプレーヤーとのエンゲージメント向上や再獲得をうながす機会を増やします。
LiveOps ツールをプロモーション用コンテンツとしてリニューアルし、より多くのデベロッパーの方々にご利用いただけるようになりました。対象となるデベロッパーは、Play Console でプロモーション用アセットをアップロードし、ゲーム内イベント、特典やセール、イベントや大型アップデートをプロモーションすることができます。新規ユーザーや復帰ユーザー向けにこのコンテンツをカスタマイズすることもできます。
ストアのカスタム掲載情報を利用すると、国や事前登録状況などに応じて異なる説明文やグラフィック アセットを持つ、最大 50 件のストア掲載情報を作成できます。離脱ユーザー向けのカスタムのストア掲載情報機能を導入したので、離脱したユーザーを対象に、ゲームの再プレイを促すための異なるストーリーを提供することができます。
Play Console 機械翻訳の早期アクセス プログラムについてもお知らせしました。この機能を使うと、ゲームの文字列を数分で翻訳できます。Google 翻訳と Transformer ベースの最高級の言語モデルを活用し、簡体字中国語や日本語を含む 8 つ以上の言語で質の高い翻訳ができます。こちら (英語) から登録し、いち早くこの機能を試すデベロッパーの 1 人になりましょう。
大画面は、ゲーム体験を強化する新たな機会です。私たちの調査 (PDF/英語) によると、スマートフォンを持つ人のほとんどがタブレット、Chromebook、PC などの大画面デバイスを利用でき、ゲーマーはデバイスを超えてゲームを楽しみたいと考えています。大画面は、高解像度グラフィックを実装する、マルチタスクを活用する、折りたたみ式固有の体験を導入する、キーボードやマウス、ゲーム コントローラに対応してユーザーの操作性を改善するといったことを実現できる場所です。
Android がすばらしいのは、こういったすべての画面にゲームを簡単に適応することができる点です。さらに、ユーザー エクスペリエンスを向上するためのアップデートも行っています。
各フォーム ファクタには独自のメリットがありますが、それぞれに対してゲームを個別にカスタマイズする必要はありません。こちらのセッション (動画/英語 - 日本語字幕あり) では、どの大画面プラットフォームでも快適にゲームをプレイできるようにする方法を説明します。
今後数か月の間に、現在 13 か国にベータ版を提供している PC 版 Google Play Games (ベータ) が日本とヨーロッパ各国に拡大されます。対象のゲームも増え、『Garena Free Fire』、『Ludo King』、『メイプルストーリーM』などのトップゲームが加わります。
さらに 2023 年 3 月 14 日より、ゲームが x86 をサポートしているかどうかに関係なく、既存のモバイルビルドを使って、はるかに簡単に PC 版 Google Play Games (ベータ) に参加できるようになります。Intel との連携によって、最適化作業中のモバイルビルドを提出できるようになったため、すぐに x86 でコンパイルし直す必要はありません。
今回の最新情報についてさらに詳細を知りたい方は、こちらのブログ投稿をご覧いただくか、PC 版 Google Play Games (ベータ) への参加を申請 (英語) してください。
Google for Games Developer Summit でのその他の発表は、g.co/gamedevsummit (動画/英語 - 日本語字幕あり) から確認できます。いつも思慮深いフィードバックをお送りいただいていること、そして世界中のプレーヤーに向けた高品質なゲーム体験作りに協力していただいていることに本当に感謝しています。
PC 版 Google Play Games (ベータ) は 13 か国でダウンロードできます。 詳しい情報は、g.co/googleplaygames をご覧ください。ゲームのタイトルは、地域によって異なる場合があります。
Posted by Tamao Imura and Mari Kawanishi - Developer Marketing Manager, Google Developer Marketing
この記事は Google Play Games、ディレクター、Arjun Dayal による Android Developers Blog の記事 " Unlock seamless gameplay across mobile and PC with Google Play Games" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
PC 版 Google Play Games (ベータ) (英語) を利用すると、お気に入りのモバイルゲームを PC でプレイできます。もちろん、Google Play に期待されるセキュリティと安定性も担保されます。このプロダクトは、一流のゲームを取りそろえ、毎月 100 億回以上のモバイル セッションを提供しています。高品質で高パフォーマンスなエミュレーションとクロススクリーンでのゲームプレイは、ユーザーから熱狂的な支持を受けています。
デベロッパーが PC 版 Google Play Games (ベータ) に参加すると、多くのユーザーにアプローチしてエンゲージメントや投資収益率を向上できるだけでなく、さまざまな Google のプラットフォームで動作する高品質なゲームを作ることができます。
2023 年 3 月 14 日 (現地時間) に開催された Google for Games Developer Summit (英語) では、クロスプラットフォーム ゲーム開発がさらに簡単になったことをお伝えしました。具体的には、PC 版 Google Play Games (ベータ) へのオンボーディング プロセスを改善してシンプルにしています。今回お知らせした特に重要なアップデートについては、PC 版 Google Play Games (ベータ) プレイリスト (動画/英語 - 日本語字幕あり) をご覧いただくか、このままこの記事をお読みください。
PC 版 Google Play Games (ベータ) の対象地域を拡大し、世界中の数十億人のユーザーに愛されているゲームをさらに追加します。プログラムは今後数か月間で日本とヨーロッパ各国に拡大され、『Garena Free Fire』、『Ludo King』、『メイプルストーリーM』などの新しいゲームが追加されます。
Intel と連携し、既存のモバイルビルドを使って簡単に PC 版 Google Play Games (ベータ) に参加できるようにします。最高のユーザー エクスペリエンスを提供でき、クロスプラットフォーム専用のマーケティングやプロモーションする資格を得られるのは完全に最適化されたゲームだけである点は変わりませんが、既存のモバイルビルドを提出する方法を導入し、短時間でプレーヤーにアプローチできるようにします。PC で問題なく動作するモバイルゲームをお持ちの方は、PC 版 Google Play Games (ベータ) への参加をすぐに申請 (英語) できます。
新しい PC 版 Google Play Games (ベータ) デベロッパー エミュレータ (※現時点では一般未公開) は、Google Play Games (ベータ) のデベロッパー向けビルドで、デバッグやビルドのプロセスに特化した設計になっています。adb コマンド経由でサイドローディングされた APK を使ってゲームを直接開発できるほか、Android Studio を使用してグラフィックやハードウェアの設定を調整し、さまざまなプレーヤー条件で検証することもできます。エミュレータをダウンロードしたい方は、さっそく申請してください。
Google Play Games (ベータ) でプレーヤーに質の高い体験を提供できるように、新しいリリース チェックリストで必要な全手順を終えていることを確認してから、ビルドを申請しましょう。これにより、承認プロセスにかかる時間も短くなります。チェックリストには、高解像度のテクスチャやアセット、Windows のアスペクト比のサポート、マウス入力とキーボード入力の実装など、重要な要件が記載されています。
20 億人以上のゲーマー プロフィールを有する Play Games Services は、Google Play Games (ベータ) がデバイスをまたがったシームレスな連続性を保つうえで中核となる機能です。今年は、次世代のプレーヤー ID をロールアウトします。これにより、一部のゲーム内では一貫性が維持され、ゲームが違えば一意になるプレーヤー ID を実現します。
ここ数年間、ゲーム業界はパソコン、ノートパソコン、タブレット、折りたたみ式などの大画面デバイスに注力してきました。各フォーム ファクタには独自のメリットがありますが、それぞれに対してゲームを個別にカスタマイズする必要はありません。こちらのセッションを確認 (動画/英語 - 日本語の自動字幕あり) すると、異なるプラットフォームに対して、優れたゲームプレイをまとめて提供する方法を学ぶことができます。
PC 版 Google Play Games (ベータ) の詳細は、デベロッパー サイトで確認できます。Google for Games Developer Summit のすべてのセッションは、g.co/gamedevsummit (英語) でご覧いただけます。(※日本語字幕は YouTube の自動翻訳機能で日本語を選択してください)
Windows は、Microsoft のグループ会社による商標です。
*2023 年 3 月 14 日時点で、PC 版 Google Play Games (ベータ) は 13 か国でダウンロードできます。