この記事は Google Play、スタッフ ソフトウェア エンジニア、Harini Chandrasekharan による Android Developers Blog の記事 "Feature Engineering in the Google Play Store" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
10 年前の 2012 年にスタートした Google Play ストアは、Android の中核になっており、世界中で数十億人のユーザーと、世界中で増え続けるアプリやゲームのコレクションを結びつけています。
ここでは、世界最大の Android マーケットプレイスを支えるインフラストラクチャを設計するうえで必要なことを紹介するために、その舞台裏をのぞいてみることにしましょう。コンシューマー向けソフトウェアの世界を考えるなら、既製のエンジニアリング ソリューションでは、 Google のスケールが求める要件を満たすことが難しいことは当然です。そのため、Google のすべてのシステムは Google Play ストアのユニークな可用性、品質、遅延の要求を満たすために、慎重に作られ、機能を改善し続けることで磨かれています。
機能とは、フォーマット、コンテンツ、コンテンツの配置、ページ レイアウト、情報アーキテクチャなど、ユーザーが触れるものを指します。フォーマットとは、Google のレコメンデーション システム、広告主、販売者など、さまざまなソースから取得されるアプリのコンテンツをどのように UI に表示するかを表します。ここで目指すのは、ユーザーが Google Play ストアを操作しているときに最も関連性の高いアプリやゲームを提示できるように、適切なコンテンツと UI を組み合わせてオーダーメイドの体験を実現することです。
ユーザーを対象とした機能では、ユーザーの意見や選択、デベロッパーのエコシステムや需要がインフラストラクチャよりも速く変化することがほとんどです。そのような環境でエンジニアが直面する最大の課題は、スケーラビリティやパフォーマンスの制約の中で、陳腐化しないだけでなく、ユーザー領域のニーズにも応えられるインフラストラクチャをいかにタイムリーに設計するかという点です。そのようなダイナミックな領域におけるエンジニアリングの課題について、いくつかを詳しく取り上げることにしましょう。
Google Play ストアのようなデータドリブンな組織では、あらゆる重要なものを計測する指標が作られています。次に挙げるのは、成功を測定し、追跡する際に役立ついくつかの特性です。
プロダクトやビジネスの指標 - 対象のプロダクトやサービスに固有な指標です。新たな処理に対して A/B テストを実施し、この指標の変化を測定すれば、意思決定に多くのトレードオフが伴う場合などの信頼性が高まります。
パフォーマンス - レイテンシ、エラー率、可用性の測定は、ほぼすべてのサービスの根幹を成しており、それには正当な理由があります。このような基本指標から、ユーザー エクスペリエンスやプロダクトの認識を細かく追跡できるので、これを把握することは不可欠です。
システム健全性 - リソースの使用率やフリートの安定性を追跡する内部システム指標です。
最も重要なのは、Google Play ストアの要件までスケーリングでき、ユーザーのスムーズな操作と応答の速さに必要なパフォーマンス基準を満たすバックエンド システムを設計することです。エンジニアリングの観点から見れば、インフラストラクチャは継続的に進化してビジネスニーズを満たせるものでなければなりません。Google Play ストアも同じで、ストアのインフラストラクチャはこの 10 年で何度も進化を遂げ、現在ユーザーが利用している新機能に対応しています。それだけでなく、モダナイズによって、とりわけ重要なレイテンシの削減などの技術的負債の解消も行っています。
課題 : 多くの場合、機能には長期にわたる大量の反復作業が必要です。そのため、すべての機能要件を満たすインフラストラクチャの開発を計画するのは困難です。
実験主導のやり方では、大規模な機能をすばやく構築するための最適なアプローチによって、技術的負債が生じることが多くなります。技術的負債にはさまざまな形があります。うまく動作せず、クリーンアップできない過去の機能の遺産が積み重なり、パフォーマンスに影響が生じ、コードのエラーが起きやすくなり、テストが難しくなります。
課題 : 数百名のエンジニアを抱える大規模組織では、多くの機能が独立して並行に開発されることがほとんどです。
インフラストラクチャの再利用やイノベーションの共有は、大幅にスピードを落とさない限り、実現できない場合がほとんどです。多くの場合、プロダクトが急速に進化する領域では、システムを柔軟にするために組み込むさまざまなレバーやノブに大量の不確実性が存在します。レバーが多すぎると、システムの複雑さが大幅に増す場合があります。レバーが少なすぎると、反復作業にかかるコストが膨大になります。この 2 つの間のバランスを見つけることは、この領域のフィーチャー エンジニアリングの中核の 1 つです。
課題 : 多くの場合、優れたエンジニアリング ソリューションを開発する時間のために、機会費用が発生します。
実験にかかる時間は、ユーザー向けの機能ソリューションを設計するときに念頭におくべき、特に重要な指標の 1 つです。反復作業を速くし、レイテンシなどのパフォーマンス SLO を満たせる柔軟な設計が理想です。
実際には、特にユーザーに影響する変更の影響を見積もる場合は、大量の推測が必要になることがほとんどです。過去のデータや教訓を活用して確実に見積もれる状況もありますが、試したことのないまったく新しいアイデアに対しては十分な方法ではありません。
Google Play ストアがこういった課題をどう解決し、最先端のイノベーションを実現しているかを確認してみましょう。
市場投入までの時間(ユーザーに機能を届けるまでの時間)を最適化し、それがアプリのインストール数などのストアのビジネス指標にどう影響するかを A/B テストによって計測することが最も重要です。データに基づいて高速に反復することで、最終的な機能を調整し、目指す最終状態に向かうことができます。Google には、世界規模で A/B テストができる複数の自社製テクノロジーがあります。デベロッパーが分析ではなくコーディングに時間をかけることができるように、指標提示ツールとシームレスに統合され、A/B テストなどを簡単かつスムーズに行えるようになっています。
何を開発するのか、それが Google の品質標準を満たしているか、そしてエンジニアリング費用とそれが解決するユーザーのニーズを理解しているか、といった問いは、いずれも何かを設計する前に答えを出すべき重要な問いです。そのため、プロダクト マネージャーと密接に連携してフィーチャー エンジニアリングを実施する場合がほとんどです。プロダクトの成功に向けて重要なのは、妥当なエンジニアリング時間で構築でき、ユーザー ジャーニーに一致する完全な実用最小限の製品(MVP)に近づけることです。
反復作業を頻繁に行い、短時間で MVP を開発する方式には、いくつかの短所が存在することがほとんどです。その最も大きなものが技術的負債です。スピードアップのための最適化の際に手を抜くと、(開始できない指標のため)コードが陳腐化したり、試験運用版フラグのまま捨てられてしまったりすることがあります。これを放置すると、テストや保守、今後の開発速度に影響することが多くなります。また、優れた最新フレームワークを使うことで、最後の数ミリ秒のレイテンシを解消し、開発を簡単にして長期的なメリットにつなげることができます。昔から、リファクタリングや完全な書き換えによってインフラストラクチャを頻繁にモダナイズすることは、コードの設計不良の兆候と見なされることがあります。しかしこれは、フィーチャー エンジニアリングで必要になる大きなトレードオフの 1 つです。たとえすばらしいインフラストラクチャがあったとしても、ユーザーがその機能を使わないなら、何の役にも立たないからです。
Reviewed by Mari Kawanishi - Developer Marketing Manager, Google Play
この記事は エンジニアリング部門副社長、Dave Burke による Android Developers Blog の記事 " Android 14 Beta 1" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android は、年間を通して機能強化と新機能を提供します。Android の継続的改善においては、Android ベータ版プログラムのフィードバックが重要な役割を果たします。Android14 デベロッパー サイト (英語) には、Pixel にダウンロード (英語) する方法やリリース スケジュール (英語) など、ベータ版に関する多くの情報が掲載されています。皆さんの感想を聞く (英語) のを楽しみにしています。そして、Android を誰もが使えるプラットフォームにするために、引き続き協力をお願いいたします。
Android 14 は、これまでのリリースで行われたタブレットや折りたたみ式のフォーム ファクタをサポートするための作業が基礎となっています。また、デザイン アイデア集や開発ガイドなど、アプリのエクスペリエンスを洗練するためのツールやリソースも作成しています。
Android オペレーティング システムでは、等しく重要な 2 つの異なるパッケージによって機能を実現しています。それは、サービスを提供するフレームワークと、ユーザーがそのサービスを操作するために使うシステム UI です。システム UI は Android のリリースのたびに微調整していますが、ベータ版 1 に導入されているものをいくつか紹介します。
新しくなった戻る矢印
システム共有シートの改善
また、ダイレクト シェア ターゲットのランキングを決定するために、さらに多くのアプリシグナルが使われるようになります。シグナルは、pushDynamicShortcut (英語) を呼び出し、対応する機能バインディング (英語) を使ってショートカットの使用方法を報告することによって提供します。
Android 14 では、アプリを際立たせるために、新しいグラフィック機能が追加されています。
パスのクエリと補間に対応
Android の Path API (英語) は、ベクター グラフィックの作成とレンダリングの強力で柔軟な仕組みです。Android 14 より、パスを照会して内容を確認できるようになります。今回の API アップデートには、構造が完全に一致するパス間の補間機能が含まれています。これにより、モーフィング効果を実現できるようになります。また、AndroidX ライブラリによって API 21 までの下位互換性が提供されます。詳細はこちら (英語) をご覧ください。
アプリ別の言語設定
Android 14 では、アプリ別の言語設定が強化され、Android の [設定] のアプリ別の言語リストに表示される言語セットを動的にカスタマイズ (英語) できるようになります。また、IME から現在のアプリの UI 言語を取得できるようになります。Android Studio Giraffe Canary 7 と AGP 8.1.0-alpha07 より、アプリ別の言語設定をサポートするようにアプリを自動構成できます。Android Gradle プラグインは、プロジェクトのリソースに応じて LocaleConfig (英語) ファイルを生成し、このファイルへの参照を生成されたマニフェスト ファイルに追加します。そのため、言語サポートを変更する際に、手動でファイルを作成したり更新したりする必要はなくなります。詳しくは、アプリ別言語の自動サポートをご覧ください。フィードバックもお願いいたします。
障がいのある方向けのユーザー補助サービスのみに公開範囲を限定する
Android 14 では、accessibilityDataSensitive 属性が導入されます。これを使うと、障がいのあるユーザーをサポートするものであることを宣言したユーザー補助サービスのみに、特定のビューを公開できるようになります。Google Play ストアからダウンロードするアプリでは、Google Play プロテクトがこの宣言の信頼性を保証します。TalkBack など、障がいのあるユーザーをサポートするものであることを宣言したサービスは、この属性の影響を受けません。
アプリでは、以下の目的で accessibilityDataSensitive を使うことを検討できます。
ユーザーデータを保護する(個人の詳細や平文パスワードなど)
重要なアクションが意図せずに実行されることを防ぐ(送金、ショッピング アプリでの決済など)
まだ Android 14 でアプリの互換性テストを実施していない方は、ぜひこのタイミングで行っておきましょう!Android 14 がベータ版になったので、デベロッパーだけでなく、先行ユーザーもアクセスできるようになります。今後数週間のうちに、Android 14 で皆さんのアプリを試すユーザーが増え、見つかった問題が報告される可能性があります。
互換性テストを実施するには、公開しているアプリを Android 14 ベータ版を実行しているデバイスかエミュレータにインストールし、アプリのフローをすべて試します。重点的にテストを実施すべき点については、動作の変更点 (英語) を確認してください。見つかった問題を解決できたら、できる限り早くアップデートを公開しましょう。
このタイミングで、アプリのターゲットを Android 14 にする準備を始めることをおすすめします。開発者向け設定で、アプリの互換性変更を切り替えてテストを実施しましょう。
今回のベータ版のリリースには、Android 14 の機能を試し、アプリをテストしてフィードバック (英語) を提供するために必要なすべてのものが含まれています。タブレットや折りたたみ式でアプリのテストを始める一番簡単な方法は、Android Studio SDK Manager (英語) の最新プレビュー版で、タブレットまたは折りたたみ式設定の Android Emulator を使うことです。ベータ版フェーズに入ったため、こちらからサポート対象の Pixel デバイスを登録するだけで、今回と今後の Android 14 ベータ版やフィーチャー ドロップのベータ版アップデートを無線(OTA)で受け取ることができます。Pixel デバイスをお持ちでない方は、Android Studio で 64 ビット システム イメージと Android Emulator を使うことができます。
Android 14 向けに最高の開発をするには、Android Studio Giraffe (英語)(または Giraffe 以降の最新版)の最新プレビュー版を使うことをおすすめします。セットアップ (英語) の完了後にやるべきことは、以下のとおりです。
新しい機能や API を試す - API の確定に向けて、皆さんのフィードバックが不可欠です。問題は、フィードバック ページ (英語) のトラッカーで報告してください。
現在のアプリの互換性をテストする - アプリが Android 14 のデフォルト動作の変更による影響を受けるかどうかを確認します。Android 14 を実行しているデバイスかエミュレータにアプリをインストールし、幅広くテストします。
変更をオプトインしてアプリをテストする - Android 14 では、動作の変更点はターゲットに新しいプラットフォームを指定した場合にのみアプリに影響するようになっており、それをオプトインすることができます。変更点を早めに把握し、評価することが重要です。簡単にテストできるように、変更点のオン、オフを個々に切り替え (英語) られるようになっています。
プレビューやベータ版のシステム イメージと SDK は、Android 14 のリリース サイクル期間を通じて定期的にアップデートされる予定です。
すでに Android 13 QPR ベータ版プログラムに登録しており、デバイスがサポートされている場合は、特に何もしなくても Android 14 ベータ版 1 が利用できるようになります。
ベータ版の入手方法の詳しい説明は、Android 14 デベロッパー サイトをご覧ください (英語) 。
新しいプラットフォーム「ヘルスコネクト」をデベロッパーが採用する 4 つのベネフィット
2023 年 4 月から、Android のプラットフォーム「ヘルスコネクト」に日本国内の 6 社がローンチパートナーとして参画。各アプリにおいて、今後ヘルスコネクトと連携したサービスが順次使用可能になります。ヘルスコネクトはユーザーの同意の元、アプリ間でデータを共有できるプラットフォームです。アプリ間の接続はより少ないコードで実装でき、リリース後のメンテナンスにかかるコストを大幅に削減できます。
グローバルではすでに 40 社が参画しており、今春から日本でもヘルスコネクトを中心とした健康・フィットネスアプリのエコシステムが開始します。
1. ユーザーの健康データ提供・連携がシンプルに
ヘルスコネクトは健康・フィットネスアプリのデベロッパーが、アプリに記録したデータを安全に、ユーザーの許可のもと他の健康・フィットネスアプリと共有できるプラットフォームです。ヘルスコネクトに集約したデータはユーザーのデバイスに保存されます。
ヘルスコネクトは現在、アクティビティ、睡眠、栄養、ウィメンズヘルス、身体測定値、バイタルの 6 カテゴリにわたる 50 種類以上のデータを格納できます。これまでアプリ間でデータ連携するには複数の API 接続に向けた開発や維持に対するコストがデベロッパーの負担になっていました。その結果、ユーザーは自分自身のデータを総合的に判断するために、複数のアプリをまたいで確認する必要がありました。
ヘルスコネクトを活用することで、デベロッパーはユーザーの同意の元、ヘルスコネクトから必要なデータにアクセスできるようになります。
ヘルスコネクト の単一の API セットにより、アクセス許可の管理とデータの読み取りと書き込みが簡単になります。
2. より少ないコードで、より深いインサイトを提供可能に
ヘルスコネクトでは数行のコードを追加するだけでデータの読み込み・書き込みが可能になります。また、複雑な集計処理もヘルスコネクト側でサポートするので、クエリのカスタマイズすることで、個々のユーザーに最適化された健康に対する深いインサイトを提供することができます。デベロッパーはデータ連携の開発にかけていた時間を、ユーザーにとって価値のある顧客体験の創出にかけられるようになります。
3. 健康領域アプリのユーザーのベネフィット向上
ヘルスコネクトは健康・フィットネスに関するデータの標準化をサポートし、さまざまなアプリが API に自由に接続できるプラットフォームです。今後、さまざまなアプリがヘルスコネクトを活用し、エコシステムが充実することで、それぞれのアプリが得られるベネフィットが向上していくでしょう。
4. ユーザーのプライバシー管理を一元化
ユーザーから取得する権限の管理はヘルスコネクトに一元化されます。ユーザーはヘルスコネクト上で複数のアプリのアクセス状況を管理でき、随時設定変更が可能です。デベロッパーにとっては、権限管理と設定画面の UI 開発コスト削減につながるほか、データ連携をより容易に実現するメリットがあります。また、ヘルスコネクトのデータは暗号化された上でデバイスにのみ保存されます。
日本から 6 社のデベロッパーが参画
ヘルスコネクトの提供開始に対して、日本国内の 6 社が参画。
2023 年 4 月から順次ヘルスコネクトに対応した機能をリリースします。対応するアプリは以下のとおりです。
※カッコ内はアプリ提供企業
WEBGYM(株式会社東急スポーツオアシス): フィットネス動画配信とトレーニングログ記録アプリ
あすけん(株式会社 asken): 食事記録と栄養価計算・体重管理アプリ
ユビー(Ubie 株式会社): 症状検索・医療機関 - 受診支援アプリ
Welby マイカルテ(株式会社 Welby): 2 万 6,200 か所の医療機関と連携する健康データ共有アプリ
シチズンヘルスケア健康予約(シチズン・システムズ株式会社): 血圧計・体温計で取得したデータを簡単に記録できるアプリ
メディセーフデータシェア(テルモ株式会社): 血糖測定器・血圧計などで取得したデータを簡単に記録できるアプリ
ヘルスコネクトを通じて、より豊かな UX を提供しましょう
ヘルスコネクトでは、今後より多くのデータに対応する予定です。データの拡充によって、デベロッパーはさまざまなデータを組み合わせた豊かなユーザー体験ができるようになるでしょう。すでにヘルスコネクト連携に関するドキュメントや動画チュートリアル (英語/日本語字幕あり)、コードサンプルを多数提供しています。
Google ではプラットフォームとテクノロジーを駆使して、よりシンプルかつ安全にアプリ間の健康情報を結びつけ、より豊かな価値を提供することで、多くの人々の健康の支援を目指します。この取組にぜひご参加ください。
ヘルスコネクト SDK や API など開発に必要な情報は、こちらで詳しく紹介しています。
Google Pixel スマートフォンをご利用の場合、ソフトウェアアップデートによりヘルスコネクトが追加され、端末の設定にメニューが追加されます。
その他の Android デバイスをご利用の場合は Google Play よりダウンロードして、ご利用ください。ヘルスコネクトはアプリとしては表示されません。設定画面からヘルスコネクトを選択して、設定内容やデータをご確認ください。
今年の Google for Games Developer Summit (動画/英語 - 日本語字幕あり) で Google Play Games (ベータ) が日本に拡大する予定を発表しました。このベータ版エクスペリエンスの目標は、早期にフィードバックを収集して、世界中のプレイヤーと開発者のニーズに合わせて製品を改善し続けることです。そして本日、国内のすべてのプレイヤーに向け、Google Play Games (ベータ) をリリースします。(* プレイできる環境は、デバイスやアカウント要件によって異なります)
Google Play Games (ベータ) は、すでに米国などで公開されており、ドラゴンボール レジェンズや原神など、国内でも人気を博している多くのモバイル ゲームもプレイいただけます。また過去数か月間、多くの人気モバイル ゲームが追加されたことで、Google Play Games カタログの成長が加速しています。特に今回、ウマ娘 プリティーダービー、FFBE幻影戦争 WAR OF THE VISIONS、eFootball™ウイコレ CHAMPION SQUADS、三國志 覇道など、国内でも評価の高いデベロッパーやパブリッシャーによるタイトルが、Google Play Games に加わりました。これらを含む何十作品ものゲームが、Google が構築したスタンドアロン アプリケーションを介して Windows PC 上でプレイできるようになります。
私たちのより広い目標は、プレイヤーとの出会いを広げ、できるだけ多くのデバイスでゲームにアクセスできるようにすることです。これまでベータ版に参加されたプレーヤーからも、スマートフォン、Android タブレット、Chromebook、Windows の PC でお気に入りのゲームをシームレスにプレイできることにご好評をいただいています。さらに、昨年の公開以来、より多くのプレーヤーにリーチできるよう、統合型のグラフィックス カードと 4 コア以上の CPU を搭載した Windows 10 以上が動作する PC へと最小仕様要件を引き下げることで、大幅な進歩を遂げてきました。
プレーヤーが Google Play でお気に入りのゲームを楽しめるように、本プラットフォームをより多くの市場に拡大できることを嬉しく思います。完全なリリースに向けて、引き続き新機能を追加し、開発者とプレイヤーからのフィードバックを評価していきます。今後のお知らせへのサインアップや、ベータ版を利用するには、g.co/googleplaygames にアクセスしてください。Google Play Games (ベータ) についての詳しい情報を希望する Android ゲーム開発者は、デベロッパー サイトよりお問い合わせいただけます。今後のベータ リリースと各地域での提供については、近日中にお知らせする予定です。
Windows は Microsoft グループの商標です。ゲームタイトルは地域ごとに異なる場合があります。
この記事は Ryan Fitzgibbon による Android Developers Blog の記事 " Preparing for the Android Privacy Sandbox Beta " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
プライバシーを重視した新たなモバイル向け広告ソリューションを導入するという目的のもと、Android のプライバシー サンドボックスについてお知らせしたのは 昨年 2022 年 2 月のことでした。
そして 2022 年を通して、デザイン案を公開し、たくさんのデベロッパー プレビューをリリースしてきました。皆さんからのすべてのフィードバックに感謝いたします。そのおかげで、提案を改善することができました。
デベロッパーの皆さんが新しいソリューションの次の段階のテストに進めるように、本年より、Android 13 のモバイル デバイスを対象に、プライバシー サンドボックスの最初のベータ版を配信し始めます。配信は一部のデバイスから始め、徐々に数を増やしていきます。デベロッパー プレビューのリリースも継続される点に注意してください。新機能はまずデベロッパー プレビューとして提供し、初期フィードバックを集めた後、実環境のデバイスにリリースします。
この記事では、デベロッパーの皆さんが準備を整えられるように、プライバシー サンドボックス ベータ版の詳細についてお知らせしました。
ベータ版リリース以降、今後のデベロッパー プレビューを含め、広告関連の API(Topics、FLEDGE、アトリビューション レポートなど)を使えるのは、登録を済ませたデベロッパーのみとなります。この登録によってデベロッパーの身元を確認し、API に必要なデベロッパー固有のデータを収集します。登録方法の詳細はこちらをご覧ください。
プライバシー サンドボックス ベータ版は、ソリューションの一部として広告関連の API をテストしたいと考えている広告技術デベロッパーおよびアプリ デベロッパーが利用できます。
所有する Android 13 デバイスでベータ版をテストしたい組織がベータ版プログラムに参加するには、デバイス数限定のアクセスをリクエスト (英語) したうえで、サンドボックス API を使うアプリを登録する必要があります。
SDK ランタイムについては、デベロッパー向けのクローズド ベータ版があり、一部のアプリにランタイム対応 SDK を配布してテストを行います。SDK ランタイムのテストには実環境のデバイスとの連携が必要であるため、今回のベータ版では、このテストに対応できるリソースがある一部のパートナーとともに進めることを考えています。参加に興味がある方は、こちらから登録をお願いします (英語) 。
ベータ版リリースを使いたいデベロッパーは、昨年末に公開された API レベル 33 SDK 拡張機能アップデートでソリューションをコンパイルする必要があります。
多くの広告主やサイト運営者から、この新技術のテストで自分たちが果たせる役割に関する質問が寄せられています。サードパーティ製ソリューションを使って広告の提供や管理を行っている企業には、プロバイダと連携して、テストのロードマップやプライバシー サンドボックスの初期テストへの参加方法について理解しておくことをおすすめします。
Android のプライバシー サンドボックスに関わるすべての方に感謝します。次のテストフェーズに入るにあたり、今後も継続的にフィードバック (英語) をお寄せいただけますと幸いです。