この記事は Oscar Wahltinez による Android Developers Blog の記事 "What's new in foldables, tablets, and large screens" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

この記事は Oscar Wahltinez による Android Developers Blog の記事 "What's new in foldables, tablets, and large screens" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

ユーザーは より大きな画面で、かつ、1 台のデバイスのみを活用し、より多くのことができることに価値を見出しています。大画面デバイスに対応したアプリは、その価値をさらに高めることができます。

折りたたみ式デバイスは、大きな画面を持つデバイスの使い勝手を向上させました。タブレットのような画面サイズのデバイスをポケットに入れて持ち運べる様になり、従来型のスマートフォンでは実現の難しかった使い方ができるようになります。アプリのエコシステムへの影響について考えると、とてもワクワクします。このハードウェアの大きな変化は、スマートフォンで新しくできるようになることがあるに違いない、という期待をもたらしているからです。私たちは、この大画面化の流れは、タブレットにも及ぶと考えています。同じようなアプリ エクスペリエンスでも、画面の大きいデバイスで操作した場合は、段違いに評判が良くなります。





技術的なブレイクスルーと、エルゴミクスについての考え方が、デバイスの形状を変化させる要素に影響を与えてきました


このブログ記事では、大画面向けにアプリを準備するときに何をすべきか、アプリの開発を効率化する最近のアップデートについてご説明します。まずはじめに、大画面についての私たちの考えと、アプリを最適化するべき理由についてお話しします。

なぜ大画面なのか


折りたたみ式デバイスにはさまざまな種類の置き方や使い方があります


この 1 年で、各社が新しい折りたたみ式デバイスやタブレットを発表しています。また、ユーザーが自宅で新型デバイスを使ってより多くのことをしようとしているため、需要も増加しています。つまりデベロッパーの皆さんは現在、Android の大画面デバイス向けにアプリを開発すると、2 億 5,000 万台以上のアクティブな折りたたみ式デバイス、タブレット、Chromebook にリーチすることができます。タブレット の売上は 2020 年に16% 増加し、アナリストは 2023 年までに 4 億台以上の Android タブレットが登場すると予想しています。また、Android アプリは、現在 2 番目に人気のあるデスクトップ OS である ChromeOS でも動作します。 

大画面化に備える

大画面化によって、ユーザーのデバイスとの付き合い方が変わりつつあります。このようなデバイスでは、メモを見ながらスライドデッキを編集したり、夜の外出に備えておすすめのレストランを調べたり、友達とチャットしながらビデオを見たりすることができます。ここでは、アプリを大画面に対応するためにサポートしなければならない機能である、基礎レベルのサポートについて説明します。大画面に対応するためには、主に 大きく分けて 3 つのカテゴリに注目します。

  1. 大画面向けの設計
  2. マルチタスク化
  3. 入力モード

これらについて以下にまとめますが、詳しくは大画面アプリの品質ガイドラインを必ずご覧ください。

大画面向けの設計

最初のステップは、アプリを確実に大画面向けに設計することです。これを簡単にするために、特定のウィンドウサイズのブレイクポイントとデバイスクラスを定義して、デベロッパーが最適化できるようにしました。最短のサイズが 600dp 以上のディスプレイにはタブレットレイアウトを追加し、アプリが端から端まで表示されるようにします。また、大画面は横向きで使用されることが多いため、デベロッパーはアプリが縦向きと横向きの両方で使用されるように考慮する必要があります。画面のスペースをより有効に活用できるように、マテリアル アダプティブ コンポーネントをご用意しました。詳しくは後ほどご説明します。


折りたたみ式デバイスや大画面のデバイスでは、画面サイズが変化するため、画面サイズに応じてエクスペリエンスを分割するよりも、アダプティブ レイアウトが適しています


マルチタスク化

分割画面(またはマルチウィンドウモード)への移行や、ドラッグ&ドロップのようなジェスチャーによる操作は、ユーザーが大画面デバイスでシームレスに動作することを期待する、自然なインタラクションになりつつあります。

アプリのサイズを変更可能にすることで、アプリをシームレスにマルチタスク対応にできます。また、画面の折りたたみ/ 展開イベントを適切に処理し、アプリをマルチウィンドウモードに対応させることで、アプリがレターボックス表示になることを防げます。

大画面レイアウトでは、同じアプリ内であってもドラッグ&ドロップが自然なインタラクションになります
マルチインスタンス サポートを有効にすると、ユーザーはアプリを複数コピーして横に並べて実行できます。これにより、ユーザーは 2 つの製品を比較したり、文書を書くときにメモを参照したり、イベントを計画するときにカレンダーを表示したりすることができます


入力モード

多くの人は生産性を高めるためにより大きな画面を使います。そのため、タブレットは基本のキーボード、マウス、スタイラスの使用をサポートする必要があります。

ChromeOS デバイスで Android アプリを使用するユーザーは、キーボードを使用することが多いため、アプリを、標準的なキーボード操作やショートカットに対応させ、アクセシビリティを向上させる必要があります


コンポーネントのアップデート

Jetpack と Material Design ライブラリの UI コンポーネントをアップデートし、スマートフォンの UI を大画面に拡大しても柔軟なユーザー エクスペリエンスを開発できるようになりました。

SlidingPaneLayout

アプリを大画面に最適化するときに最もよく使われるアダプティブ レイアウトの 1 つが、一覧・詳細UI です。例えば、メッセージングアプリでは、片側にメッセージを一覧表示し、もう片側にメッセージの詳細を表示します。

SlidingPaneLayout は設定の変更に自動的に適応し、さまざまなレイアウト サイズに適切なユーザー エクスペリエンスを提供します


SlidingPaneLayout ライブラリのアップデート版を使うと、小さな画面では上下に重なってしまう UI も、簡単に横に並べることができます。2 ペインスタイルのレイアウトをサポートするためにアップデートされた SlidingPaneLayout は、2 ペインの幅を使って UI のレイアウトを決定します。これは、コンテンツの幅と利用可能なスペースに基づいて、横に並べることができるかどうかを自動的に判断して実行します。例えば、リストペインの 最小幅が 200dp、詳細ペインが 400dp 必要と測定された場合、SlidingPaneLayout は、少なくとも 600dp の幅が利用可能であれば、自動的に2つのペインを横に並べて表示します。


サンプルアプリの IOSchedで SlidingPaneLayout を使用


折り目やヒンジなどのディスプレイの特徴を認識する機能も追加しました。例えば、ヒンジ付きのデバイスで画面の一部が遮られている場合、自動的にコンテンツをどちらかの画面に配置します。

ロックモードも導入しました。ロックモードでは、ペインが重なったときのスワイプ動作をコントロールできます(プログラムによる切替もサポートされます)。例えば、ユーザーがスワイプで空のペインに移動するのを防ぐために、リストのアイテムをクリックしてそのペインの情報を読み込ませ、スワイプでリストに戻れるようにすることができます。2 つのビューを横並びで表示する大きさがある折りたたみ式デバイスやタブレットでは、ロックモードは無視されます。

NavRail

垂直ナビゲーション レールは、機能的にはボトム ナビゲーションと同等で、より大きな画面のナビゲーションの使用感を改善し、UI のサイズを調整する時に、NavRail が指が届く範囲内に配置することをサポートします。スマートフォンは下向きに持つユーザーが多いですが、タブレットなどより大きいサイズのデバイスは横向きに持つことが多いからです。

NavRail はナビゲーション メニューの位置を設定に応じて自動的に変更します


例えば、縦スクロールが重要なアプリの場合に、NavRai lが役立ちます。このような場合、ナビゲーション バーが下部にあると表示できるコンテンツの量が減ってしまいます。特に、タブレット デバイスを横向きに使っている場合に、より顕著になります。

その他のコンポーネント

他にも、複数のコンポーネントをアップデートしました。アプリを大画面対応するときの最大の落とし穴の 1 つは、UI要素が画面全体に引き伸ばされることです。これを防ぐために、この問題が最も多く発生する要素、例えば下のような要素にデフォルトのmax-width を追加しました。

  • ボタン
  • テキストフィールド
  • シート

今後、他の要素にも同じ対応を行う予定です。これらの変更により、独特のデフォルトが提供され、アプリを大画面デバイス対応にし、アプリのレイアウトが崩れないようにサポートします。追加設定は必要ありません。コンポーネントのサイズ制限に関する詳細は、マテリアル デザイン ガイドラインをご覧ください。


最前面の UI 要素は最大幅の値を設定する必要があります。


WindowManager Jetpack ライブラリ

UI のサイズ調整をサポートするコンポーネントのアップデートだけではなく、これらのデバイスでより良いエクスペリエンスを開発するための WindowManager Jetpack ライブラリを提供しています。このライブラリは、現在アルファ版が公開されており、折りたたみ式デバイスやタブレットをはじめとするさまざまなデバイスタイプに対応する一般的な API サーフェスを提供しています。

WindowManagerを使用すると、折り目やヒンジなどのディスプレイの特徴を検出することができます。また、そのディスプレイ機能がアプリにどのような影響を与えるかについての情報も提供されるので、最適なエクスペリエンスを生み出すことができます。例えば、ユーザーが動画を見ているときにデバイスがテーブルトップ モードに折り畳まれた場合、折りたたみ式デバイスの状態変化に反応します。

アプリケーションは、数が増え続けるデバイス設定にシームレスに適応する必要があります


WindowManager では、API レベル 14 以降の下位互換性のある方法で、現在および最大の WindowMetrics 情報を取得する便利なメソッドもいくつか提供します。


プラットフォームの変更

ディスプレイ API の廃止

アプリは、各デバイスに適切にコンテンツを表示するために、画面またはディスプレイのサイズを決定する必要があります。WindowMetrics API を導入したため、ディスプレイ サイズに関連する多くのメソッドが非推奨となりました。下位互換性のある代替手段として、Window Manager Jetpack ライブラリを使用する必要があります。

 

排他的リソース

Android 10 では、「トップの再開アプリ」が 1 つになり、複数の再開アプリを同時に実行することが可能になりました。ほとんどのアプリケーションは、アップデートの必要なくこの変更の恩恵を受けます。ただし、マイクやカメラなどの排他的なリソースを使用しているアプリケーションは例外です。詳細については、以前のブログ記事(英語)をご覧ください。


ケーススタディ

アプリを大画面に最適化することで、ユーザー エクスペリエンスが改善され、ビジネスの成果につなげることができます。Google Play では、大画面での利用機会を活用するアプリが増えています。例えば、Google Duo は、タブレットと折りたたみ式デバイスのサポートを実装してユーザー エクスペリエンスを向上させ、アプリの評価とユーザー エンゲージメントの向上に繋がりました。

Google Duo の折りたたみ式デバイス対応最適化エクスペリエンス(Samsung Galaxy Z Fold2 など)


Google Duo のユーザー エクスペリエンスの向上に加えて、多くのアプリでアダプティブ レイアウトを採用し、大画面や折りたたみ式デバイスでの利用が可能になりました。

  • Chrome は大画面用にタブ ナビゲーションを改善しました

  • YouTube は、折りたたみ式デバイスでの操作性を向上するために UI を再設計しました

  • Google フォトは、大画面で検索バーなどの UI 要素をより大きく表示するようにしました

  • Google カレンダーは、大きな画面ではよりエルゴノミクスに則った UI を提供します


関連情報

折りたたみ式デバイスおよび大画面デバイスの詳細については、以下の関連情報も併せてご覧ください。


Reviewed by Chiko Shimizu - Developer Relations Team and Tamao Imura - Developer Marketing Manager, Google Play

この記事は  Modern Android Development チーム による Android Developers Blog の記事 "Android @ Google I/O: 3 things to know in Modern Android Development" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

この記事は  Modern Android Development チーム による Android Developers Blog の記事 "Android @ Google I/O: 3 things to know in Modern Android Development" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

今年の Google I/O では、Modern Android Development(最先端の Android 開発)に関する多くのアップデートが発表されました。ここでは、知っておくべきことトップ 3 をご紹介します。


※日本語字幕に対応しています。ぜひ切り替えてご覧ください。

#1: たくさんの新しい Jetpack ライブラリのリリース

ここ数か月間で、いくつかの Jetpack ライブラリが安定版やベータ版に到達したり、アルファ版でリリースされています。主なものをご紹介します。

新機能についての詳細は、I/Oの他のセッション What's new in JetpackUsing Jetpack libraries in Compose をご覧ください。また、Macrobenchmark の詳細については、 Measuring Jank and Startup with Macrobenchmark をご覧ください。すべての動画が日本語字幕に対応しています。


※日本語字幕に対応しています。

#2: Android Studio のインスペクター

Android Studio Arctic Fox が提供するさまざまなインスペクターを使うと、アプリのデバッグが簡単になります。バックグラウンド作業では、Background Task Inspector を使うと WorkManager のワーカーの状態を把握できます。UI 用の Layout Inspector は、Android ビューと Compose の両方に対応しています。データベースのデバッグには、Database Inspector を利用できます。

実際のインスペクターを見てみたい方は、 What’s new in Android development tools セッションをご覧ください。


※日本語字幕に対応しています。

#3: Kotlin の新機能

私たちは、ツールから API まで、Android における Kotlin をあらゆるレベルで改善し続け、さまざまな学習方法を提供しています。現在アルファ版の Kotlin Symbol Processing(KSP)は、KAPT より最大 2 倍高速に実行できる簡潔なコンパイラ プラグイン API です。私たちは、JetBrains と連携して IDE のパフォーマンスの問題に対処しています。その結果、自動インポート候補の表示が最大 20 倍高速になりました。また、DataBinding に StateFlow のサポートを追加し、UI で DataBinding を使わずに Flow を監視する新しい API を追加しました。すべての Kotlin の改善点は、 State of Kotlin on Android セッションでご紹介しています。


※日本語字幕に対応しています。


Modern Android Development(最先端の Android 開発)に関連する、今年のすべての Google I/O セッションは、こちらのプレイリストからご覧ください。


Reviewed by Hidenori Fujii - Google Play Developer Marketing APAC

この記事は Jon Markoff、Sean Smith による Android Developers Blog の記事 "Introducing Security By Design" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

この記事は Jon Markoff、Sean Smith による Android Developers Blog の記事 "Introducing Security By Design" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

アプリ開発のどの段階でセキュリティ対策を実装すべきか悩まれたことはありませんか?セキュリティをアプリ開発のライフサイクルに組み込んでおくと、たくさんの時間と費用、リスクを削減できます。Google Play の技術情報をオンラインで学習できる Google Play アカデミーで公開している「安全性を重視した設計」コースでは、デベロッパーがセキュリティの脅威を特定し、緩和して、先回りで保護できるための知識を習得できます。

Google Play を含む Android エコシステムには、デベロッパーやユーザーを保護するための多くのセキュリティ機能が組み込まれています。 「アプリのセキュリティに関するベスト プラクティスの概要 」コースは、これらの保護を一歩進めて、アプリに組み込まれた追加のセキュリティ機能を活用できるような内容になっています。たとえば、Jetpack Security は、デベロッパーがデータを適切に暗号化し、Files や SharedPreferences を暗号化するための安全でよく知られたアルゴリズムのみを提供します。root 化されたデバイスや、危険なデバイスを通じて、悪意のある人があなたのアプリを認可されていない方法で使用する可能性を懸念していませんか?SafetyNet Attestation API を使うと、危険な可能性がある使用パターンを特定することができます。特定できる使用パターンは、一般的に見られるいくつかの設計上の脆弱性で、たとえば、ファイル ストレージの共有や不適切な使用、安全でないプロトコルの使用、アクティビティなどのコンポーネントを保護しないことなどです。このコースでは、リリース後もアプリの安全を保つためのアプリのテスト方法についても解説しています。さらに、脆弱性開示プログラム(VDP)を設定してセキュリティ研究者に協力を求めることもできます。

セキュリティ開発ライフサイクルの概要」コースでは、セキュリティ開発ライフサイクル(SDL)を採用して開発プロセスの各ステージにセキュリティを組み込む方法を学ぶことができます。SDL は業界基準のプロセスです。このコースでは、プログラムの設定の基礎、経営陣の協力を得る方法、開発ライフサイクルへの組み込み方について学習します。

また、同じくセキュリティ開発ライフサイクルの一部である脅威のモデリングについては、脅威の特定、分類、対処を行うために、攻撃者の視点で考えることを学習します。開発の設計フェーズの早い段階でこれを行うことで、はるかに少ない費用で潜在的な脅威を特定し、それを緩和する方法について計画し、ユーザーにとってのプロダクトの安全性を高めることができます。

アプリのセキュリティ強化は終わることのないプロセスです。ぜひ、「安全性を重視した設計」コースを受講してください。いくつかのミニコースを通じて、アプリ開発ライフサイクルにセキュリティを組み込む方法、潜在的な脅威をモデリングする方法、セキュリティのベスト プラクティスをアプリに組み込む方法、そして潜在的な設計の落とし穴を回避する方法を習得しましょう。


Reviewed by Hidenori Fujii - Google Play Developer Marketing APAC


Google Play は、ゲーム業界で働く女性のサポートをしたいと考えています。そこで、2021 年 7 月 2 日に ゲーム業界で働く女性を対象に「自分が変われば周りも変わる」をテーマにしたオンライン イベント Women in Gaming 2021 を開催します。

第 2 回目となる今回のイベントは、二部構成で開催します。第 1 部では、ゲーム業界、IT 業界の第一線で活躍されている女性リーダーをお招きし、ゲーム業界での働き方や新しいゲーム市場への考察を深めるパネル トークや質疑応答、第 2 部では、Google のグローバルでの取り組みの一環である「#IamRemarkable」プログラムとのコラボレーションにより、さらにインタラクティブなワークショップを行う予定です。

Women in Gaming とは?

性別に左右されずゲーム業界で女性が活躍できる環境を作りを目指して、Google Play が主催で不定期に開催しているイベントです。ゲーム業界での働き方や新しいゲーム市場への考察を深めるほか、Google の担当者からは Google の多様性を高める活動について、また、誰もが活躍できる社会を目指す取り組みについてお話しします。


Google Play は、ゲーム業界で働く女性のサポートをしたいと考えています。そこで、2021 年 7 月 2 日に ゲーム業界で働く女性を対象に「自分が変われば周りも変わる」をテーマにしたオンライン イベント Women in Gaming 2021 を開催します。

第 2 回目となる今回のイベントは、二部構成で開催します。第 1 部では、ゲーム業界、IT 業界の第一線で活躍されている女性リーダーをお招きし、ゲーム業界での働き方や新しいゲーム市場への考察を深めるパネル トークや質疑応答、第 2 部では、Google のグローバルでの取り組みの一環である「#IamRemarkable」プログラムとのコラボレーションにより、さらにインタラクティブなワークショップを行う予定です。

Women in Gaming とは?

性別に左右されずゲーム業界で女性が活躍できる環境を作りを目指して、Google Play が主催で不定期に開催しているイベントです。ゲーム業界での働き方や新しいゲーム市場への考察を深めるほか、Google の担当者からは Google の多様性を高める活動について、また、誰もが活躍できる社会を目指す取り組みについてお話しします。

#IamRemarkable とは?

2 人の Google 社員、Anna Vainer と Anna Zapesochini によって立ち上げられたワークショップを中心としたプログラムです。当初は女性に特化した取り組みで、女性が自分の仕事の実績をオープンに話せるように後押しをする目的でスタートしました。しかしながら、こういった問題に直面しているのは女性に限らないことに着目し、女性以外でも、あらゆる過小評価されているグループ属する人々が、職場をはじめとするあらゆる場所での自分の実績をオープンに語り、「謙虚であるべき」という社会的通念やガラスの天井を打ち破れるようにサポートすることを目指しています。

開催概要

イベント名 : Women in Gaming 2021
開催日時 : 2021 年 7 月 2 日 10 時 00 分  - 12 時 30 分
開催形式 : オンライン ウェビナー
対象 : ゲーム業界、または関連業界で業務をする女性、または興味のある女性 。なお、男性の参加も歓迎です

※開始 10 分前から入場可能です

タイムテーブル

  • 10:00〜10:05 オープニングのご挨拶 : (Google Play Partnerships ゲーム部門 マネージャー  河田 瑠衣)

  • 10:05 〜 10:35 第 1 部 - パネルトーク :(株式会社 ミクシィ 執行役員モンスト事業本部長 根本悠子、株式会社 スクウェア・エニックス・ホールディングス広報室長 野原 和歌)
    [モデレーター] Director,  Apps, Commerce and Entertainment, Google 藤木 貴子

    ゲーム業界、IT 業界の第一線で活躍されている女性リーダーをお招きし、男性社員の割合が多い業界で、女性としてどのようにポジションを確立し、また、自身の働き方や考え方が変わったことで、周りへポジティブな影響を与え、企業全体をどのように活性化されてきたのか。そのご経験をディスカッション形式でお話しいただきます。

    ※参加人数に制限を設けておりませんので、お誘い合わせの上ご参加ください。

  • 10:35〜10:50  Q&A : (株式会社 ミクシィ 執行役員モンスト事業本部長 根本悠子、株式会社 スクウェア・エニックス・ホールディングス広報室長 野原 和歌、Director,  Apps, Commerce and Entertainment, Google  藤木 貴子)
    [モデレーター] Google Play Partnerships ゲーム部門 マネージャー  河田 瑠衣

    イベント中にツールへ寄せられた質問へご回答します。

  • 10:50〜11:00 Break - 休憩

  • 11:00〜12:30 第 2 部 - #IamRemarkable ワークショップ : (Google Android Partner Enablement Manager, APAC, #IamRemarkable 日本責任者 五木田 菜津紀)


    Google がグローバル規模で力を入れている取り組みである「#IamRemarkable」(※)プログラムとのコラボレーションにより、さらにインタラクティブなグループワークショップを行います。このワークショップでは現代社会における多様性がいかに重要であるかを理解し、自己肯定感を低くし、自分の成果を共有することを阻んでしまっているものは何なのかを考え、改めて自身を見つめ直すためのワークショップです。

    こちらは、Google Meet を活用したセッションになります。参加者数に限りがございますので、視聴登録フォームより事前にお申し込みください。

※登壇者、内容は変更される場合がありますので、最新情報は Web サイトでご確認ください

参加方法

こちらのイベントページよりご登録ください。第 1 部への参加は、当日でも可能です。第 2 部の「#IamRemarkable」ワークショップは、参加者数に制限を設けております。先着順となりますので、必ず事前にご登録ください。


Posted by Rui Kawada - Google Play Partnerships, Games

作品の革新性、独創性、面白さで成功を目指すインディーゲーム 開発者の皆さまを応援する Google Play | Indie Games Festival 2021 の応募登録を本日よりスタートしました。詳細なスケジュールと応募条件、ならびに内容についてお知らせします。

本日 2021 年 6 月 1 日より募集を開始し、締め切りは 2021 年 7 月 1 日 17 時 00 分(日本時間)です。この募集期間中に Google Play ストアにおいて正式に対象のゲームを公開している必要があります。

作品の革新性、独創性、面白さで成功を目指すインディーゲーム 開発者の皆さまを応援する Google Play | Indie Games Festival 2021 の応募登録を本日よりスタートしました。詳細なスケジュールと応募条件、ならびに内容についてお知らせします。

本日 2021 年 6 月 1 日より募集を開始し、締め切りは 2021 年 7 月 1 日 17 時 00 分(日本時間)です。この募集期間中に Google Play ストアにおいて正式に対象のゲームを公開している必要があります。

2021 年 6 月21 日更新:さらに多くの方々にご応募頂けるよう、オープンベータ版のゲームも応募可能になりました。

今年は、新たに学生部門を設けました。13 歳以上の学生の方であれば、応募可能ですので、ゲームを開発している学生の方は、ぜひご応募ください!

Google Play | Indie Games Festival 2021 スケジュール:

2021 年 6 月 1 日 参加登録ゲームの募集開始
2021 年 7 月 1 日 17 時 00 分 (日本標準時)募集期間終了
2021 年 8 月  上旬 トップ 20 発表
2021 年 9 月中にオンラインにて ファイナルイベント開催、Top 3 ならびに Top 10 を決定し発表

※オンラインによる Top 20 へのユーザー投票は、本年は実施しません。なお、最新情報は Web サイトでご確認いただけます。

Google Play | Indie Games Festival 2021 応募登録 :

こちらの公式 Web サイトより、募集期間中、早めにご登録ください。なお、本イベントの最新情報、参加規約、ルールについては必ず随時 Web サイトをご確認ください。

応募可能タイトル :

  • 応募可能なゲームは、Google Play ストアに 2020 年 3 月 3 日 以降に公開されたものです。
  • 未公開の新しいゲームの場合、応募締め切りの 7 月 1 日までに Google Play ストアに正式に公開されている必要があります。
  • ゲームの応募には、ルールに記載されるすべての参加資格を満たしていることが条件となります。また、参加規約と同意事項を確認し、合意していただく必要があります。

ファイナルイベントについて :

9 月中に開催するファイナルイベントはオンラインで実施します。Top 20 タイトルを手がけたデベロッパーによるゲームの紹介を行い、審査員による投票により Top 10、Top 3 を決定します。

賞品について:

Top 20

  • オンラインで実施するファイナル イベントにて、入賞ゲームを紹介する機会
  • プレゼンテーショントレーニング(30 分) 
  • Google Play ストア での Indie Games コンテスト特集コレクションと Google Play ストアのインディー コーナーのコレクションに掲載されます *
  • Android Developer / Google Play Developer の各チャネルでの入賞ゲームのプロモーション

Top 10 (Top 20 賞品に加えて)

  • Google Play チーム メンバーとの個別のコンサルティング 1 回(大会に応募したゲームに関するもの)
  • Google Pixel 5 を 1 台

Top 3 (Top 10 賞品に加えて)

  • Google Play ストアの ゲームトップページ上での入賞ゲームの掲載。入賞ゲームの専用のバナーと、そのゲームに関する特集記事のページを掲載予定です*

Indie Games Accelerator 賞( 2 名を Google 審査員により選定)

  • インディーゲーム開発者が Android と Google Play でビジネスを成長させる為に役立つ無料の研修およびメンターを提供するプログラムです。Top 20 に入選した方のうち 2 名を、Google Play Indie Games Accelerator にご招待します。

学生部門賞

  • Google Play ストアの特設コーナーでの掲載と記念品をご用意します。


※賞品をスケジュールやその他の都合で受け取れない場合、現金やその他の代替品の提供は行いません。また、賞品の第三者への譲渡は認められません。

※「Google Play ストアでの掲載」には、掲載時までにユーザー レビュー が 3.8 以上である必要があります。この条件を満たせないと、掲載がされない場合がありますのでご了承ください。

※詳しくは、Web サイトの大会参加規約をご確認ください。


今年も創意工夫あふれるインディーゲームに出会えることを楽しみにしています。多数のご応募をお待ちしています!


Posted by Tamao Imura - Developer Marketing Manager, Google Play

この記事は Greg Hartrell による Android Developers Blog の記事 "Join us for Google for Games Developer Summit 2021" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

昨年、新しくゲームを始めるユーザーが急増し、ゲームに費やされる時間も増加し、プレーヤーが楽しんで遊べる、エンゲージメントが高いゲームを提供することがゲーム デベロッパーにとって今までになく重要になっています。そこで、デベロッパーの皆さんを支援するため、Google のゲームチームが、7 月 12 日・13 日(日本時間 7 月 13 日・14 日)に Google for Games Developer Summit 2021 を開催することをお知らせします。

この記事は Greg Hartrell による Android Developers Blog の記事 "Join us for Google for Games Developer Summit 2021" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

昨年、新しくゲームを始めるユーザーが急増し、ゲームに費やされる時間も増加し、プレーヤーが楽しんで遊べる、エンゲージメントが高いゲームを提供することがゲーム デベロッパーにとって今までになく重要になっています。そこで、デベロッパーの皆さんを支援するため、Google のゲームチームが、7 月 12 日・13 日(日本時間 7 月 13 日・14 日)に Google for Games Developer Summit 2021 を開催することをお知らせします。

このイベントでは、 Google のエキスパートが、開発中の新しいゲーム ソリューションについてお話しします。いずれも、すばらしいゲームを開発したり、プレーヤーとつながったり、ビジネスをスケールアップしたりするうえで役立ちます。登録は無料で、すべてのゲーム デベロッパーの皆さんがご参加いただけるオンラインイベントです。参加登録は、g.co/gamedevsummit よりお手続きください。さらに詳しい情報は、今後数週間のうちにお伝えします。

デベロッパー コミュニティの皆さんへ最新のイノベーションを共有できることを楽しみにしています。


Reviewed by Hidenori Fujii - Google Play Developer Marketing APAC

この記事は Dave Burke による Android Developers Blog の記事 "What's new in Android 12 Beta" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

この記事は Dave Burke による Android Developers Blog の記事 "What's new in Android 12 Beta" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


2021 年 5 月 19 日(現地時間 5 月 18 日)の「Google I/O」で、これまでで最も野心的なリリースの 1つである Android 12 Beta 1 について初めて発表しました。

私たちが特に力を入れているのが、ユーザーの好みに適応し、よりパフォーマンスに優れ、セキュリティとプライバシーを重視した新しい UI です。デベロッパーの皆さんには、スマートフォン、ノートパソコン、タブレット、ウェアラブル デバイス、TV、車などを使用するユーザーに向けたすばらしいエクスペリエンスを提供するためのさまざまなツールも用意しています。

Beta 1 には注目すべき点がいくつもあります。まず、「Material You」というデザイン言語を採用し、Android 史上最大の変更が行われた UI です。さらに、おおよその位置情報を提供する設定など、ぜひ試していただきたい新しいプライバシー機能や、アプリとユーザーが高性能なデバイスを確認できる「パフォーマンス クラス」という新しい基準も導入しています。

Pixel デバイスに Android 12 Beta 1 をインストールする場合は、こちらの Web サイトをご覧ください。また、パートナーのデバイスメーカーが迅速なアップデートに取り組んでくださっているおかげで、ASUS、OnePlus、OPPO、Realme、シャープ、TCL、Transsion、Vivo、Xiaomi、ZTE などのデバイスでもBeta 1 をインストールできるようになりました。その他のデバイスも近々対応予定です。詳しくは android.com/beta をご覧ください。 

この記事では、新機能のポイントについてさらに詳しく説明します。Android 12 全体の詳細情報や開発方法については Android 12 のデベロッパー向け Web サイトもご覧ください。

Android の新しい UI

ユーザー向けのブログ記事で紹介したとおり、Android 史上最大のデザイン変更を行いました。Android 12 では、より表現力に富み、生き生きと動き、個人の好みに合うよう、色や形、光や動きに至るまですべてのエクスペリエンスを見直しました。私たちはソフトウェア チーム、ハードウェア チーム、マテリアル デザイン チーム間の密接な連携を通じてこの作業に取り組み、ソフトウェアとハードウェアのエコシステムを「Material You」という 1 つのデザイン言語の下で統合しようとしています。 

この新しいデザイン言語はプラットフォーム全体にわたり、すべての UI 要素に採用されるので、アプリにはこれらのアップグレードが自動的に適用されます。 

再設計されたウィジェット - Android 12 では、デザインとともに、アプリのウィジェットもより使いやすく、美しく、見つけやすく変更しました。

新しく追加されたチェックボックス、スイッチ、ラジオボタンなどのインタラクティブなコントロールによって、ウィジェットがよりカスタマイズしやすくなっています。Android 12 のウィジェットは角が丸くなり、ランチャーとホーム画面に合わせて自動的にパディングが調整されるようになったため、システム UI とテーマに美しく調和します。レスポンシブ レイアウトにより、スマーフォン、タブレット、折りたたみ式デバイスなどさまざまなスクリーンに合わせてウィジェットを変化させることができます。

また、動的なカラー API を使用することで、システムカラーを使用して、統一性を保ちながら独自のウィジェットの外観を作成できるようになりました。さらに、ウィジェットの選択機能が改善され、Assistant との連携性が高まり、ウィジェットがより見つけやすくなっています。サンプルコードをチェックし、新しくなったウィジェットをぜひお試しください。詳細はこちらをご覧ください


ストレッチ オーバースクロール - システム全体に「ストレッチ」というオーバースクロール効果を追加しています。この効果を使うと、UI 内で利用可能なコンテンツの端までスクロールしたことがユーザーにわかりやすくなります。ストレッチ効果は縦方向と横方向のスクロールが止まることを自然な動作で知らせるものです。すべてのアプリに共通で使用され、プラットフォームと AndroidX のスクロール可能なすべてのコンテナでデフォルトで有効になっています。

このストレッチ オーバースクロールは、これまでのバージョンでサポートされていたグロー効果を用いたオーバースクロールに代わって使用されます。ご自身のアプリやコンテンツでこの新しいスクロール動作を必ずテストしてください。不要であれば無効にすることができます。詳しくはこちらをご覧ください

よりスムーズな音声の遷移 - UI とは視覚的な要素だけではありません。音声フォーカスの処理も改善されています。

アプリが音声フォーカスを失うと、そのアプリの音量が自動的に小さくなります。音声を出すアプリからアプリへとスムーズに遷移し、アプリ同士で音声を妨げあうことがなくなります。特に、折りたたみ式デバイスやマルチスクリーンの Android 環境では重要な機能です。詳しくはこちらをご覧ください

パフォーマンス

Android 12 では、システムとアプリを高速化する基本的なパフォーマンスの改善から、高性能なデバイスを特定し、デベロッパーによるデバイスのエクスペリエンス改善を支援する新しい基準の導入まで、大規模かつ詳細にわたるパフォーマンスの改良を行いました。 

高速化と効率化を実現するシステム パフォーマンスの改善 - コアシステムのサービスを実行するのに必要な CPU 時間が 22% 削減されたため、デバイスがより高速に動作し、機敏に反応するようになります。またシステム サーバーによる大型(big)コアの使用が 15% 削減されたため電力効率がよくなり、デバイスの充電が長持ちするようになりました。 

さらにロックの競合と遅延時間のばらつきを軽減して遷移とアプリの起動時間を改善し、アプリの読み込みが早くなるよう I/O を最適化しています。PackageManager では読み取り専用のスナップショットにより、ロックの競合が約 92% も減少しました。

Binder では、軽量なキャッシュによって、対象となる呼び出しの遅延時間が最大 47 倍も改善されています。I/O に関しては、dex、odex、vdex ファイルの高速化により、特にメモリ容量が少ないスマートフォンでのアプリの読み込み時間が改善されています。また通知トランポリンの制限により、通知からアプリを起動するときの遅延時間が短縮されました。たとえば、Google フォトアプリでは、通知トランポリンを行わなくなったことで、起動時間が 34% 短くなっています。

データベース クエリのパフォーマンスを改善するため、Binder のトランザクションに結果を埋め込むことで CursorWindow を最適化しました。小さなウィンドウの場合、CursorWindow は 36% 高速化しています。1000 行を超えるウィンドウでは改善率は 49 倍にも達します。 

パフォーマンス クラス - Android エコシステムのパートナーと連携し、Android 12 から、高性能な Android デバイスを特定する共通の基準を導入することになりました。 

「パフォーマンス クラス」と呼ばれるこの基準は、Android の基本的な要件からさらに進んだ高度な性能を定義します。パフォーマンス クラスの要件を満たすデバイスは、より厳しい条件のユースケースに対応し、より質の高いコンテンツを提供できます。デベロッパーは実行時にパフォーマンス クラスを確認することで、デバイスのパフォーマンスを最大限に活かした高度なエクスペリエンスを確実に提供できます。

当面は、メディアのユースケースに特化して、カメラの起動時の遅延時間、コーデックへの対応、エンコードの質、最小メモリ容量、画面解像度、読み取りと書き込みのパフォーマンスなどの要件を定義したパフォーマンスクラスを提供します。詳しくはこちらをご覧ください

設計段階から組み込まれたプライバシー

私たちは常にプライバシーを念頭に置いています。Android 12 でも引き続き、ユーザーのデバイスとデータのセキュリティを保護しながら、透明性と制御性を高めることに努めています。Beta 1 で追加されたプライバシー機能は以下のとおりです。  

アプリの休止状態(ハイバネーション) - 昨年、Android に権限の自動リセット機能を追加しました。しばらく使用されず、ユーザーに存在を忘れられたアプリがユーザーのデータにアクセスできないようにするための機能ですが、ここ 2 週間で 850 万もの Android アプリが権限をリセットされています。Android 12 では、権限の自動リセットをさらに発展させ、長期間使用されなかったアプリを自動的に休止状態に切り替え、デバイスのストレージ容量、パフォーマンス、安全性をより改善する機能を導入します。

休止状態はユーザーが以前に許可した権限を取り消すだけでなく、アプリを強制停止してメモリやストレージ、その他の一時リソースを解放します。この状態になると、アプリがバックグラウンドでジョブを実行したりプッシュ通知を受け取ったりできなくなるため、ユーザーのデータが安全に保たれます。通常はユーザーに通知せずに休止状態を適用することをお勧めしますが、アプリで無効にする必要がある場合は、[Settings] からこの機能を無効にするようユーザーに通知してください。詳しくはこちらをご覧ください


近くのデバイスを探す権限
- これまで、アプリで Bluetooth スキャンを行うには位置情報を取得する権限が必要で、近くのデバイスとペア設定する必要があるけれどもデバイスの位置情報は必要としないアプリにとっては問題になっていました。

Android 12 では、位置情報の権限を得なくてもアプリで Bluetooth スキャンを実行して近くのデバイスを探せるようになりました。Android 12 をターゲットとするアプリでは、usesPermissionFlags=”neverForLocation” 属性を設定した BLUETOOTH_SCAN 権限を使用してスキャンを実行できます。デバイスとのペア設定が完了したら、BLUETOOTH_CONNECT 権限を使用して通信を開始できます。

これらの権限を使用することで、プライバシーに配慮した設計を採用しながら、アプリを利用する際のユーザーの抵抗感を減らすことができます。詳しくはこちらをご覧ください

おおよその位置 - Android では最近、フォアグラウンドでのアクセスとバックグラウンドでのアクセスを別々に管理する設定や、「今回のみ」アクセスを許可するオプションなど、位置情報へのアクセスをきめ細かく管理する方法をいくつか導入しています。

Android 12 をターゲットとするアプリでは、「おおよその位置」を選択できるオプションが導入され、よりきめ細かい管理が可能になりました。アプリが正確な位置情報を要求した際に正確な位置情報とおおよその位置情報のどちらの取得を許可するかユーザーが選択できます。位置情報の正確さは [Settings] からいつでも変更できます。アプリで正確な位置情報(ACCESS_FINE_LOCATION)を要求する場合は、この変更点を考慮し、おおよその位置情報だけでもアプリが問題なく機能するようにしてください。

一般的な用途で位置情報を利用するのであれば、通常はおよその位置情報(ACCESS_COARSE_LOCATION)のみを要求することをお勧めします。詳しくはこちらをご覧ください

アプリの互換性

Android 12 とアプリの互換性をまだテストしていない方は、ぜひ、早めに着手することをお勧めします。Android 12 Beta 1 は、Pixel デバイスやほかのデバイスで、先行登録したユーザーと、デベロッパーの皆さんが利用可能です。つまり、今後数週間にあなたのアプリを Android 12 上でより多くのユーザーが利用し、問題点を報告してくる可能性があるということです。 

互換性をテストするには、Google Play やその他のソースから、Android 12 Beta 1 を実行するデバイスまたはエミュレータにインストールし、アプリのすべてのフローで動作を検証してください。動作の変更点を改めて確認することで、的を絞ったテストを実施できます。問題を解決したら、できるだけ早くアップデートを公開しましょう。

Beta 1 のリリースにより、私たちは 2021年 8 月に予定している Platform Stability の達成に一歩近付きました。プラットフォームの安定性が達成されると、アプリに関連するシステムの動作、SDK と NDK API、非 SDK のリストが最終的に決定されます。この時点で互換性の最終テストを完了し、完全な互換性が確認されたアプリ、SDK、ライブラリのバージョンをリリースできるようにしましょう。デベロッパー向けのスケジュールの詳細については、こちらをご覧ください。 

Android 12 をダウンロードしましょう

リリースした Beta 1 には、Android 12 の機能を試し、アプリをテストし、フィードバックを送信するために必要なすべてのものが揃っています。ここからサポート対象の Pixel デバイスを登録して、OTA アップデートを受け取ってください。既にプレビュー ビルドをインストールしている場合は、Beta 1 のアップデートが自動で送信されます。開発を始めるには、SDK を設定してください。 

Android 12 デベロッパー プレビューに参加している大手デバイスメーカー パートナーのデバイスにも、一部 Android 12 Beta 1 を使用できるものがあります。android.com/beta に、パートナーの一覧と、サポート対象のデバイスの詳細を説明したサイトへのリンクが記載されています。登録とサポートは各パートナーが管理しており、Beta 1 のアップデートもパートナーから直接提供されます。 

サポートされている複数のデバイスを対象としたより広範囲なテストを行うには、Android GSI イメージで Android 12 Beta 1 を実行してください。デバイスをお持ちでない場合は、Android Emulator でテストを実行できます。Android Studio の SDK Manager から最新のエミュレータのシステム イメージをダウンロードしてください。 

Beta 1 の入手方法の詳細については、Android 12 のデベロッパー向け Web サイトをご覧ください。 


Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC

この記事は、株式会社メルカリ Software Engineer, Engineering Division Howie Zuo さんに寄稿いただいたゲスト記事です。
この記事は、株式会社メルカリ Software Engineer, Engineering Division Howie Zuo さんに寄稿いただいたゲスト記事です。


デザインシステム(Design System)はプロダクト開発において重要な役割を担うようになっています。オープンソースのデザインシステムを採用する例や、自社のデザインシステムを構築する例は多くみられます。筆者も株式会社メルカリのデザインシステムプロジェクトのエンジニアとして、Jetpack Compose を使ったデザインシステムの実装をしました。今回は、その実装方法をご紹介します。

はじめに

Material Design というデザインシステムがすでに存在しているのに、「なぜ別で構築する必要があるのだろうか?」という疑問を持つ方もいらっしゃるのではないでしょうか。プロダクトデザインの世界には、Material Design のスペックがフィットしないケースが多々あります。複数のプラットフォーム(Android、iOS、Webなど)を同時にサポートしたいときや、特別なユーザー体験を提供したいときなど、Material Design をある程度カスタマイズし、拡張することが必要になります。

必要な知識 :


注意 :

  • 本記事はデザインシステムそのものに関する説明ではありません。

  • 本記事にあるソースコードは Jetpack Compose 1.0.0-beta01 と Android Studio Arctic Fox Canary 13 で構築したものです。

  • DLS は Design (Language) System の略称で、コードのコンフリクトを避けるために、プレフィックスとして使われています。


デザイン

技術的観点に集中するために、とてもシンプルなデザインシステムを用意しました。プロダクトレベルのデザインシステムとの違いは規模感(スタイルの数と種類)だけで、基本の考え方は変わりません。




ご覧のとおり、多くのデザインシステムにおいてよく使われている 3 種類のスタイルを用意しました。これから実装していきます。


Style(Token)

まず使用する色を定義します。これらをまとめたカラーパレットを用意することで、テーマやブランドに応じて配色を切り替えられるようにします。

object DlsColors 
{    val primary = Color(0xFF3366FF)
    val background = Color(0xFFFFFFFF)
    val backgroundReverse = Color(0xFF192038)
    val basic = Color(0xFF8F9BB3)
    val disable = basic.copy(alpha = 0.24f)
    val text = Color(0xFF192038)
    val textReverse = Color(0xFFFFFFFF)
    val success = Color(0xFF00E096)
    val link = Color(0xFF0095FF)
    val warning = Color(0xFFFFAA00)
    val error = Color(0xFFFF3D71)}

次にカラーパレットのインターフェースを定義します。materialColors は MaterialTheme の色をオーバーライドするために用意しました。

interface DlsColorPalette {
    val primary: Color
    val background: Color
    val basic: Color
    val disable: Color
    val text: Color
    val success: Color
    val link: Color
    val warning: Color
    val error: Color
    val materialColors: Colors}


定義したカラーパレットを実装することで、実際の配色を定義します。次の dlsLightColorPalette はデザインシステムのカラーパレットとカスタマイズされた MaterialTheme カラーを返します。

fun dlsLightColorPalette(): DlsColorPalette = object : DlsColorPalette {
    override val primary: Color = DlsColors.primary
    override val background: Color = DlsColors.background
    override val basic: Color = DlsColors.basic
    override val disable: Color = DlsColors.disable
    override val text: Color = DlsColors.text
    override val success: Color = DlsColors.success
    override val link: Color = DlsColors.link
    override val warning: Color = DlsColors.warning
    override val error: Color = DlsColors.error
    override val materialColors: ColorPalette = lightColorPalette(
        primary = DlsColors.primary
    )}


MaterialTheme のカラーをオーバーライドすることは必須ではありません。オーバーライドすることによってアプリの全体にわたる色の指定ができ、UI 実装時に色を指定するコードを減らすことができます。

同様にダークモード用のカラーパレットも用意します。

fun dlsDarkColorPalette(): DlsColorPalette = object : DlsColorPalette {
    override val primary: Color = DlsColors.primary
    override val background: Color = DlsColors.backgroundReverse
    override val basic: Color = DlsColors.basic
    override val disable: Color = DlsColors.disable
    override val text: Color = DlsColors.textReverse
    override val success: Color = DlsColors.success
    override val link: Color = DlsColors.link
    override val warning: Color = DlsColors.warning
    override val error: Color = DlsColors.error
    override val materialColors: Colors = darkColors(
        primary = DlsColors.primary
    )}

dlsDarkColorPalettedlsLightColorPalette と基本同じですが、background と text の色が入れ変わっています。なお、プロダクトレベルのデザインシステムでは、カラーテーマごとに違うパレットを用意するといった構築方法も利用されます。

サイズ指定

サイズの定義はとてもシンプルです。デバイス画面のサイズによってサイズを変更するといった複数のバリエーションを持つ必要がある場合は、カラーパレットと同様の方法で対応できます。

data class DlsSize internal constructor(
    val smaller: Dp = 4.dp,
    val small: Dp = 8.dp,
    val medium: Dp = 16.dp,
    val large: Dp = 32.dp,
    val larger: Dp = 64.dp)


Typography

タイポグラフィもサイズの定義と同様、シンプルに定義します。テーマに応じてフォントを使い分ける必要がある場合、また言語によって使用するフォントを切り替えたい場合など、複数のフォントバリアントのサポートが必要な場合があります。その場合は、配色と同様に実装することで対応できます。

@Immutable
data class DlsTypography internal constructor(
    val headline1: TextStyle = TextStyle(
        fontSize = 36.sp,
        fontWeight = FontWeight.Bold,
        lineHeight = 48.sp
    ),
    
    ......
    
    val button: TextStyle = TextStyle(
        fontSize = 14.sp,
        fontWeight = FontWeight.Bold,
        lineHeight = 16.sp
    ),
    val materialTypography: Typography = Typography(         body1 = paragraph1     ))

materialTypography は、materialColors と同様、MaterialTheme のフォントをオーバーライドするために用意しました。


テーマ(ブランド)

MaterialTheme を利用することで、Material Design に対応した UI を作成できます。しかしサンプルとして作成しているデザインシステムは Material Design をベースにしたものではないため、独自の テーマ(ブランド) を追加する必要があります。

@Composable
fun DlsTheme(
    colors: DlsColorPalette = dlsLightColorPalette(),
    typography: DlsTypography = DlsTypography(),
    children: @Composable() () -> Unit) {
    CompositionLocalProvider(
        LocalDlsColors provides colors,
        LocalDlsTypography provides typography,
    ) {
        MaterialTheme(
            colors = colors.materialColors,
            typography = typography.materialTypography
        ) {
            children()
        }
    }}
object DlsTheme {     val colors: DlsColorPalette         @Composable         @ReadOnlyComposable         get() = LocalDlsColors.current
    val typography: DlsTypography         @Composable         @ReadOnlyComposable         get() = LocalDlsTypography.current
    val sizes: DlsSize         @Composable         @ReadOnlyComposable         get() = DlsSize()}
internal val LocalDlsColors = staticCompositionLocalOf { dlsLightColorPalette() } internal val LocalDlsTypography = staticCompositionLocalOf { DlsTypography() }

コンポーザブル関数 DlsTheme  はテーマ(ブランド)によって変化する可能性のあるスタイルを外から受け取れます。サンプルとして作成している デザインシステムの場合、 配色と、タイポグラフィ を受け取れます。DlsTheme は MaterialTheme をラップしています。Material Design の機能とスタイルをデザインのベースとして流用することで、デザインシステムの実装コストを大幅に減らすことを目的としています。

CompositionLocalProviderstaticCompositionLocalOf について少し説明します。

CompositionLocalProvider でプロバイドしたスタイルバリュー(サンプルでは Color とTypography)は CompositionLocalProvider の下の階層のどこでも CompositionLocal.currentLocalDlsColors.currentLocalDlsTypography.current)でアクセスすることができます。そのバリューを変更すると CompositionLocal.current も自動的に更新されます。CompositionLocal についての詳しい説明は長くなるため、本ブログ記事では割愛します。


デモ

デザインシステムのスタイルとテーマが完成したので、使い方を説明します。

DlsTheme {
    Surface(
        modifier = Modifier.fillMaxSize(),
        color = DlsTheme.colors.background
    ) {
          Text(
              text = "TEXT",
              color = DlsTheme.colors.success,
              style = DlsTheme.typography.paragraph1
          )
    }}

まず、デザインシステムを適用したい画面を DlsTheme でラップします。必要なスタイルは DlsTheme からアクセスできます。MaterialTheme の使い方は変わりません。



ダークモードなどの違うテーマをサポートするときは、DlsTheme にスタイルを渡すことで実現できます。

val isDarkState = mutableStateOf(false)
setContent {
    DlsTheme(
        colors = if (isDarkState.value) dlsDarkColorPalette() else dlsLightColorPalette()
    ) {
        Surface(
            modifier = Modifier.fillMaxSize(),
            color = DlsTheme.colors.background
        ) {
            Column(
                verticalArrangement = Arrangement.Center,
                horizontalAlignment = Alignment.CenterHorizontally
            ) {
                Text(
                    text = if (isDarkState.value) "Is Dark" else "Is Light",
                    color = DlsTheme.colors.text,
                    style = DlsTheme.typography.paragraph1
                )
                Spacer(modifier = Modifier.height(DlsTheme.sizes.medium))
                Button(                     onClick = {                         isDarkState.value = !isDarkState.value                     }                 ) {                     Text(                         text = text,                         style = DlsTheme.typography.button                     )                 }             }         }     }}




コンポーネント

Jetpack Compose を使うとデザインシステムコンポーネントを簡単に実装できます。デザインシステムを実装する上で優れていると感じた点を紹介します。

1. API レベル制限がない


Android エンジニアであれば、一行のコードで問題解決できると思ったのに、最小 API レベルがあわず、利用したかった機能が使えなかった、という体験をしたことがあるでしょう。

このようなことは Jetpack Compose には存在しません。Jetpack Compose は SDK ではなく Android X のライブラリとして提供されています。API レベルを気にすることなく、新しい機能を使うことができます。

2. ほぼ Kotlin 100%

これは Kotlin 愛好者たちにとって素晴らしいニュースだと思います。


上のような  Avatar コンポーネントを実装する場合を考えてみましょう。


従来の Android UI システムで実装した場合のソースコード :

  • Style と Size バリアント

<style name="Dls.Component.Avatar">
    <item name="android:background">@drawable/shape_avatar_background</item>
    <item name="android:adjustViewBounds">true</item>
</style>
<style name="Dls.Component.Avatar.Large">     <item name="android:layout_width">?attr/dlsSizeLarge</item>     <item name="android:layout_height">?attr/dlsSizeLarge</item>     <item name="android:minWidth">?attr/dlsSizeLarge</item>     <item name="android:minHeight">?attr/dlsSizeLarge</item>     <item name="android:maxWidth">?attr/dlsSizeLarge</item>     <item name="android:maxHeight">?attr/dlsSizeLarge</item> </style>
<style name="Dls.Component.Avatar.Medium">     <item name="android:layout_width">?attr/dlsSizeMedium</item>     <item name="android:layout_height">?attr/dlsSizeMedium</item>     <item name="android:minWidth">?attr/dlsSizeMedium</item>     <item name="android:minHeight">?attr/dlsSizeMedium</item>     <item name="android:maxWidth">?attr/dlsSizeMedium</item>     <item name="android:maxHeight">?attr/dlsSizeMedium</item> </style>
<style name="Dls.Component.Avatar.Small">     <item name="android:layout_width">?attr/dlsSizeSmall</item>     <item name="android:layout_height">?attr/dlsSizeSmall</item>     <item name="android:minWidth">?attr/dlsSizeSmall</item>     <item name="android:minHeight">?attr/dlsSizeSmall</item>     <item name="android:maxWidth">?attr/dlsSizeSmall</item>     <item name="android:maxHeight">?attr/dlsSizeSmall</item> </style>

  • デフォルト Size バリアント用の attribute 定義(必要な場合)

<!-- attrs.xml -->
<attr name="dlsStyleAvatarMedium" format="reference" /> 
<!-- themes.xml --> <item name="dlsStyleAvatarMedium">@style/Dls.Component.Avatar.Medium</item>

  • カスタマイズビュー(ここから Kotlin)

class Avatar @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = R.attr.dlsStyleAvatarMedium) : ImageView(context, attrs, defStyleAttr) {
    init {
        // make the image be clipped by circle background
        clipToOutline = true
    }}

このように、従来の Android UI システムを利用した方法ではデザインシステムのスタイルを適用するために XML と Kotlin の両方を使わなければなりませんでした。また、XML で定義したどのようなスタイルが実際に適用されるのか、プレビューで確認するのは難しく、実際にビルドしてみなければならないことがほとんどでした。

次に Jetpack Compose でデザインシステムを適用する場合を見てみましょう。


Jetpack Compose で実装した場合のソースコード :

  • Kotlin ファイル 1 つのみ

object Avatar {
    sealed class SizeVariant {
        @get:Composable
        abstract val value: Dp
        object Small : SizeVariant() {             override val value: Dp                 @Composable                 get() = DlsTheme.sizes.small         }
        object Medium : SizeVariant() {             override val value: Dp                 @Composable                 get() = DlsTheme.sizes.medium         }
        object Large : SizeVariant() {             override val value: Dp                 @Composable                 get() = DlsTheme.sizes.large         }     }}
@Composable fun Avatar(     painter: Painter,     sizeVariant: Avatar.SizeVariant = Avatar.SizeVariant.Medium onClick: (() -> Unit)? = null) { val clickable = if (onClick != null) Modifier.clickable(onClick = onClick) else Modifier     Box(         modifier = Modifier             .size(sizeVariant.value)             .clip(CircleShape) .then(clickable)     ) {         Image(             painter = painter,             contentDescription = null,             modifier = Modifier.fillMaxSize(),             contentScale = ContentScale.Crop         )     }}

このように Jetpack Compose では UI の実装に XML と Kotlin を併用する必要はほとんどありません。もちろん、Jetpack Compose でも XML リソースファイルを使う必要があるケース(画面のオリエンテーションのハンドリングなど)が存在しますが、基本的に Kotlin のみでコンポーネントの実装ができると言えるでしょう。


3. 可視性制御

従来の Android UI システムでは XML ファイルに定義されているリソース(dimen、style など)はプロジェクトでグローバルに参照することができ、別 module にある同名の定義に上書きされる可能性があります。

prefix(dls_internal_など)をつけて重複を回避する解決法がありますが、根本的な解決策ではありません。

<attr name="dlsInternalStyleRow" format="reference" />

これもまた Kotlin のおかげで解決できます。Jetpack Compose は Kotlin のコードであるため、Kotlin の可視性修飾子を使ってデザインシステム内部の定義を Private にするなど、簡単に可視性を制御できます。

private const val LINE_HEIGHT_MULTIPLIER = 1.4
@Composable internal fun ClearIcon(     onClick: () -> Unit,     modifier: Modifier = Modifier) {     IconButton(         onClick = onClick,         modifier = modifier     ) {         Icon(             painter = DlsIcons.deleteFilled,             modifier = Modifier.size(DlsTheme.sizing.measure20),             tint = DlsTheme.colors.iconDisabled         )     }}

4. 全ては Composable

これはデザインシステムを実装するにあたって強い機能だと思います。

例えば、従来の Android UI システムでは、サブビューをパラメータとして受けとって表示できるコンポーネントを作る場合にどれくらい大変か想像してみてください。これはデザインシステムコンポーネントのデザインによくある設計です。


Jetpack Compose を使えば、Composable 関数を使ってコンポーネントを構築することが一般的です。

@Composable
fun ListItem(
    title: String,
    // accept a Composable body
    body: @Composable RowScope.() -> Unit) {
    Row(
        Modifier.padding(DlsTheme.sizes.medium)
    ) {
        Text(
            text = title,
            modifier = Modifier.padding(end = DlsTheme.sizes.small),
            color = DlsTheme.colors.text,
            style = DlsTheme.typography.headline3
        )
        body()     }}
// usage example ListItem(title = "Title") {     Text(         text = "Custom Body",         modifier = Modifier             .weight(1f)             .fillMaxHeight()             .border(1.dp, color = DlsTheme.colors.success),         color = DlsTheme.colors.success,         textAlign = TextAlign.Center,         style = DlsTheme.typography.headline3     )}

コンポーネントのタイトルの右側に表示したいサブビューを body パラメータで受け取ることができます。


まとめ

ご覧のとおり、デザインシステムと Jetpack Compose は相性が良いので、もしデザインシステムに対応する Android アプリを構築する場合には、ぜひ Jetpack Compose に移行することをお勧めします。


Source Code

https://github.com/howiezuo/design-system-compose




この記事は Karen Ng、Jacob Lehrbaum による Android Developers Blog の記事 "What's new for Android developers at Google I/O" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Android デベロッパーの皆さんは、世界中の人々を喜ばせるエクスペリエンスを作り出そうと日々努力を重ねています。人々がこれまでになくアプリを必要としている今、期待も大きくなり、デベロッパーとしての仕事の難易度も高まっています。私たちは Google I/O で、デベロッパーの皆さんをサポートするためにリリースした新機能をいくつか発表しました。過去最大級のデザイン変更を行った Android 12 や、高品質の優れたアプリ開発をサポートする Jetpack、Jetpack Compose、Android Studio、Kotlin などです。また、ウェアラブルデバイスや大画面対応が進むデバイスを通して、ユーザーによるアプリの使用シーンを広げるお手伝いをしています。こちらの Developer Keynote でもカバーしていますが、この記事でいくつかをハイライトしてご紹介します。 

この記事は Karen Ng、Jacob Lehrbaum による Android Developers Blog の記事 "What's new for Android developers at Google I/O" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Android デベロッパーの皆さんは、世界中の人々を喜ばせるエクスペリエンスを作り出そうと日々努力を重ねています。人々がこれまでになくアプリを必要としている今、期待も大きくなり、デベロッパーとしての仕事の難易度も高まっています。私たちは Google I/O で、デベロッパーの皆さんをサポートするためにリリースした新機能をいくつか発表しました。過去最大級のデザイン変更を行った Android 12 や、高品質の優れたアプリ開発をサポートする Jetpack、Jetpack Compose、Android Studio、Kotlin などです。また、ウェアラブルデバイスや大画面対応が進むデバイスを通して、ユーザーによるアプリの使用シーンを広げるお手伝いをしています。こちらの Developer Keynote でもカバーしていますが、この記事でいくつかをハイライトしてご紹介します。 


Android 12: 過去最大級のデザイン アップデート

Android 12 は最初のベータ版のロールアウトがはじまったばかりですが、素晴らしい機能が満載です。ユーザーの安全のための機能である、Bluetooth や推定位置情報の利用許可、優先ジョブやスタートアップ アニメーションなどといったパフォーマンスの改善、よりインタラクティブなウィジェットやストレッチ オーバー スクロールなどの楽しいエクスペリエンスまで、このリリースで Android は過去最大級のデザイン アップデートをしています。

Android 12 Beta 1 の内容の詳細についてはこちらをご覧ください。内容をご確認いただき、年内公開のコンシューマ リリースに向けて、アプリの準備を始めてください。今すぐベータ版をダウンロードして、あなたのアプリでお試しください。

Jetpack Compose: 7 月リリースの 1.0 に備えましょう

ここ数年間、私たちは Android 開発エクスペリエンスを進化することに取り組んできました。デベロッパーの皆さんのフィードバックに耳を傾け、フィードバックにオープンであり続けました。それが、Android の特徴だからです。しかしながら、自分たちが正しいと信じることに関しては、妥協しないよう心がけてきました。このことは、Android Studio(デベロッパーに合わせることができる高性能 IDE) 、Kotlin(より少ないコードでより多くのことを実現できるプログラミング言語)、Jetpack ライブラリ(後方互換性でモバイルに関連する最も難しい問題を解決するライブラリ)を通して、おわかりいただけるでしょう。

このオファリングの次のステップは Jetpack Compose、あらゆる Android デバイス向けの優れたアプリを簡単に構築できる最新 UI ツールキットです。私たちは、ここ Google I/O で 2 年前に Compose を発表し、それ以来新しいバージョンを公開しながら強化を重ね、フィードバックに耳を傾け、反映させてきました。今年はじめに公開した Compose Beta 版 では、世界中のデベロッパーの皆さんが、すばらしく革新的なエクスペリエンスを提供するアプリを通常の半分ほどの時間で作り出すことも実現されています(株式会社メルカリのケーススタディ)。また、Compose を使ったコンテストである #AndroidDevChallenge へのデベロッパーの皆さんからの熱い反響に、私たちはとても感動しました!

次回の Material You のアップデート(詳細はこちら)では、新しい マテリアル コンポーネントを追加し、大画面に対応する開発をさらにサポートする予定です。短期間で楽に素晴らしい UI を作成できるようになります。Compose のテストは最後の追い込み中です。1.0 Stable は 7 月にリリース予定です。ご準備ください。



Android Studio Arctic Fox: 設計、デバイス、デベロッパーの生産性を向上 

公式の強力な Android IDE の最新リリース、Android Studio Arctic Fox (2020.3.1) Beta が、2021 年 5 月 19 日(現地時間 5 月 18 日)に公開されました。より楽に、より短期間で良質なアプリを開発できるようデベロッパーをサポートする IDE です。このツールスイートを提供しアップデートすることで、私たちは 3 つの主要テーマを強化してきました。そのテーマとは、UI 設計期間の短縮、新しいデバイスへのアプリ拡張、デベロッパーの生産性向上です。この最新リリースと Compose を合わせて使うことで、最新の UI を作成することができます。複数のデバイスでのテスト結果をご覧ください。そして App Inspector で、デバッグ データベースとバックグラウンド タスクを最適化してください。また、Accessibility Scanner (ユーザー補助検証ツール)を用いるとアプリがより使いやすく、Memory Profiler を用いるとアプリがより高性能になります。開発期間短縮のため、Android Gradle プラグイン 7.0、新しい DSL、さまざまな API を用意しました。Android Studio アップデートの詳細についてはこちらをご覧ください。


Kotlin: Android デベロッパーに最も使われている言語

最近の調査によると、Kotlin はいまや、プロの Android デベロッパーに最も使われている第 1 言語です。実際、Google Play Store の 120 万以上のアプリで Kotlin が使用されています。これには、トップ 1000 アプリの 80% が含まれます。Google でも、Kotlin は愛されています。Drive、Home、Maps、Play など 70 以上の Google アプリで Kotlin が使用されています。そして Kotlin の注釈処理のために新しく作られた、まったく新しいネイティブソリューション、Kotlin Symbol Processing が本日リリースされました。Kotlin のコードを直接解析するための、強力だがシンプルな API です。Room のようなライブラリで最大 2 倍の速度を誇ります。


Android Jetpack:ボイラープレートではなく機能を記述 

Android Jetpack で開発されたライブラリ スィートを利用すると、ボイラープレート コードが減り、本来のコードに集中することができます。現在、トップ 10,000 アプリの 84% 以上で Jetpack ライブラリが使用されています。そして 5 月 19 日(現地時間 5 月 18 日)、Jetpack 向けの新リリースがいくつか公開されました。アプリをリリースする前にアプリの起動に影響を与える大きなインタラクションやジャンクを把握するための Jetpack Macrobenchmark(Alpha)、Jetpack DataStore(Beta)を介してデータをより効率良く維持するための新しい Kotlin Coroutines API などです。Android Jetpack のアップデートの詳細についてはこちらをご覧ください。 


今こそ Wear のために大きな一歩を踏み出す時

最新の Android 開発環境を構築する上で、私たちが心掛けているもっとも大事なことは、これらのツールを提供することで 皆さんがより容易に Android の次の時代を切り開いていけるようにするということです。そしてそれは、電話と各種デバイス(テレビ自動車時計タブレット)が接続し、連携することで生まれる新たな世界を実現することに他なりません。 

今日 5 月 19 日(現地時間 5 月 18 日)から私たちは、ウェアラブルにむけて大きな一歩を踏み出します。まず、Samsung と合同で Wear と Tizen の長所を組み合わせた統合プラットフォームを構築すると発表しました。次に、刷新した Google アプリによる新しいコンシューマ エクスペリエンスをベストプラクティスとして共有しました。3 つめとして、Fitbit の世界クラスの健康フィットネス サービスをプラットフォームに取り入れることにしました。これは、Android デベロッパーにとっては、手が届く範囲が広がること、そしてモバイルアプリを素晴らしいものとする既存のスキル、ツール、API のすべてを使えることを意味します。結果として、世界中の人に使われる単一のウェアラブルプラットフォームが構築されるのです。 

Wear 向けの新しい Jetpack API は、小型スクリーン用に調整し、バッテリーの寿命を伸ばすために設計しました。Jetpack Tiles API を使えば、Wear エコシステムの中のあらゆるデバイス向けカスタムタイルを作成できます。他にも Wear での開発を支援する新しい機能がたくさんあります。Samsung と共同してつくられた健康フィットネス向けの新しい API セットを使用すると、センサーやメトリクス計算のデータ コレクション(心拍数、カロリー、毎日の移動距離など)が、1 つの信頼できるデータソースから取得された、無駄のない、一貫性を持った、正確なデータになります。これらすべてが新しいツールにまとめられて、Android Studio Arctic Fox Beta でリリースされています。アプリをテストするための簡易なペアリングや、エミュレータでの仮想の心拍数センサーまで揃っています。アプリが配信されたら、ユーザーは、大きくアップデートされアプリの見つけやすさも向上した Google Play で、 より容易に Wear アプリの世界を楽しむことができます。Wear アップデートの詳細については、こちらをご覧ください。 



タブレット、Chrome OS、折りたたみ式など、画面の大型化

タブレット、折りたたみ式デバイス、Chrome OS ノートパソコンなど、スマホのコンテンツをより大きな画面で体験するユーザーが増えています。人々は、家族や友人とのつながりを保ったり、学校に行ったり、リモートワークしたりする目的で、大型画面デバイスにますます依存するようになっています。実際に使用されている大型画面の Android デバイスは 2 億 5000 万台を超えています。Chrome OS は昨年、PC 市場の成長率の 5 倍、前年比で +92% 成長しました。その結果、Chrome OS は最速の成長を遂げて、2 番目に人気のデスクトップ OS になりました。この機会を掴むべく、大型画面でのエクスペリエンスをより簡単に最適化するための API と各種ツールを用意しました。たとえば、SlidingPaneLayout 1.2.0 と新しい垂直ナビゲーション レール コンポーネントを使うと大きくなった空間に合わせてコンテンツのサイズが自動調整されます。コンポーネントの幅を最大化することで UI が間延びしないようにします。また、プラットフォーム、Chrome OS、および Jetpack windowmanager がアップデートされたため、デフォルトでもアプリが問題なく動作します。詳細についてはこちらをご覧ください。 


Google Duo の折りたたみ式デバイス対応最適化エクスペリエンス


以上のことは、高品質の Android アプリを構築しやすくする、新しい方法のほんの一部です。5 月 19 日(現地時間 5 月 18 日)以降、私たちは Android と Google Play に関するテクニカル セッションを 20 以上公開し、バックグラウンド タスク、プライバシー、Android における機会学習、Android 12 に備えるトップ 12 のヒントなど、さまざまなトピックを扱います。自動車、テレビ、ウェアラブルの構築を担当する方のためのセッションもあります。こうしたセッションなどのすべての情報は、I/O の Web サイトにあります。今年の Google I/O では、セッションやニュースだけでなく、Google 関係者や他のデベロッパーとバーチャルにつながることができる楽しい仕掛けがたくさんあります。I/O Adventure の Android ドームをチェックしてください。新しいブログ投稿、ビデオ、コードラボなどをご覧いただけます。Jetpack Compose スキルを試したり、ドーム内部の自動車を巡るバーチャルツアーにもご参加ください!(注:会期外でアクセスできないプログラムがありますのでご了承ください)


Reviewed by Yuichi Araki - Developer Relations Team and Tamao Imura - Developer Marketing Manager, Google Play

この記事は Bert de Weerd、Tingmui Li による Android Developers Blog の記事 "Updated guidance to improve your app quality and discovery on Google Play" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

2008 年に Google Play が登場したとき、Play ストアにはまだ数百程度のアプリやゲームしか公開されていなかったため、デベロッパーはユーザーに簡単に見つけてもらうことができました。しかし現在では、190 か国以上のユーザーに数百万個のアプリやゲームが公開されており、ユーザーが何をダウンロードするか決めるために、プロモーション画像、動画、説明文、さらにはアプリの名前も含め、ユニークなアセットを Play ストアにご提供いただくことが大変重要になっています。

この記事は Bert de Weerd、Tingmui Li による Android Developers Blog の記事 "Updated guidance to improve your app quality and discovery on Google Play" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

2008 年に Google Play が登場したとき、Play ストアにはまだ数百程度のアプリやゲームしか公開されていなかったため、デベロッパーはユーザーに簡単に見つけてもらうことができました。しかし現在では、190 か国以上のユーザーに数百万個のアプリやゲームが公開されており、ユーザーが何をダウンロードするか決めるために、プロモーション画像、動画、説明文、さらにはアプリの名前も含め、ユニークなアセットを Play ストアにご提供いただくことが大変重要になっています。

Google Play では、デベロッパーのアセットが目立つように表示機会を増やしており、例えば Play ストアのアプリやゲームの「ホーム」ページでも、より多くのグラフィック アセットや説明を掲載するようになっています。ストアの掲載情報のアセットが、より正しい方法でアプリ内体験やゲーム内体験への期待を高め、ユーザーの満足度が高いダウンロードを導けるようにするため、以下の対応を行います。

  1. アプリのメタデータに関するポリシー変更(事前告知)
  2. ストアに掲載するプレビュー アセットに新しいガイドラインを導入


アプリのメタデータに関するポリシー変更(事前告知)

アプリのタイトル、アイコン、デベロッパー名は、ストアの掲載情報ページの中でも、アプリやゲームを見つけるときに特に重要になる要素です。そのため、これらの要素をわかりやすくして独自性を高めるため、以下に重点を置いて、新しいポリシーを導入する準備を進めています。

  • アプリのタイトルの長さを 30 文字以内に制限する

  • アイコンやタイトル、デベロッパー名に、Google Play ストアでの実績を示唆するキーワードや宣伝を含めることを禁止する

  • ユーザーに誤解を与える可能性があるグラフィック要素をアプリアイコンから排除する


導入予定のポリシーを満たさないアプリのタイトル、アイコン、デベロッパー名は、Google Play で利用できなくなります。 適用開始日など、このポリシー変更の詳細については、今年中にあらためてお伝えします。

以下の必要事項と禁止事項の例をご確認ください。Google Play で配信しているご自身のアプリまたはゲームへの影響について検討し、導入予定のポリシー変更に対する準備を開始されることをお勧めします。


アプリのタイトルとブランド名は、明確かつ正確に設定する。また、アプリのタイトルは、30文字以内とする


ストアでの実績やランク:

1. 特典などを宣伝するためにアイコン画像にテキストを入れない
2. ストアランキング等のテキストをプロモーションとして使用しない



価格や宣伝に関する情報:

1. 特典や割引などを含む情報をテキストや画像に使用しない


ユーザーに誤解を与える Play プログラムやグラフィックの要素:

1. Google Play の機能やプログラムを表すようなテキストや、インストールを促すテキストを使用しない
2. Google Play の機能やプログラムを表すようなグラフィックや、ユーザーに誤解を与えるような要素を使用しない


絵文字、繰り返しまたは連続した特殊文字や句読点:

1. アルファベット大文字を使用しない (あなたのブランドが大文字である場合を除く)
2. アプリに無関係な連続した特殊文字を使用しない
3. 顔文字や絵文字は使用しない


ストアに掲載するプレビュー アセットに関する新しいガイドライン

アプリの特長や機能を紹介するためのフィーチャー グラフィック、スクリーンショット、動画、簡単な説明など、ストアの掲載情報のプレビュー アセットに関する新しいガイドラインについてもお知らせします。このガイドラインを満たさないアセットは、アプリとゲームのホームなど、主要な Google Play 上の表示箇所でプロモーションやおすすめの対象にならない可能性があります。

デベロッパーが提供するアセットに関する新しいガイドラインは、以下の原則に基づいています。


  • プレビュー アセットはアプリやゲームを的確に表しているか?

  • プレビュー アセットはユーザーがインストールするかどうか決める際に役立つ十分な情報を提供しているか?

  • プレビュー アセットに「無料」や「最高」などのありふれたキーワードが含まれておらず、アプリやゲームの独自の特徴について価値のある情報を提供することに重点が置かれているか?

  • プレビュー アセットが適切に Play ストアの地域に合わせて翻訳やローカライズがされており、読みやすくなっているか?


アプリやゲームが Google Play のすべての表示箇所でおすすめの対象となるように、ストアの掲載情報の新しいガイドラインをご確認ください。このガイドラインは、2021 年後半より、おすすめの表示に利用されます。

今回お知らせした内容が、アプリ デベロッパーの皆さんにとって、今後のロードマップを計画するうえで参考となりましたら幸いです。また、Play ストアがさらに便利で魅力的なものになるように、この取り組みを皆さんと一緒に推し進めていきたいと願っております。


Reviewed by Chongsa Kim - Head of Japan Games Business Development,  Konosuke Ogura -  Konosuke Ogura - Trust & Safety - Play & Android, Global Policy & Operations Lead, Hidenori Fujii - Google Play Developer Marketing APAC