[go: up one dir, main page]



Google Play Indie Games Festival 2019 」 トップ 3 作品が、本日 6 月 29 日に開催されたファイナルイベントで決定し、表彰されました。おめでとうございます!


トップ 3 受賞作品 (アルファベット順、五十音順) :


Infection - 感染 / CanvasSoft
MeltLand - メルトランド - / Masataka Hakozaki
くまのレストラン / Daigo Studio



ファイナルイベントでは、まずトップ 20 作品の中から、審査員による審査と一般参加者投票によりトップ 10 を決定。その後、トップ 10 デベロッパーによるゲームの紹介を元に、一般参加者および審査員の採点を実施し、トップ 3 が決定しました。


トップ 10 作品(上記 3 作品を除く。アルファベット順、五十音順) :


Lunch Time Fish / SoftFunk HULABREAKS
ReversEstory / ilili_barcode
カミオリ / TeamOrigami
キグルミキノコ Q-bit -第1章- / クラシック ショコラ
クマムシさん惑星 ミクロの地球最強伝説 / Ars Edutainment
テラセネ それでも君を照らしたい / SleepingMuseum
ペルセポネ / Momo-pi


特別賞の「集英社少年ジャンプ+賞」および「集英社 キャラクタービジネス室賞」は集英社様の審査員により、「 エイベックス 賞」はエイベックス・ピクチャーズ様の審査員により、そして「ゴジラ賞」は東宝様の審査員により、トップ 20 の中から選出されました。


集英社少年ジャンプ+賞受賞作品 :







集英社 キャラクタービジネス室賞受賞作品 :





エイベックス賞受賞作品 :


くまのレストラン / Daigo Studio

ゴジラ賞受賞作品:


相撲巻 - SumoRoll 横綱への道 / Studio Kingmo

2019 年 5 月 30 日から 6 月 24 日に実施したオンライン投票により、「オンライン投票最優秀賞」が決定しました。

オンライン投票最優秀賞受賞作品:


ALTER EGO / 株式会社カラメルカラム




受賞された皆様おめでとうございます!

各賞の賞品の 1 つとして Google Play Indie Games Festival 2019 特設ページをGoogle Play に公開し、選出された作品の掲載を行っています。



改めてご応募くださったデベロッパーの皆様、イベントへ参加いただいたゲームファンの皆様、審査員をはじめ関係者の皆様ありがとうございました。

これからも、ゲーム デベロッパーのアイディア、こだわり、思いが込められたゲームや作品を幅広く、多くの方に知っていただけるよう活動を続けていきます。




Posted by Tomoko Tanaka - Developer Product Marketing Manager, Google Play

この記事は Cory Liseno による Google Ads Developer Blog の記事 "Sunsetting the creation of target spend field for Maximize Clicks strategies in Google Ads API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。



2019 年 7 月 31 日より、API の「クリック数の最大化」入札戦略の目標予算フィールドを廃止します。これは、AdWords API と Google Ads API のすべてのバージョンに影響し、以下の操作が行えなくなります。
  • 既存の標準戦略またはポートフォリオ戦略で目標予算フィールドを設定する
  • 廃止された項目があるポートフォリオ戦略をキャンペーンに与える
今年中に、目標予算フィールドが無視され、1 日の予算を使って支出が管理されるようになります。この変更に対応するために、「クリック数の最大化」入札戦略に使う予算の額を指定し、キャンペーンで目標予算項目を使わないように移行する必要があります。

以降では、API の使用方法への影響について説明します。
影響を受ける目標予算フィールド
Google Ads API campaign.target_spend.target_spend_micros
bidding_strategy.target_spend.target_spend_micros
AdWords API Campaign.BiddingStrategyConfiguration.TargetSpendBiddingScheme.spendTarget
SharedBiddingStrategy.TargetSpendBiddingScheme.spendTarget


変更点の説明
初めて目標予算フィールドを設定する変更操作は、すべてエラーとなります。現在値が設定されている目標予算フィールドの更新は可能ですが、それまで空だった項目に新しい値を設定することはできません。また、入札戦略の目標予算フィールドに値が設定されている場合、その戦略をキャンペーンにあた操作でエラーがスローされます。新しいキャンペーンで目標予算を管理するには、キャンペーン予算の利用をお勧めします。許可されないケースでは、エラーがスローされます。

許可されない操作を行うと、次のいずれかのエラーが発生します。
  • OPERATION_NOT_PERMITTED_FOR_CONTEXT
  • UNSUPPORTED_FIELD_IS_SET
この変更やその他の API 機能について質問がありましたら、フォーラムからご連絡ください。

Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team





7 月 30 日(火)〜 8 月 1 日(木)の 3 日間にわたって開催する Google Cloud Next '19 in Tokyo まで、残り 1 か月あまりとなりました。本日は、7 月 31 日(水)および 8 月 1 日(木)に ザ・プリンス パークタワー東京 地下 2F にて開催する 体験エリア Expo についてご紹介します。

体験エリア Expo では、『Data Analytics』『AI』『Retail』『Workplace Transformation』『Security』『Migration & Modernization』『Dev Zone (App Dev & Dev Ops)』『Game』

の 8 つの体験テーマに沿った約 40 の Google ブース、ならびに独自のサービスをご紹介するスポンサーブースを多数設置する予定です。今回は、その中から特に注目のブースをピックアップしてご紹介します。


Data Analytics
Location Intelligence 
位置情報を活用したデータ分析プラットフォーム
こちらのデモでは食品の配達ゲームを通して、Google Maps Platform の機能をご体感いただくことができます。ゲーム画面上に表示される複数の配達先に、どのようなルートを選択すれば効率よく配達できるかを競い合います。
AI
Explore Cloud TPU
Google が開発した AI プロセッサのアーキテクチャ
Google が開発した AI プロセッサ「Cloud TPU」のメカニズムを学べるデモです。CPU、GPU、そして TPU のアーキテクチャの違いや、TPU が GPU より優れた費用対効果を実現できる理由を理解できます。また、TPU で構成された AI スーパーコンピュータ「Cloud TPU Pod」のテクノロジーや応用分野を解説しています。
PA!GO powered by Edge TPU 
PA!GO は、パナソニックが Google の機械学習技術を活用して開発する、子どものための新しい知育デバイスのコンセプトモデルです。PA!GO を家の外に持ち出して、草や花、動物や虫など、外の世界で出会ったさまざまなモノを内蔵カメラで撮ると、AI がそれらが何かを音声で教えてくれます。PA!GO の実装には、Google の機械学習ライブラリ TensorFlow と AI プロセッサ Edge TPU によるオンデバイスでの画像認識や、Google ナレッジグラフによるモノの情報探索が利用されています。(協力会社:パナソニック株式会社)
Workplace Transformation 
Reimagine Workstyle with AI
G Suite と Chromebook、Hangouts Meet ハードウェア と Jamboard が、時も場所も選ばず、セキュアで効率的なクラウドコラボレーションを実現。AI 技術がもたらすスマートワークをぜひ体験してください。ミニセッションも開催します。
Security
Cloud Armor Fortified Castle
Cloud Armor をご利用いただくことで、外部からの有害な攻撃を防ぐことができます。Web サイトを城に見立て、そこに攻撃を仕掛けてくる忍者や侍を、Cloud Armor を使って簡単に守れる様子をゲーム感覚で体験できるブースです。
Migration & Modernization
Hybrid & Multi-Cloud City
Anthos や Kubernates について詳しくない方でも、スクリーン上に構築された仮想都市を通じて、ハイブリッドなコンテナ環境、構成管理、Service Mesh の構築など、Anthos の概念を体験しながら理解できます。
AppDev & DevOps
Life of Your Code with Cloud Run
コンテナ化したアプリケーションを、Cloud Build でビルドし Cloud Run にデプロイする一連の CI/CD ワークフローをインタラクティブに体験できます。
DevOps with Google Cloud
デジタル時代を生き抜くためのビジネスを創出する際、DevOps を行うことによるメリットは大いにあります。本ブースでは DevOps による効果と GCP を使った実装方法をデモを通じてお伝えします。


ぜひ、上記をご参考に、Google Cloud Next ’19 in Tokyo の体験エリア Expo にお越しいただければ幸いです。会場で皆さまにお会いできますのを、Google Cloud 社員一同楽しみにしております。





イベント概要
イベント名: Google Cloud Next ’19 in Tokyo
ウェブサイト:https://cloud.withgoogle.com/next/tokyo
日程: 2019 年 7 月 30 日(火)・7 月 31 日(水)・ 8 月 1 日(木)
時間:
7 月 30 日(火)
Bootcamp(有料) 9:00 / 13:00 〜 18:00(予定)
DevDay 10:00 〜 18:00(予定)
7 月 31 日(水)
開場 8:30 (予定)
基調講演 9:30 〜 11:30 (予定)
セッション 12:00 ~ 21:00(予定)
8 月 1 日(木)
開場 8:30 (予定)
    基調講演 9:30 〜 11:30 (予定)
    セッション 12:00 〜 18:00(予定)
Next '19 in Tokyo Night  18:30 〜 20:30(予定)
会場: ザ・プリンス パークタワー東京 および東京プリンスホテル

注意事項
※本カンファレンスは、Google Cloud の製品・サービス導入を検討されているエンドユーザー企業、団体、教育機関、政府自治体向けのイベントです。
※十分な座席数をご用意しておりますが、定員を超えた場合、エンドユーザー企業様優先の抽選とさせていただきます。
※イベントの当日登録は承ることが出来ません。前もってご登録くださいますよう、お願いいたします。
※ご不明な点は、FAQ をご確認ください。
————————————————————

お問い合わせ先
Google Cloud Next Tokyo 運営事務局
gc-nexttokyo-info@google.com

この記事は Mike Cloonan による Google Ads Developer Blog の記事 "Migrating from position to impression share bidding strategies in Google Ads" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

2019 年 6 月に、「検索ページの目標掲載位置」および「目標優位表示シェア」入札戦略を新しく追加する機能を停止します。これは、AdWords API と Google Ads API の両方に影響します。今年中に、これらの戦略が設定された既存のキャンペーンは、新しい入札戦略である「目標インプレッション シェア」に自動的に移行されます。「目標インプレッション シェア」では、柔軟で細かい制御ができるので、希望のインプレッション シェアや検索ページの掲載位置を最適化できます。

以降では、API の使用方法への影響について説明します。

Google Ads API ユーザー
BiddingStrategyType として、TARGET_OUTRANK_SHAREPAGE_ONE_PROMOTED ではなく、TARGET_IMPRESSION_SHARE を使うようにします。

TARGET_OUTRANK_SHAREPAGE_ONE_PROMOTED が削除された後、これらを作成しようとすると、エラーが発生します。

AdWords API ユーザー
TARGET_OUTRANK_SHAREPAGE_ONE_PROMOTED 入札戦略が削除された後、AdWords API を使ってこれらを追加しようとすると、エラーが発生します。

どちらの API でも、古い入札戦略を使っている既存のキャンペーンは、すべて自動的に「目標インプレッション シェア」を使うように移行されます。AdWords API は「目標インプレッション シェア」入札戦略をサポートしないので、この機能が必要な場合は Google Ads API に移行することをお勧めします。

この変更やその他の API 機能について質問がありましたら、フォーラムからご連絡ください。

Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Nadine Sundquist による Google Ads Developer Blog の記事 "Announcing v1_3 of the Google Ads API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

本日は、Google Ads API v1_3 がリリースされたことをお知らせします。このバージョンでは、引き続き v1 をエンドポイントとして使用できますが、v1_3 の機能を利用するには、クライアント ライブラリのアップデートが必要になります。

主な機能は以下のとおりです。
利用できるリソース
v1_3 の Google Ads API を利用するにあたっては、以下のリソースが役立ちます。
更新版のクライアント ライブラリとコードサンプルは、2019 年 5 月 24 日までに公開されます。ご質問やサポートが必要なことがありましたら、フォーラムからご連絡ください。

Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Doug Stevenson (Developer Advocate) による Android Developers Blog の記事 "Google Play services and Firebase migrating to AndroidX" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。



Google Play 開発者サービスと Firebase SDK を、今年中に Android Support Library から androidx-packaged ライブラリのアーティファクトに移行することになりました。目標としては、2019 年 6 月~7 月を予定しています。この変更により、SDK だけでなく最新の Jetpack コンポーネントもアプリ内で利用しやすくなります。

アプリが com.google.android.gms ライブラリや com.google.firebase ライブラリに依存している場合は、今回の移行に伴いご対応が必要となります。androidx-packaged ライブラリのアーティファクトでビルドしたアプリを簡易的にテストするには、gradle.properties ファイルに次の 2 行を追加します。

android.useAndroidX=true

android.enableJetifier=true

このビルドが問題なく機能すれば、それ以上の対応は必要ありません。新しい Google Play 開発者サービスと Firebase SDK をリリースと同時に利用できます。新しいビルドで問題が発生した場合や、この移行について詳しい情報が必要な場合は、公式の Jetpack 移行ガイドをご覧ください。androidx への移行が完了しましたら、改めてお知らせいたします。

Posted by Yuichi Araki - Developer Relations Team


この記事は Yifeng Lu による Google AI Blog の記事 "An End-to-End AutoML Solution for Tabular Data at KaggleDays" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。



データベースのテーブルや表計算のシートなどの「表形式データ」に対する機械学習(ML)の適用は、特に活発に研究や実用化が進んでいる領域です。小売、サプライ チェーン、金融、製造、マーケティングなど、多くのビジネス分野において、不正検知や在庫予測など、表形式データにまつわる様々な課題が存在します。こうした課題を ML で解決するソリューションの開発には ML の専門家が欠かせません。例えば、手作業による特徴量エンジニアリングハイパーパラメータの調整などにより、最適なモデルを作成する必要があります。しかし、こういったスキルを持つ人材は希少であり、ML による業務の効率的な改善は簡単ではありませんでした。

こうしたビジネスや研究での ML の導入を加速し、スケーラブルなものとするのが、Google の AutoML です。AutoML の初期の取り組みであるニューラル アーキテクチャ検索(NAS)では、NasNet を通して画像認識の分野に革新をもたらしました。さらに、AmoebaNet などの進化した手法や、エッジ向けのモバイル ビジョン アーキテクチャである MNasNet によって、AutoML の特徴である「learning-to-learn」手法のメリットがさらに明らかになっています。

そして先日、Google は表形式データに learning-to-learn のアプローチを適用し、次の 3 つの特徴を備えるスケーラブルなエンドツーエンド AutoML ソリューションを開発しました。
  • 全自動:学習データと計算リソースを投入するだけで、すぐに利用できる TensorFlow モデルを出力します。その途中で人による作業は発生しません
  • 広く適用可能:表形式データを利用するあらゆる課題に適用できます
  • 高品質:AutoML が生成するモデルの性能は、トップクラスの ML エキスパートが手作業で作ったモデルに匹敵します
このソリューションを評価するため、Kaggle のハッカソンイベント KaggleDays SF Hackathon に AutoML でエントリしました。これは KaggleDays イベントの一部で、最大 3 名のチーム 74 組が 8 時間半をかけて競うコンペです。

ここで AutoML が Kaggle の参加者と初めて競い合ったのは、一連の自動車部品についての素材の特性とテスト結果の情報を与えて、製造における欠陥を予測する課題でした。相手には Kaggle progression system の Master レベルの参加者や GrandMaster レベルの参加者もたくさんいました。しかし私たちの AutoML のチームはほぼ 1 日中首位をキープし、順位表にあるように最終的には僅差で 2 位となりました。

私たちのチームの AutoML ソリューションは、複数ステージの TensorFlow パイプラインで構成されています。第 1 ステージは、自動特徴量エンジニアリング、アーキテクチャ検索、検索によるハイパーパラメータ チューニングを担当します。第 1 ステージを経た有望なモデルは第 2 ステージに送られ、交差検証とバギングが適用されたのち、優れたモデルが選択されます。その後、第 2 ステージで得られた特に優れたモデルを組み合わせて、最終的なモデルとします。


「Google AutoML」チームのワークフローは、他の Kaggle 参加者のワークフローとはまったく異なっていました。他の参加者がデータを分析してさまざまな特徴量エンジニアリングを試している間、私たちのチームはジョブをモニタリングしてその終了を待っているだけです。最終的に 2 位となったソリューションのステージが終了するまでには、2500  CPU時間の計算処理を必要としました。

またコンテストの後に公開されたパブリック カーネルを調査したところ、手作業で設計した上位のモデルを AutoML モデルで拡張すれば、ML エキスパートがさらに高性能のシステムを構築できることがわかりました。下の表が示すように、AutoML には ML エキスパートの能力を強化し、さまざまな課題に広く対処できるようにする可能性が秘められています。
AutoML モデルと他の Kaggle 参加者のモデルを組み合わせることでモデルをさらに改善できる可能性を表す順位表。「Erkut & Mark, Google AutoML」には、1 位となった「Erkut & Mark」と 2 位となった「Google AutoML」のモデルが含まれている。Erkut Aykutlug 氏と Mark Peng 氏は、XGBoost と独自の特徴量エンジニアリングを利用。一方の AutoML は、自動の特徴量エンジニアリングとハイパーパラメータチューニングとともに、ニューラル ネットワークと勾配ブースティング ツリーの双方(TFBT)を使った。
Google Cloud AutoML Tables
このコンペで利用したソリューションは、Cloud Next '19 でベータ版が提供開始された Google Cloud AutoML Tables のメイン アルゴリズムに採用されています。次の図に示すように、複数の Kaggle コンテストを対象としたベンチマーク テストでは AutoML Tables がコンスタントに高成績を記録しており、同様のサービスとしては SoTA 性能を達成しています。
複数の Kaggle コンテストを対象としたサードパーティによる AutoML Tables のベンチマーク結果
AutoML の手法は、実際のビジネスにおけるさまざまな問題に対して応用できる可能性があります。既にいくつかのお客様が、企業内のさまざまな表形式データに対して AutoML Tables を適用し、サプライ チェーン管理やマーケティングのリード コンバージョン最適化などの用途に活用しています。表形式データにまつわるさまざまな課題の解決に、最先端の ML 技術を適用可能になったことを嬉しく思います。

謝辞
このプロジェクトは、Google Brain チームのメンバー、Ming Chen、Da Huang、Yifeng Lu、Quoc V. Le、Vishy Tirumalashetty の尽力があってこそ実現できました。また、すばらしいインフラストラクチャとプロダクトのランディングに関して協力してくださった Cloud AutoML Tables チームの Dawei Jia、Chenyu Zhao、Tin-yun Ho にも感謝します。魅力的なコンテストを開催してくださった Walter Reade、Julia Elliott、そして Kaggle の皆さんにも感謝いたします。

Reviewed by Kaz Sato - Staff Developer Advocate, Google Cloud


この記事は Ben Galbraith、Dion Almaer による Chromium Blog の記事 "Google I/O 2019: What's new with Chrome and the Web" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。






今年、ウェブは生誕 30 周年を迎えました。なんとすばらしい 30 年だったことでしょうか。ウェブ プラットフォームは、シンプルなハイパーテキスト ドキュメントを支えるものから、デザインの最先端で臨場感あふれるダイナミックな体験を実現するものへと発展しています。

この先も世界のニーズは進化を続けるでしょう。私たちが世界のウェブ コミュニティに参加し続け、将来のニーズを満たすようにこのプラットフォームを適応させ、改善する動機は、その点にあります。私たちが集中的に取り組んでいるのは、ユーザーの信頼と安全を中心に据えつつ、ウェブを高速かつ強力なものにすることです。

ウェブの即時性というビジョン

ウェブでは、スピードが重要です。ユーザーは読み込み速度に非常に敏感で、これがビジネスに直接的な影響を与えることがわかっています

そこで、ブラウザを高速かつ軽量にしつつ、デベロッパーの経験を活かして多くのことを実現するために、私たちは懸命に努力を続けています。起動時のボトルネックに注目することで、ローエンド端末での Chrome の起動時の読み込み速度を 50% 短縮することができました。すべての端末の平均では、10% の短縮になっています。さらに、スクロールのパフォーマンスが 18% 向上し、V8 によって、実際のアプリで JavaScript のメモリ使用量が最大 20% 減少しています。

ブラウザの効率化に加えて、デベロッパーの重荷を取り除くための機能追加も行っています。その中からいくつかご紹介します。

  • デベロッパーが独自の JavaScript ソリューションを作成しなくても優れたイメージ読み込みを実現できるように、イメージと iframe を直接ブラウザに遅延読み込みする lazy loading を追加します。デベロッパーがシンプルな HTML 属性を追加するだけで、あとは Chrome がすべて行ってくれます。
  • 高速なサイトでユーザーが別のページに移動する場合、Chrome が積極的にページをクリアする機能によって、ユーザー エクスペリエンスが低下する可能性があります。この白い「読み込み中ページ」が一瞬だけ現れるのを防ぐため、Paint Holding という新しい試験運用版機能を導入し、ウェブのナビゲーションを改善します。この機能が Awwwards のウェブサイトで実際に動作している様子をご覧ください。 




ナビゲーションについて言えば、ユーザーがウェブを横断する方法を根本的に変革する新しいテクノロジー、Portals があります。Portals は、iframe と同じように、コンテンツをページ内に直接埋め込むものです。しかし、標準の iframe とは違い、「アクティベート」してトップレベルのページになることができます。これにより、ウェブのあらゆる場所で瞬間的な遷移が可能になります。オリジナル ページの UI のパーツを安全な方法で個別に保持できる高度な体験なので、当初のモデルの理想を維持したまま、シームレスなオーバーレイを提供できます。

I/O では、デベロッパーが Portals や関連 API を使ってプリフェッチ、画面遷移の拡張、サイト間のコンテキスト情報の交換などをサポートする方法をお知らせしました。現在、Canary 版の Chrome でフラグを使うと、Portals API を利用できます。この新しいプリミティブを使ってデベロッパーの皆さんがどんなものを構築するのか、楽しみにしています。


特に期待を寄せているもう 1 つのテクノロジーが、Web Packagingです。これは、ウェブ デベロッパーとウェブサーバーとの間の新しい取り決めです。Web Packaging を使うと、ページ読み込みのモデルが変わり、ブラウザがオリジン サーバーからページをリクエストするモデルから、ピア端末を含めてどこからでも読み込めるモデルになります。



これにより、コンテンツをプリロードしてページを即座に読み込むという柔軟性がブラウザに生まれます。さらに、この処理はプライバシーが保護された状態で行われます。このビジョンの第 1 フェーズである Signed Exchange は、Chrome でデベロッパーが利用できるようになりました。

ここで説明したのは、ウェブの即時性を上げる機能の一部です。しかし、それが成功するかどうかは、デベロッパーがウェブを高速にし、パフォーマンスを維持できるかどうかにかかっています。そこで、その助けとなるさまざまなツールを追加しました。

2017 年に導入した Chrome UX レポートは、実際の指標を提供することにより、ユーザーが体験しているウェブページについて理解を深めてもらうためのものです。現在、このレポートには 600 万近くのオリジンのデータセットが含まれており、Google Search Console の最新のスピード レポートなど、多くのツールで活用されています。このレポートは現在ベータ版で、こちらからプログラムへの登録やフィードバックの送信ができます。

デベロッパーの皆さんにさらに幅広く実際の指標を提供するため、Firebase チームは Performance Monitoring ツールを強化し、ウェブアプリをカバーするようになりました。

また、パフォーマンスというレールから外れないように、多くのトップサイトがビルド環境で「パフォーマンス予算」を実装しています。そこで、Lighthouse にパフォーマンス予算を直接組み込み、本番サイトがパフォーマンス リグレッションの影響を受ける前に通知するようにしています。


ウェブをさらに強力に

私たちが目指しているのは、皆さんがウェブでユーザーに体験してほしいあらゆることを実現できるようにすることです。そこで、皆さんの体験をユーザーの体験に近づけることで機能面のギャップを埋めようと、昨年より懸命に作業を続けてきました。

特に差し迫った重要なニーズに対処するために、コミュニティと密接に連携し、たくさんの機能を非常に速いペースで完成させています。中でもすばらしい機能に、ファイル システム アクセスストレージの無制限割り当てSMS ベース認証などの機能があります。認証プロセスで「ワンタイム パスワード」が重要な部分を占めているマーケットで開発しているデベロッパーには、SMS ベース認証が特に重要になります。

この分野には引き続き力を注ぎたいと考えていますが、あなたのアプリをネイティブのシステム共有機能と連携させることができる Web Share Target API は既にリリースしており、本日の I/O でリリースした Web Perception ツールキットなどの体験を実現する Shape Detection API も開放しています。このツールキットを使うと、モバイルカメラを組み込んだり、ウェブサイトの利用効率をアップしたりできます。

モバイルでのこのような強力な機能の提供に加えて、質の高いウェブ エクスペリエンスを構築するデベロッパーのリーチを広げたいとも考えています。そこで、デベロッパーがウェブ コンテンツを Android アプリに組み込めるようにする Trusted Web Activity をリリースしました。インド最大の手頃な価格のホテル ネットワークである OYO Rooms などの企業は、既に Trusted Web Activity を使って軽量版エクスペリエンスを構築しています。これは、一部のマーケットのパートナーでよく見られるパターンです。


しかし、私たちにとって一番うれしいのは、デスクトップ機能の進展です。Web Assembly などのテクノロジーや個々のメディア、そして生産性を向上する API 群によって、新しいユースケースを数多く実現できています。HuluGoogle の Duo は、現在のウェブで実現できるすばらしい事例を表しています。また、Slack が、オフライン対応したデスクトップ アプリのウェブ版を今年中にリリースするために力を尽くしていることをうれしく思います。

昨年、フルウィンドウのサポートや一般的なデスクトップ アプリ機能を必要とするウェブアプリを実現するため、デスクトップ PWA が ChromeOS に対応しました。そして、このサポートは Windows、Mac、Linux に広がっています。

デスクトップ PWA には目覚ましい勢いがあり、ユーザーが高品質な PWA を見つけて簡単にインストールできるように、私たちの役割を果たしてゆきたいと考えています。そこで、Chrome の UI のアドレスバー内に直接 [インストール] ボタンを作って見つけやすさを向上させました。これは、デベロッパーが忠実なユーザーに対するエンゲージメントを向上させ、すばらしい体験を構築できるようにするための 1 歩です。この点については、さらに改善してゆきます。


端末のフラグメント化が激しい中、ローエンドのフィーチャー フォンから大画面デスクトップまで、すべての端末で動作する体験を作ることができるか、確認する必要がありました。そこで、楽しいゲーム Proxx を制作しました。これは、UI に preact を使い、ワーカーを使ってメインスレッド以外で多くの処理を行えるように Comlink を利用しています。そして、すべての端末で動作します。制約の多い端末でも問題はありません。ウェブ上にあるので直接プレイすることもできますが、おそらく記事を読み終わってからの方がよいでしょう :)




来年中に、ウェブで次世代のゲーム、生産性、メディア、ソーシャル アプリを実現するさらなる可能性を実現したいと考えています。もちろん、ユーザーの安全性や信頼性といった中核原則はすべて維持します。

透明性と選択肢とコントロールをユーザーの手に

ユーザー エクスペリエンスは私たちにとって非常に重要で、その中心にあるのはユーザーの安全性とプライバシーです。I/O では、Chrome が Cookie を扱う方法に関する重要な変更予定についてお知らせしました。これは、トラッキングに対する選択権を提供して、ウェブ全般のセキュリティとプライバシーを向上させるものです。今年中には、ユーザーにウェブのトラッキングに関する透明性と制御を提供できる新機能のプレビュー版を Chrome に導入する予定です。

私たちは、以上の変更によって、ウェブにおけるユーザーのプライバシーとセキュリティが向上すると信じています。しかし、それには時間がかかるということもわかっています。そのため私たちはウェブのエコシステムと連携し、Chrome がどのようにポジティブなユースケースをサポートし続けることができるかを理解し、よりよいウェブを構築してまいります。

デベロッパー エクスペリエンスの改善

ウェブ プラットフォームのスコープは広がり、高速で安全で高機能を求めるユーザーからの声は高まっています。その中で、高品質なサイトを作るのは、難しくなるのではなく簡単になるべきです。

そこで、web.dev を構築し、Lighthouse という測定ツールとガイドを 1 か所にまとめました。このサイトを改善し、現在、パフォーマンス、安全性、アクセシビリティ、レジリエンスなどを実現する 200 以上のわかりやすいガイドを参照できるようになっています。I/O では、React を始めとして、皆さんが使うツールのガイドを作成する予定もお知らせしました。


現在は、デベロッパー レポートや利用しているフレームワークについての改善のヒントを提供できるように、Lighthouse に同レベルのカスタマイズを追加する作業を行っています。Wordpress 用のガイドは既に組み込まれています。2019 年およびそれ以降で、さらに追加する予定です。

この 30 年間で、ウェブは長い道のりを歩んできました。デベロッパー コミュニティの皆さんや他のブラウザと協力して、多くの人がどこからでも情報やサービスにアクセスできるようにするという共通のミッションに向かえることは私たちのよろこびです。



Google I/O Extended: Recap Live Japan 2019 より、日本語で行われたセッション


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は Jeff Sharkey (Software Engineer) Seb Grubb (Product Manager) による Android Developers Blog の記事 "Android Q Scoped Storage: Best Practices and Updates" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


アプリ間を相互に隔離するアプリケーション サンドボックスは、Android の設計の根幹をなす仕組みの 1 つです。Android Q では、アプリケーション サンドボックスと同じ基本原理に則り、新たに対象範囲別ストレージを導入しました。

ベータ版 1 のリリー以降、Android の改良につながる貴重なフィードバックを数多くお寄せいただきました。対象範囲別ストレージは、皆様からのご意見をもとに考案され、Android Q ベータ版で採用することになった新機能です。この投稿では、アプリで対象範囲別ストレージのサポートを宣言する方法について説明し、皆様から寄せられた疑問を解消するためのおすすめの方法を紹介します。

対象範囲別ストレージの導入に関する最新情報

まず、対象範囲別ストレージの導入が既存のアプリに及ぼす影響ですが、現行のおすすめの方法に沿ってストレージにアクセスしているアプリについては、影響を最小限に抑えられると想定しています。

しかしながら、一部のアプリでは複雑な変更が必要になるとの指摘も寄せられており、その場合の影響についてはもう少し時間をかけて評価する必要があると思われます。Google としては、こうした変更にアプリを対応させるには時間がかかることも承知しており、できる限りのサポートを提供できたらと考えております。

ベータ版 3 の次期リリースでは、Android 9 Pie(API レベル 28)以前をターゲットにするアプリの場合、デフォルトではストレージの動作は以前の Android バージョンと変わりません。対象範囲別ストレージを使用できるように既存のアプリを更新すると、API レベル 28 以前をターゲットにしているアプリでも、新しいマニフェスト属性を使用して、Android Q デバイス上で新しい動作を有効にできます。

来年度のメジャー プラットフォーム リリースでは、ターゲット SDK レベルに関係なく、すべてのアプリで対象範囲別ストレージのサポートが必須となりますので、早めにご対応いただくことをおすすめします。対象範囲別ストレージに関するフィードバックや、アプリでの使用例に応じた改善提案などございましたら、引き続きお知らせください。フィードバックはこちらのアンケートから、バグや機能要望はこちらのフォームからお送りいただけます。

一般的なフィードバックとおすすめの方法

皆様からのフィードバックは大変貴重であり、Android の設計に関わる意思決定にも役立てております。ここでは、皆様から多く寄せられた疑問を解消するためのおすすめの方法を紹介します。

  • 共有するメディア ファイルの格納。アプリで取り扱うファイル(写真など)を他のアプリと共有することが想定されており、アプリのアンインストール後も保持する必要がある場合は、MediaStore API を使用してください。一般的なメディア ファイル用のコレクションとして、AudioVideoImages が用意されています。それ以外のファイルタイプについては、新しい Downloads コレクションに格納できます。アプリから Downloads コレクションのファイルにアクセスするには、システム ファイル選択ツールを使用する必要があります。
  • アプリ内部ファイルの格納。アプリで取り扱うファイルを他のアプリと共有することが想定されていない場合は、そのパッケージ専用のディレクトリに格納します。これによりファイルを整理しやすくなり、アプリをアンインストールした場合でも OS でクリーンアップを管理できます。Context.getExternalFilesDir() の呼び出しも引き続き使用できます。
  • 権限とファイルの所有権の処理。アプリで MediaStore を使用する場合、アプリ自体のファイルにアクセスするだけであれば権限は必要ありません。一方、他のアプリによって提供されたメディアにアクセスする場合は、権限をリクエストする必要があります。なお、アプリをアンインストールして再インストールした場合、そのアプリが以前提供したメディアにアクセスするには、ユーザーに権限をリクエストする必要があります。
  • ネイティブ コードとライブラリの処理。パターンとしては、まず Java ベースまたは Kotlin ベースのコードでメディア ファイルを探し、そのファイルに関連付けられたファイル記述子をネイティブ コードに渡す方法を推奨します。
  • 大量のファイルの効率的な処理。1 回のトランザクションでファイルを一括処理する必要がある場合は、ContentProvider.applyBatch() の使用を検討してください。ContentProvider バッチ処理について詳しくは、こちらをご覧ください。
  • システム ファイル選択ツールとの統合。
    • ワープロなどの文書アプリでは、ACTION_OPEN_DOCUMENT アクションや ACTION_GET_CONTENT アクションでシステム ファイル選択ツールを開くことができます。これらの違いについて詳しくは、こちらをご覧ください。
    • ファイル管理アプリでは、アプリのコレクションをディレクトリ階層で管理するのが一般的です。ユーザーがディレクトリのサブツリーを選択できるようにするには、ACTION_OPEN_DOCUMENT_TREE を使用します。返されたディレクトリ内のファイルを、アプリでさらに操作できます。この方法なら、ユーザーはインストール済みのどの DocumentsProvider インスタンスからでもファイルにアクセスでき、クラウドベースのストレージ ソリューションにも、ローカル バックアップ付きのストレージ ソリューションにも対応できます。

対象範囲別ストレージについては、こちらのデベロッパー ガイドでも詳しく解説しています。

今後について

Android Q ベータ版をこれほど多くの皆様にお試しいただき、チーム一同心より感謝申し上げます。あと数か月後の最終版リリースまで、引き続きテストへのご協力とフィードバックをよろしくお願いいたします。

Android Q の新機能については、Google I/O 2019 のセッション動画で詳しく解説しています。対象範囲別ストレージについては、5 月 8 日の「What’s new on Shared Storage(共有ストレージの新機能)」をご覧ください。Google I/O サイトには、他にもさまざまなセッション動画が公開されています。ぜひチェックしてください。

Posted by Yuichi Araki - Developer Relations Team


INEVITABLE ja night 開催レポート-エクスペリエンスドリブンに向けた不可避な流れ」の後編です。前編と合わせてご覧ください。





テクノロジーの進歩で体験の質は向上するのか?

小島: テクノロジーの話題に戻しましょう。テクノロジーが進歩したら、体験の質も向上するのでしょうか?

深津: 個人の考えとしては、テクノロジーが体験をよくするのではなくて、テクノロジーが飽和して、停滞して、もう違いが出ないという期間があり、しばしマンネリ化の期間を経て、初めて体験の質の向上が意識されるのかなと思ってます。

小島: スペックではもう勝負がつかなくなったときということでしょうか。

深津: そうです。あらゆるものの黎明期から成長期、たとえば「ウチの製品は解像度が 3 倍高い」とか、「ウチの方が写真が 100 倍多く撮れます」とか、そういったスペック競争が行われているときに、佇まいがどうこうと言い出すのは賢明ではありません。

小島: クラウド以降、テクノロジーの飽和のスピードは速くなっていますよね。

深津: そうですね。新しいテクノロジーが出ても、その先行優位性はせいぜい 1 - 2 年です。停滞の時間の方が長いですよね。したがって、差別化するためにエクスペリエンスが重視されているのだと思います。
例えば、すごく手触りの良い、最高な乗り心地を提供する従来型の車と、すごく雑だけど安全に自動運転ができる車が出てきたとします。

小島: 今だったら、手触りの良さよりも安全な自動運転車を選びますよね。

深津: その時点で、手触りの良し悪しに関係なく、そもそもそれが存在するかどうかで勝負が決まってしまうわけです。
テクノロジーの黎明期は体験よりもテクノロジーへの投資が活発に行われますが、だんだんマンネリ化するにつれて体験側へシフトしてきます。たとえば、車と馬について考えてみましょう。最高な名馬と石炭で動くポンコツ自動車を比べるとします。もし車が世の中で初めてのもので、輸送や移動の手段が求められていたとすると、きっと車が勝ちますね。輸送手段としては馬は勝てませんからね。そこで、負けてる側は勝負のレイヤーをずらすために体験を使うわけです。

小島: 効率とか利益ではなく、馬に乗るのは優雅な趣味であるとかですか。

深津: 乗馬とかスポーツといった、実用性を諦めて体験に全振りすることで生き残るというのが、非テクノロジーの生存方法です。




20190301 inevitable experience_driven_v3 を元に作成



深津: UX ピラミッドと呼ばれるものに近いのですが、自分が仕事するときに、このクライアントと仕事をする意味あるかなとか、サービスがどの段階にいるかなと考えるときによくこの図に立ち戻ります。
誰が悪いとかではなく、マーケット事情とかさまざまな要因で、日本の銀行システムや交通システムは、多くの人が「安全・安心に使える」というレイヤーで勝負をしています。結果的には、そこから先に投資する必要性が生まれなくなるわけです。

小島: 例えば、今では電車には Suica を使って乗車しますが、切符を買うということを考えたら駅にある切符販売機が絶対に強くて、成長する必要がないですよね。

深津: 市場を独占されてしまった産業は、UX を良くする必要はないよねみたいな感じで、安心・安全と言っていれば良いわけです。
一方、Nike、Apple、Disney という会社は、最上位層の「人生の意義・意味」に達していると思います。Nike は何の靴を売っているかというよりは、スポーツすることのアイデンティティー、自分がこの靴を履いて試合に出ることが自分の生き様と重なる、こういうことを主張しています。

小島: 勝負靴というのもありますからね。

深津: ここで、Google という会社はちょっと特殊です。普通のプロダクトは「存在する」というレイヤーから上がってくるのですが、Google は、テクノロジーの裏付けが物凄くあるので、いきなり真ん中あたりの安心に使えて生産性もアップしている、そんなレイヤー(「生産性・快適性」)から始まるわけです。すでに、その上のレイヤーも狙っていますよね。特に最近はこの上のレイヤーを狙う方向にシフトしてきている感じがしますね。

小島: 他の業種ではいかがでしょうか?

深津: 不動産関連も良い例ですね。タワーマンションについて考えてみましょう。

  • 安全・安心に使える:安心のオートセキュリティー、ガードマン常駐、耐震性に優れている
  • わかりやすい使いやすい:間取り、システムキッチンがある
  • 生産性、快適性:マンション内にジムがある、駅から徒歩 5 分
  • 嬉しい・楽しい・美しい:高級家具を完備、有名デザイナーが手がけましたなど

ここまでの段階で勝負がつかなくなると、夢羽ばたく魅惑のグリーンなんとかハイツみたいになっていくわけです。

小島: つまり、単なる宣伝文句ではなくて、こういう地域ではマンションが飽和状態にあるということですね。これがマンションではなくて、他の商材であっても、関係者が経験を語りだしたらそのマーケットは飽和していると理解して良いですか?

深津: そうですね。全員がそう言っていたら、高度に飽和した状態と言って良いと思います。

小島: もう機能では勝てないわけですね。全く違う軸を立てるか、エクスペリエンスで勝負するか、そのどちらかしかないのですね。

深津: 全員が機能の話をしていたら、それは黎明期から普及期にいて、開発コストや技術で競争しているわけです。したがって、この段階であれば、技術への投資でまだまだ勝てるわけです。



テクノロジーのライフサイクルから見たデザイナーとデベロッパーとの関係

小島: 黎明期、成長期、飽和期というお話がありましたが、デザイナーが力を発揮する時期と、デベロッパーやエンジニアが力を発揮する時期は、テクノロジーライフサイクルの中で異なるのでしょうか。

深津: 一番最初の段階では、でき上がったばかりのテクノロジーしか存在してなくて、誰も使い道をわかっていません。おそらく誰も想像もできないし、価値、魅力も十分に見出せていません。そこで、このスタート地点で、デザイナーあるいはサービス設計者が「このテクノロジーはこういうものであり、あなたの人生にこう寄与するんだ」と設計して、世に知らしめるわけです。ここはデザイナーが重要な役割を持ちます。



20190301 inevitable experience_driven_v3 を元に作成



小島: デザイナーがしっかりと力を出すことが重要ということですね。例えば、ブロックチェーンがそうですよね。

深津: ブロックチェーンは、実は黎明期よりもっと前の段階です。技術はだいぶ理解が深まっているので、近い将来、誰かがブロックチェーンでこの世の中がどう良くなるかを説明しなくてはならなくなります。しかし、現状は、その説明するプレイヤーがいないのが課題です。

小島: ディープラ-ニングはいかがでしょうか?

深津: ここは成長期です。技術開発の競争が続いている間は、デザイナーは整理整頓するか、せいぜい、デベロッパーやエンジニアの皆さんに頑張ってくださいと応援するくらいしかできません。

小島: そして、飽和期になるわけですね。クラウドは今はこの辺ですかね。

深津: そうですね、やがてそこからサイクルが生まれてきます。なお、始まりがデベロッパーからとは限りません。その手前であれば、SF 小説家かもしれません。ただし、デザインする人と、エンジニアが出てきたときには、交互に役割がまわってきます。

小島: テクノロジーのサイクルが早くなると、この関わり方も変わってきますよね。

深津: 自動車やそれ以前の活版印刷といった時代ですと、テクノロジーが普及するまで 100 年はかかりました。100 年もかかる状況であれば、デザイナーとエンジニアは別々な人が担うのが普通です。しかし、そのテクノロジーが 2 年で飽和するとしましょう。デザイナーをリストラしてエンジニアを雇おうとか、エンジニアをリストラしてデザイナーを雇おうとか、あるいは外注しようか、そうこう考えているうちに、サイクルが再び戻ってきてしまうこともありうるわけです。サイクルが早くなるほど、両方できる人、もしくは両方にブリッジできる人が重要になってきます。

小島: 人の入れ替えはなかなか難しいですし、そういった人を会社の中で育てるのもまた容易ではないですよね。

深津: もし人材がいないなら、当面はアウトソーシングに頼りつつも、5 年後、10 年後を目標にそういう人材を企業の中に作っていけば良いのではないでしょうか。

小島: 最初の方で内製の方がいいよとおっしゃっていましたよね。このサイクルに耐えられる組織を持っていた方が強いと言えますか?

深津: そうですね。また、外注することは、たまたま必要な職能に対しては良いと思います。
たとえば、商品をたった 1 つしか作らないのであれば、ビジョンを立てる人は最初だけいてくれれば良いわけです。



体験に効く今後注目すべきテクノロジー

小島: 体験に効くテクノロジーについて、事前に深津さんに質問をしたところ、

  • データ分析・データ解釈
  • SaaS の普及
  • サブスクリプションの普及

を挙げられました。私は、VR/AR、5G といった臨場感を生み出すもの、VUI、エージェント(AI)を考えていたのですが、まったく違いますよね。

深津: 先ほどの料理の話に戻すと、小島さんの考えは新しい調味料を増やす方向ですよね。しかし、私は、料理をする機会や食事をする機会を増やす、あるいはキッチンを広くする、そういった方向を注目しています。

小島: では、データ分析とはどういうことなのでしょうか?

深津: ある商品やサービスをお客様が満足している理由を、気持ちいいから、かっこいいから、楽しいからと説明したとしても、経営層やビジネス層にはさっぱり通じなかったりすることがありますよね。しかし、データ分析やデータ解釈の意義が広く伝わり、統計データが重要になってくると、こうすればこのサービスは長続きするよねとか、この人をこのタイミングで喜ばせればこのプロダクトの売れ行きは伸びるよねといったように、ビジネスをエンジニアリングの言葉で話せるようになるんです。

小島: データで語るということですね。続いて、SaaS は?

深津: テクノロジーが飽和する結果、UX の重要性が上がってくることは先程述べた通りです。しかし、バックエンドのシステムはほとんど同じでしょう。プッシュ通知のシステムも、決済システムも同じなのです。

小島: つまり、同じなのだから、それでは差がつかないということですね。

深津: 差別化できることはやらねばとならないというように開発バイアスが上がるので、プラットフォームが均一化すればするほど、UX が重要になってきます。昔はレスポンスが良ければ、それで勝てていたのに、すぐに同程度の性能のものが登場します。しかも安価になっており、そこで戦うのは得策ではありません。その結果、エクスペリエンスで勝負をかけることになるわけです。

小島: 最後はサブスクリプションです。サブスクリプションが普及すれば、エクスペリエンスのニーズが高まるということですね。

深津: これも持論なのですが、売り切り型でリピーター不要の商品ほど、マーケティング費に予算をかけますよね。早期に商品を魅力的に見せて、売り切ってしまう。全額回収したら、あとは知らんみたいな。
そうすると、派手なコピー、派手な演出、派手な CM にどんどんリソースが注ぎ込まれるわけです。しかし、サブスクリプションでは、お客様との関係性が長期にわたりますから、サービスを大事に使ってもらおうという考え方に変わります。

小島: パッケージソフトの会社が、自社商品をクラウド化して、月額課金でビジネスをするという話をよく聞きます。でも、それまでは、商品を売ったら即コスト分を回収だったことが、2 年 3 年の間地道に継続しないといけないことになるわけです。もちろん、途中で利用をやめる人もいるので、やめさせない努力、施策が必要になってきます。

深津: 「〇〇 2018の新機能はこれです!」という以前はよく聞いていたことが「〇〇 2017 より 〇〇 2018 はより早く、落ちなくなりました」というところにエネルギーが注がれ、実際にそのサービスを使って目標を達成できるように指導することにリソースが割かれるようになったのです。

小島: かつて、パッケージソフトにおけるアップデートというのはイコール新機能のことを指していた頃がありました。しかし、最近のモバイルアプリのアップデートは「このバグは修正されました」というのが多くて、どちらかといえばアプリの使い勝手を向上することが中心です。

深津: そうなんです。エクスペリエンスというのは、少し先のこと、少し新しいことからもたらされるわけではないのです。もうすでに実施されていることなのです。テクノロジーが普及すればするほど、UX の重要性がますます高まります。今、この瞬間にもエクスペリエンスについて考えることが大切だと考えています。

小島: なるほど、エクスペリエンスはまさに今の話であるわけですね。本日はエクスペリエンスに関わるいろいろなお話を伺うことができました。どうもありがとうございます。






INEVITABLE TV - 「CXO 視点で見る、エクスペリエンスとテクノロジーの関係」

深津さんをゲストにお迎えし、イベントでは取り上げることができなかったこと、語り尽くせなかったことを中心に、お話いただきました。






Posted by Takuo Suzuki - Developer Relations Team

Googleでは、機械学習 に特化したイベント 「Google Developers ML Summit」を 7 月 11 日 (木) 11:00 AM より開催します。



本イベントでは、Google のシニアフェローの Jeff Dean をはじめとした、TensorFlow チームが来日し、TensorFlow、Cloud ML、 ML Kit、 など、Google が開発者のみなさんに提供する機械学習ツールについてのセッションを行います。





イベント概要
名 称:Google Developers ML Summit
日 時: 2019 年 7 月 11 日 ( 木 ) 11 : 00 - 18 : 00
会 場:六本木アカデミーヒルズ
〒106-6149 東京都港区六本木6丁目10番1号 六本木ヒルズ森タワー49F 
協力 :TensorFlow User Group, GCPUG



アジェンダ
  • 10:30 AM 受付開始
  • 11:00 AM - 12:00 PM キーノート
  • 12:00 PM - 12:45 PM ランチ休憩 ランチは会場でご用意いたします。
  • 12:45 PM - 6:00 PM ブレイクアウトセッション
  •  GCP ML / ML Kit を中心とした Cloud トラックと、TensorFlow トラックに分かれてセッションを行います。(各部屋の行き来は自由に行えます)

*アジェンダは変更になる可能性があります。


申込方法
本イベントへの申し込み、詳細につきましてはこちらのサイトをご覧ください。
※ 参加可能な方には後日参加証を送付いたします。
みなさまの参加をお待ちしております。

Posted by Takuo Suzuki - Developer Relations Team

2019 年 3 月 1 日に開催した第 8 回目のイベントは、「エクスペリエンスドリブンに向けた不可避な流れ」をテーマに、ユーザーエクスペリエンスの分野で多くの実績を持つ THE GUILD の深津さんをお迎えし、あらゆるシーンでエクスペリエンスが重要視されている背景と、それを実現するテクノロジーについて、リアルなユースケースをもとに不可避な流れについて語っていただきました。


THE GUILD という会社



小島: 会社名の「GUILD」は、傭兵的なという意味だそうですが、深津さんはこれまでどのようなお仕事に関わってこられたのでしょうか。

深津: こんばんは、深津です。Flash 系のデザイン、インタラクション、デベロップメントを経験した後、iPhone アプリ開発に徐々に仕事の軸を移して、iPhone 5S 向けアプリの設計から、本格的に関わるようになりました。実は、GUILD の会社のメンバーは全員フリーランスで、いわゆる社員ではありません。実際の仕事もプロジェクトごとに進行しています。

小島: 日経新聞社のアプリ開発に関わられていますよね。

深津: 5 年ほど前から、日経新聞社の電子版チームと仕事をしています。アドバイザリーという立場で、グロースだったり、IT だったり、デザインだったり、さまざまな側面で最新のノウハウをお伝えするのが私の役割です。

小島: 突然ですが、依頼主がアプリを内製しているか否かで、指導方法やアドバイスの内容は変わってきますか?

深津: そうですね、やはり変わります。個人的には、お客様にアプリの内製化をお勧めしています。特にサービス事業を行っている会社には内製化は必要と説いています。

小島: それは、事業と IT が不可分な関係にあるからですか?

深津: そうです。中核の事業に関係するものは内製化すべきです。しかし、その事業を補う部分については内製化にこだわらず、随時外注するやり方が良いと思います。

小島: エクペリエンスを上げていく上でも、内製するかどうかはフィードバックやスピードにも関わってきますね。この点については後ほど議論しましょう。



CXO という仕事

深津: メインの仕事として、株式会社ピースオブケイクの CXO として note というサービスを設計をしています。

小島: 深津さんが書かれた「CXO ってどんな仕事なの?」という記事、今日のテーマでもある「ユーザーエクペリエンス(UX)」、「CXOって?」について触れられていらっしゃいますよね。

深津: CXO = Chief Experience Officer 、日本語で言うと最高体験責任者でしょうかね。この記事はあくまでも私個人の考えなので、一般的な CXO とは異なるかもしれません。そもそも、プロダクトを最初から最後まで全部いい感じにすることが大きなテーマになります。したがって、我々のチームではそもそも note って何か、note が存在することで、世の中がどう変わるのかというところまでをチーム全体で一緒に考えています。たとえば、note で仲間を増やすことはできるのか、ユーザーは note を使うことで最終的にどこに向かうのかといったことです。こうしたことを考えながら、実際できあがったサービスをレビューしていくわけです。

小島: 使っている人の、「これすごいよ」とか「イケてるよね」とか「使いやすいよね」とかを見ているんですね。

深津: 数字で測れないところもあわせて見ています。

小島: 体験を作るには、デザインの要素が大事ですよね。たとえば、絵コンテがあって、この UX にしたいということもありますね。

深津: 「弊社のサービスの UX をかっこよくしてください。」という依頼をいただくのですが、詳しくヒアリングをすると、アニメーションをかっこよくして欲しいという内容だったことも多々あります。でも、そうじゃないんですよね。

小島: そうではないというのは?

深津: アニメを作るというのはあくまでも部分の話であって、体験っていうのはもっと広いわけです。ユーザー体験とは、そのプロダクトに初めて出会って、脳内に記憶が始まった瞬間、レコードアプリでレコードボタンを押した瞬間から、そのアプリの噂、どんな感じ、どんな第一印象、欲しくなったんだっけ、実際に使ってどうだったんだっけ、カスタマーサポートは、、、そういうものを全部含めたものです。

小島: 見た目だけでは無いということですね。

深津: 見た目の部分は、それを使う瞬間、もしくは使うちょっと手前の「欲しいかな?」のあたりの話です。結局、脳内から関係性が消えて、そのプロダクトとの縁が完全に消えるまでは、体験の守備範囲なわけです。

小島: 泥臭いイメージがありますね。

深津: 泥臭いというか、横断的ですね。いろいろな立場、役割を持つ方々とつながっていきます。新しい職種、あるいは日本ではまだまだマイナーな職種ですね。

小島: そうなると、このイベントの参加者の中で、CXO になりたいと思ってくれる方が入れば、このイベントは成功ですね。



なぜ、今「体験」なのか?

小島: 体験が、なぜ今大事なのかという話題に進みましょう。

「経験則から言えば、お客はいい体験をすると、その話を 3 人に話す。しかし、悪い体験をすると 10 人に話す。」(レジス・マッケンナ) 

こういう示唆があります。note の開発でもこうしたことは気にされているのでしょうか?

深津: いい体験をどれだけ増やしていくかとともに、悪い体験には出会わないようにすることを心がけています。

小島: なるほど。この示唆がもし正しいとすると、3 人いい体験した人がいたとしても、1 人悪い体験した人がいたら、悪い体験の方が勝ってしまうっていうことですね。

そして、体験の質も大事ですよね。コーンエクスペリエンスという図(Edgar Dale’s “Cone of Experience”, Audiovisual methods in teaching. 3rd ed. )があります。人は実際に行動を起こしたものの方が強く記憶に残っていて、ちょっと見た程度ではすぐ忘れてしまう、というものです。つまり、エクスペリエンスを高めるためには、全員に何かしらの行動させなきゃいけないということになりますが、そういう理解でよいですか?




深津: 個人的には、コーンエクスペリエンスは誤解を生じやすい考え方と思っています。ここでは、読む体験よりも、実際に自分で触ってみたり運動したり活動する体験の方が、強い体験、濃い体験であるとしています。しかし、だからと言って、それが必ずしも良い体験というわけではありません。

小島: 体験の良さではない?

深津: お味噌汁の話に例えると、単に読むことと実際に行動におこしたことで体験の濃さが違うというのは、味噌汁が薄い味か濃い味かという話にすぎないのです。美味しいかどうかという話とは別の次元です。

小島: なるほど。いつも食べたい味なのか、特別な時に食べたい味なのかというと、また全然違いますね。

深津: 飲食店の場合は、そこは商売ですからガツンとくる味が求められます。しかし、人は毎日そういうものを食べたいと思っているかというと、ちょっと違いますよね。塩分が強すぎて体が壊れちゃいますからね。あと、夫婦生活でもそうですよね。

小島: 結婚ということですか?

深津: 結婚式は劇的な方が良いですけど、日々の夫婦生活で結婚式のテンションを維持し続けることはなかなか難しいですよね。

小島: 3 日も持たない気がします(笑)。

深津: 体験というのは、強ければ良いというものではないのです。適切なタイミングで適切な強さを与えた方が良いわけです。最初に印象の強いものを出して、次は定番のものを出し、珍しい味が来て、強い味のメインディッシュが来て、最後は甘いデザートといったように。この流れが良い感じに切れずに繋がっていくのが本来だと思います。



付加価値と差別化を理解可能にすること

小島: UX は大事になっていきますよね?

深津: これからは、全体的に UX が大事になっていきます。では、なぜ大事かというと、結局テクノロジーというのは飽和しつつあって、テクノロジーとかスペックとか価格とかで勝負がつかなくなってくると、その上のレイヤーでの差別化が重要になるからです。

小島: スピードが速い、解像度が高いといった観点で勝負できたことが、今はみんな一緒ということですね。

深津: たとえば、解像度が 1 億ピクセルのカメラと 1 億 1 ピクセルのカメラがあるとしましょう。このレベルになると、解像度では勝負にならず、撮っていて楽しいとか、使い甲斐があるとか、そういうところが重要になってきます。

小島: 機能差で勝負ができたことが、やがてそれだけでは勝負がつかなくなるということですね。

深津: 自動車、コンビニエンスストアなどの業界では、プレイヤーが提供するもののスペックや価格がほぼ同じレベルです。その結果、抽象的な場所での戦いになってきます。

小島: 加えて、テクノロジーは後発がキャッチアップしやすいので、先行していたとしてもどこかで付加価値とか差別化の視点を変えることが必要で、それがエクスペリエンスだということでしょうか。

深津: そうですね。一方、スケールメリットを生かして、先行者が逃げ切れる業界もあります。そういう業界では、だいたい勝者は一人で、市場が独占されて他のプレイヤーが排除されてしまうため、UX は良くなりません。なぜならば、もう市場を独占しているのであえて新たに投資する必要がないからです。

深津: テック企業と非テック企業でも格差がついています。

小島: 例えば、アマゾンと他の e コマースって同じように見えますが、テック企業かどうかという違いがありますよね。

深津: スケールで何百万倍も違いますし、予算規模、配達個数も桁違いですから、最初からスペックでは勝負できないわけです。したがって、必然的にスペック以外のところに勝負の場所をずらすことになります。たとえば、「100 個しか生産できないすごい植物」とか「あなたのために心を込めてやりました」といった、違うレイヤーにずれていくわけです。

小島: 今治タオルで有名な愛知県今治にイケウチオーガニックという会社があります。ファンを大切にしていて、タオルを作る人とファンが交流できる場があります。ファンの方はそこで感動して、他の人にも今治タオルをお勧めするわけです。タオルの値段や個数だけではトップにはなれないのですが、違うところで勝負されているんですね。


後編に続く。



Posted by Takuo Suzuki - Developer Relations Team



Google Play Indie Games Festival は、昨年に引き続き 2 回目の開催となりました。昨年どのようなゲームが トップ 20 に選出されたのか、改めてその作品と、ファイナルイベントで トップ 10 に選出されたデベロッパーの皆さまがゲームを紹介する模様を、資料と動画で振り返ります。

どの作品も力作ぞろい。今年のトップ 20 作品と合わせて、ぜひプレイしてみてはいかがでしょうか。

Google Play Indie Games Festival 2018 トップ 20 選出作品:

※ゲーム作品名・開発者名は発表時のものです

旅かえる / 株式会社ヒットポイント
ぼくとネコ / IGNITION M
Craft Warriors / 株式会社トランスリミット
Enblox-置いて囲んで陣取りパズル / 株式会社CFlat
StrangeTelephone / HZ3 Software
in:dark - インダーク / ozumikan
Million Onion Hotel / Onion Games
Peko Peko Sushi / Hanaji Games 合同会社
クリスタル・クラッシュ【超攻撃的パズル合戦!】 / 株式会社コールド・フュージョン
ネコの絵描きさん / Nukenin
BQM ブロッククエスト・メーカー / Wonderland Kazakiri inc.
ねぇAI、本当の事がしりたい / コトリヤマ株式会社
怪異掲示板と7つのウワサ / 株式会社エンタブリッジ
思い出の食堂物語 ~心にしみる昭和シリーズ~ / 株式会社GAGEX
リバーシクエスト2 / Yokogosystems
Ninja Flicker / デジタル創作同好会traP
PARADE! / 個人
キメラリコレクト / 個人
ねこかわいいぼくゆうれい / 株式会社ハラペコーポレーション
From_. / Serina Nakajima

Google Play Indie Games Festival 2018 トップ 10 選出ゲーム紹介:



今年のトップ 20 選出作品へのオンライン投票は、6月 24 日 17 時まで:



6 月 29 日開催のファイナルイベントで授与される「オンライン投票最優秀賞」を決めるオンライン投票を来週  6 月 24 日 17 時まで受け付けています。オンライン投票で選出された 1 タイトルは「オンライン投票最優秀賞」としてファイナルイベントにて賞が授与されます。あなたの1票が最優秀賞作品を決めるかもしれません。投票をお待ちしています。


Posted by Tomoko Tanaka - Developer Product Marketing Manager, Google Play

この記事は Daniel Schramm による Android Developers Blog の記事 "Optimize your subscriptions with new insights in the Play Console" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


7 年ほど前に Google Play が始まって以来、定期購入は維持可能なモバイルアプリ ビジネスを作る上で欠かせない要素であり続けています。アメリカの Google Play 収益トップ 100 アプリのうち、89 のプロダクトが定期購入を提供しています。マーケットが成熟する中で、成長を維持するためにますます重要になっているのは、デベロッパーが定期購入者のコンバージョン率と維持率の両方を最適化することです。それをサポートするために、Play Console から直接利用できる新しい分析機能を紹介します。


定期購入維持率レポート

Play Console での定期購入維持率レポート データの例。出典: Google 内部データ。

最近アップデートされた定期購入維持率レポートでは、定期購入者をどのくらい維持できているかだけでなく、無料試用サービスやお試し価格からのコンバージョンや、1 回目から 2 回目の支払いへのコンバージョンも確認できます。

SKU、国、定期購入の開始日によって 2 つのコホートを設定できます。これは、A/B テストの成功度合いを評価する際に特に便利です。たとえば、無料試用サービス期間を変えた場合、それがどのようにコンバージョン率に影響するかを判断することができます。



Play Console での無料試用サービス コンバージョン データの例。出典: Google 内部データ。

キャンセル時アンケートの結果
既存の定期購入者の維持も、新しい定期購入者の獲得と同じくらい重要です。そこで、期購入キャンセル レポートをアップデートし、自発的なキャンセルと自発的でないキャンセルについて、細かい分析を提供するようにしました。


昨年のteセンターのリリースの際、キャンセル時アンケートが導入され、ユーザーがデベロッパーにキャンセルの理由をフィードバックできるようになりました。その結果は、Google Play Developer API から利用できます。これを簡単に確認して監視できるように、日次の集計結果を Play Console 内に直接表示するようにしました。さらに、書き込まれた内容を CSV でダウンロードすることもできます。


Play Console でのキャンセル時アンケート結果の例。出典: Google 内部データ。

ユーザーの復帰を後押し
ユーザーの支払いが失敗すると、自発的でないキャンセルが発生します。これは、キャンセル全体の 3 分の 1 を占めています。キャンセル レポートに新しく追加されたリカバリ パフォーマンス カードを見ると、猶予期間中のユーザーやアカウントがホールドされているユーザーをどのくらい効率的に復帰できているかを把握できます。また、定期購入に復帰するまでの日数もわかるので、復帰を後押しするメッセージの効率を評価する際に役立ちます。


Play Console でのアカウントのホールドからのリカバリ パフォーマンス カードの例。出典: Google 内部データ。

アプリには、猶予期間とアカウントのホールドを設定しておきましょう。猶予期間とアカウントのホールドの両方を使っているデベロッパーは、定期購入ができない状態からの復帰率が 3 倍以上増加し、10% から 33% になっています。猶予期間アカウントのホールドの詳細もご覧ください。


定期購入の維持率やキャンセルについてのレポートは、 定期購入 ページの下にあるリンクから確認できます。このページは、Play Console の 売上レポート セクション内にあります。売上レポートにアクセスできない場合は、デベロッパー アカウントの所有者に売上データの表示パーミッションを付与してもらってください。


Play Console でのアカウントのホールドからのリカバリ パフォーマンス カードの例。出典: Google 内部データ。


以上の新しいレポートが、皆さんの定期購入ビジネスの最適化につながることを期待しています。
 

Reviewed by Takeshi Hagikura - Developer Relations Team

この記事は Kosuke Suzuki による Android Developers Blog の記事 "Improved app quality and discovery on Google Play" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google Play には、毎月 190 か国以上から 20 億人を超えるユーザーが、新しいアプリやゲームを求めて訪れます。Google では、Play ストアでの発見がユーザーにとってすばらしい体験となるように、アプリやゲームの品質向上に継続的に取り組んでいます。その一環として、これから数週間の間に Play ストアの掲載位置とランキングのロジックを変更します。今回の変更により、品質の高い(技術的なパフォーマンスが高くコンテンツが魅力的な)アプリやゲームが、ストア内の目立つ場所に優先的に掲載されるようになります。

アプリの品質を改善するうえで特に重視すべき点は以下の 3 つです。それぞれの点を改善するためのアドバイスに加え、そのために利用できる Google Play Console のツールも紹介しています。これらのツールを活用してユーザーの好みを理解し、技術的なパフォーマンスを把握し、最適なユーザー エクスペリエンスを提供してください。今後はアプリの品質が、Play ストア内のどの場所に、どのようにアプリが掲載されるのかを左右することになります。常にアプリの品質に注意を向け、ユーザーが心から楽しめる魅力的なエクスペリエンスを提供してください。

アプリのユーザー エクスペリエンス

アプリは直感的に操作できるか、コントロールやメニューは使いやすいか、初めてのユーザーでもすぐに使えるか、全体のデザインは洗練されているか、ユーザーが長く使ってくれるだけのコンテンツが揃っているかなど、アプリのユーザー エクスペリエンスをもう一度検討してみましょう。

品質に関するガイドライン: 品質に関するガイドラインに基づいてさまざまなプラットフォームでテストすることにより、ユーザーの期待に応えられるだけでなく、Play ストアでの掲載の機会も最大化できます。

テスト版トラック: アプリの初期バージョンをリリースして早期ユーザーからフィードバックを収集することで、完全リリースの前にアプリを改善できます。

魅力的なコンテンツ: ユーザーのニーズを満たすことにより、アプリへのロイヤリティを高めて継続的な利用を促すことができます。

広告の配置: アプリに広告を掲載する場合は、適切な形式と配置を選択し、アプリ全体の広告エクスペリエンスを最適化します。

アプリの安定性と技術的なパフォーマンス

消費電力が抑えられているか、応答は速いか、効率的か、動作に問題はないかなど、アプリの技術的なパフォーマンスを確認してみましょう。1 つ星と評価しているユーザーの 42% が、理由として安定性やバグを挙げています。

Android Vitals: Android Vitals ダッシュボードでは、主な指標であるクラッシュ発生率、ANR 発生率、過度の wakeup、停止した部分的な wake lock(バックグラウンド)に基づいて、アプリのパフォーマンスを把握できます。類似アプリを選択してベンチマークにすることで、同じカテゴリの他のアプリと比較することも可能です。Android Vitals の指標の悪化は、ユーザー エクスペリエンスの低下につながり、Play ストアへの掲載に悪影響を及ぼす恐れがあります。

リリース前レポート: アプリのどこに問題があるかをリリース前に特定し、品質をできる限り高めてからユーザーにリリースできます。リリース前レポートでは、自動化されたテストを実際のデバイスで実施して、レイアウトの問題の特定、クラッシュの診断、セキュリティ上の脆弱性の特定を行うことができます。

効果的なストア掲載情報

ストアの掲載情報が正確で効果的かどうかもアプリの品質の一部です。現在のストア掲載情報ページの第一印象はどうでしょうか。アプリの特長や便利な用途が、明確かつ正確に伝わるかどうか見直してみましょう。

おすすめの方法: アプリのクリエイティブ アセット(タイトル、アイコン、スクリーンショット、動画など)を強化し、アプリの説明をわかりやすく充実したものにすることで、アプリの魅力が正しく伝わるようにします。ユーザー獲得の機会をさらに拡げるには、すべてのページに動画(公開または限定公開で収益化していないもの)を追加して、ユーザーがアプリの動作を視覚的に理解できるようにします。ゲームの場合は、アスペクト比 16:9 のスクリーンショットを 3 枚以上掲載することをおすすめします。

新しいアイコン仕様: 6 月 24 日までにアイコンを変更し、Play ストアと調和したエクスペリエンスを提供します。

評価とレビュー: ユーザーによるレビューや評価を日頃から確認し、否定的なレビューにはできる限り返信します。デベロッパーからの返信を受け取ったユーザーは、おおよそ 10 人中 7 人が評価を星 1 つ上げてくれることがわかっています。また、2019 年 8 月には Play ストアに新しい評価方法が導入されることになっています。最近の評価がより重視されるようになるため、評価やレビューに注意を払うことが一層重要になります。

ストア掲載情報のテスト機能: 複数のバージョンのストア掲載情報ページを作成し、実際の Google Play ユーザーを対象とした A/B テストを実施できます。有意な結果を収集するには、各コンポーネントを個別にテストするようにし、少なくとも 1 週間は継続します。

ストアのカスタム掲載情報: 属性(国、インストール状態、事前登録の有無など)が異なるユーザー グループ向けに掲載情報をカスタマイズします。これにより、たとえば既存のユーザーと使用をやめたユーザーに対し、それぞれ最適な注目機能や最新情報を紹介できます。

ローカライズ: 進出する市場を特定してアプリやストア掲載情報をローカライズすることで、世界中に展開する Google Play を最大限に活用できます。テスト機能を使用して、国ごとにストア掲載情報を最適化することも可能です。
アプリ アカデミーでは、Google Play Console を最大限に活用し、アプリの品質を改善するための e ラーニング プログラムを無料で提供しています。

Reviewed by Tomoko Tanaka, Developer Product Marketing Manager, Google Play

この記事は ソフトウェア エンジニア、Peiyong Lin による Android Developers Blog の記事 "Wide Color Photos Are Coming to Android: Things You Need to Know to be Prepared" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


現在の Android のカラー チャンネルあたり 8 ビットの sRGB 色域では、ディスプレイやカメラの技術を十分に活かせない領域にさしかかっています。そこで Android では、ワイドカラー フォトをエンドツーエンドで実現する、つまりビット数を増やして色域を上げる作業を進めています。これが意味するのは、ユーザーが豊かな色彩のシーンを撮影し、ワイドカラーの写真を友人と共有したり、スマートフォンに表示したりできるようになるということです。そして Android Q ではこれらを現実に近づける取り組みが始まり、ワイドカラー フォトが登場します。そのため、アプリが広色域に対応することがとても重要になります。本記事では、アプリが広色域に対応しているか、それを表示できるかを確認する方法について説明します。また、広色域の写真に対応するために必要な手順も説明します。

本題に入る前に、なぜワイドカラー フォトが必要なのか、考えてみましょう。モバイル機器のディスプレイ パネルやカメラ センサーは、年々進化を続けています。新しくリリースされるスマートフォンは、キャリブレーション済みのディスプレイ パネルを搭載することが多くなるでしょう。その中には、広色域に対応したものもあります。最新のカメラ センサーは、sRGB よりも広い色域でシーンを撮影できるので、広色域の写真が生成されます。この 2 つを合わせると、エンドツーエンドで実世界の鮮やかな色を表現する写真が実現できます。

技術的に説明すると、皆さんのアプリに sRGB よりも広い色域を持つ ICC プロファイル(Display P3、Adobe RGB など)が埋め込まれた写真が加わることになります。ユーザーにとっては、写真のリアルさが増すことになります。


オレンジ色の夕暮れ
Display P3

オレンジ色の夕暮れ
sRGB

カラフルな傘
Display P3

カラフルな傘
sRGB

上に示すのは、同じシーンをそれぞれ Display P3 と SRGB で撮影したイメージです。この記事をキャリブレーション済みの広色域対応ディスプレイで読んでいる方は、両者に大きな違いがあることに気づくはずです。

カラーテスト

アプリの対応状況を確認できる、2 種類のテストがあります。私たちは、1 つ目をカラー コレクトネス テスト、2 つ目をワイドカラー テストと呼んでいます。

カラー コレクトネス テスト: アプリが広色域に対応しているか

広色域に対応したアプリは、色を能動的に管理します。つまり、あるイメージが与えられたとき、アプリは常にカラースペースをチェックし、広色域を表示できるかに基づいて変換します。そのため、たとえアプリが広色域を扱えなくても、色のずれが発生することはなく、sRGB 色域を使ってイメージを正しく表示できます。
次に示すのは、Display P3 ICC プロファイルが埋め込まれたイメージを正しい色で表示した例です。

屋外のコンクリート壁の前で床に置かれた大きな丸い風船
しかし、色が正しくないアプリでは、カラースペースを正しく変換せずにイメージを操作したり、表示したりすることになります。その結果、色のずれが発生します。たとえば、下のようなイメージになります。全体的に色あせて、色がずれたように見えます。

屋外のコンクリート壁の前で床に置かれた大きな丸い風船

ワイドカラー テスト: アプリが広色域を表示できるか

広色域を表示できるアプリは、広色域のイメージが与えられた場合、sRGB カラースペースに含まれない色を表示できます。次に示すのは、アプリが広色域を表示できるかをテストするために使えるイメージです。表示できる場合、赤い Android ロゴが見えます。このテストは、Pixel 3 や Samsung Galaxy S10 などの広色域対応端末で実行する必要があります。

赤い Android ドロイドの図

対応が必要になる点

広色域写真に対応するには、少なくともアプリが広色域対応テスト(カラー コレクトネス テスト)に合格しなければなりません。アプリが広色域対応テストに合格したら、それは何よりです!しかし合格しなかった場合のために、広色域に対応する手順を示します。
将来の保証を含め、広色域対応のために重要な点は、アプリが外部イメージを取得する際に、それが sRGB カラースペースであると仮定しないことです。つまり、アプリはデコードしたイメージのカラースペースをチェックし、必要な場合には変換しなければなりません。これを行わないと、色のずれが発生し、パイプラインの途中でカラー プロファイルが破棄されることになります。

必須: 正しい色を使う

少なくとも、正しい色を使う必要があります。アプリが広色域を採用しない場合、すべてのイメージを sRGB カラースペースにデコードしたいはずです。そのためには、BitmapFactory か ImageDecoder を使います。

BitmapFactory を使う

API 26 で BitmapFactory.OptioninPreferredColorSpace を追加しました。これを使うと、デコードしたビットマップのターゲット カラースペースを指定することができます。あるファイルをデコードする場合、色を管理するための一般的なスニペットは次のようになります。
final BitmapFactory.Options options = new BitmapFactory.Options();
// Decode this file to sRGB color space.
options.inPreferredColorSpace = ColorSpace.get(Named.SRGB);
Bitmap bitmap = BitmapFactory.decodeFile(FILE_PATH, options);

ImageDecoder を使う

Android P(API レベル 28)で ImageDecoder を導入しました。これは、イメージをデコードする最新の手法です。apk を API レベル 28 以上にアップグレードする場合は、BitmapFactory および BitmapFactory.Option API を使う代わりに、こちらを使うことをおすすめします。
次に示すのは、ImageDecoder#decodeBitmap API を使ってイメージを sRGB ビットマップにデコードするスニペットです。
ImageDecoder.Source source =
        ImageDecoder.createSource(FILE_PATH);
try {
    bitmap = ImageDecoder.decodeBitmap(source,
            new ImageDecoder.OnHeaderDecodedListener() {
                @Override
                public void onHeaderDecoded(ImageDecoder decoder,
                        ImageDecoder.ImageInfo info,
                        ImageDecoder.Source source) {
                    decoder.setTargetColorSpace(ColorSpace.get(Named.SRGB));
                }
            });
} catch (IOException e) {
    // handle exception.
}
ImageDecoder には、最終的なビットマップを得る前に、エンコードされているビットマップのカラースペースを把握できるというメリットもあります。これを行うには、ImageDecoder.OnHeaderDecodedListener を渡して ImageDecoder.ImageInfo#getColorSpace() をチェックします。アプリでのカラースペースの扱い方によっては、これを使ってエンコードされているコンテンツのカラースペースをチェックし、別のターゲット カラースペースを設定することもできます。
ImageDecoder.Source source =
        ImageDecoder.createSource(FILE_PATH);
try {
    bitmap = ImageDecoder.decodeBitmap(source,
            new ImageDecoder.OnHeaderDecodedListener() {
                @Override
                public void onHeaderDecoded(ImageDecoder decoder,
                        ImageDecoder.ImageInfo info,
                        ImageDecoder.Source source) {
                    ColorSpace cs = info.getColorSpace();
                    // Do something...
                }
            });
} catch (IOException e) {
    // handle exception.
}
詳しい使用方法については、こちらから ImageDecoder API を参照してください。

既知のバッド プラクティス

典型的なバッド プラクティスには次のようなものがありますが、これに限られるわけではありません。
  • 常に sRGB カラースペースを前提とする
  • 必要な変換を行わずにイメージをテクスチャとしてアップロードする
  • 圧縮時に ICC プロファイルを無視する
これらは、いずれもユーザーが検知できる重大な結果、すなわち色のずれを引き起こします。たとえば、次に示すのは、色が正しくないアプリのコード スニペットです。
// This is bad, don't do it!
final BitmapFactory.Options options = new BitmapFactory.Options();
final Bitmap bitmap = BitmapFactory.decodeFile(FILE_PATH, options);
glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES31.GL_RGBA, bitmap.getWidth(),
        bitmap.getHeight(), 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null);
GLUtils.texSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, bitmap,
        GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE);
ビットマップをテクスチャとしてアップロードする前にカラースペースをチェックしていないので、カラー コレクトネス テストで紹介した色がずれたイメージができあがります。

屋外のコンクリート壁の前で床に置かれた大きな丸い風船

省略可能: ワイドカラーを表示できるようにする

イメージを多用するアプリでイメージを正しく扱うには、以上の必須の変更点に加えて、イメージを完全な色域で表示するための追加手順を組み込みます。具体的には、マニフェストで広色域モードを有効にするか、Display P3 サーフェスを作成します。
アクティビティで広色域を有効にするには、AndroidManifest.xml ファイルで colorMode 属性を wideColorGamut に設定します。これは、ワイドカラー モードを有効にするすべてのアクティビティで行う必要があります。
android:colorMode="wideColorGamut"
カラーモードは、アクティビティのプログラムで設定することもできます。これを行うには、setColorMode(int) メソッドに COLOR_MODE_WIDE_COLOR_GAMUT を渡します。
ワイドカラー コンテンツに加えて広色域コンテンツを描画するには、描画先となる広色域サーフェスを作成します。たとえば OpenGL では、最初にアプリで次の拡張機能をチェックする必要があります。
次に、サーフェスを作成する際に、カラースペースとして Display P3 をリクエストします。次のコード スニペットをご覧ください。
private static final int EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT = 0x3490;

public EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display,
                                      EGLConfig config, Object nativeWindow) {
  EGLSurface surface = null;
  try {
    int attribs[] = {
      EGL_GL_COLORSPACE_KHR, EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT,
      egl.EGL_NONE
    };
    surface = egl.eglCreateWindowSurface(display, config, nativeWindow, attribs);
  } catch (IllegalArgumentException e) {}
  return surface;
}
ネイティブ コードで広色域を採用する方法について詳しく説明した投稿もご覧ください。

イメージ ライブラリ用の API デザイン ガイドライン

最後に、イメージのデコードやエンコードを行うライブラリを所有またはメンテナンスしている方は、少なくともカラー コレクトネス テストに合格する必要があります。ライブラリを最新化する場合、API を拡張して色を管理する際に次の 2 つのことを強くおすすめします。
  1. 新しい API を設定する場合や、既存の API を拡張する場合は、パラメータとして明示的に ColorSpace を受け取るようにすることを強くおすすめします。カラースペースをハードコーディングするよりも、明示的に ColorSpace パラメータを使う方が将来性が高くなります。
  2. すべての従来の API では、ビットマップを明示的に sRGB カラースペースにデコードすることを強くおすすめします。昔はカラー マネジメントが存在しなかったので、Android 8.0(API レベル 26)までの Android はすべてを暗黙的に sRGB として扱います。これにより、ユーザーは下位互換性を維持することができます。
開発が終わったら、上のセクションに戻って 2 つのカラーテストを実行してください。

Reviewed by Yuichi Araki - Developer Relations Team