ナビゲーション ビュー

ナビゲーション ドロワーは、アプリの独自性やナビゲーションにおいて重要な焦点となります。この部分のデザインの一貫性は、特に初めてアプリを使うユーザーにとって、アプリのナビゲーションのわかりやすさという点で、大きな違いを生み出します。NavigationView はナビゲーション ドロワーに必要なフレームワークを用意することで、これをより簡単に実現できるようにします。また、NavigationView を使うことで、navigation item をメニュー リソースを使ってインフレートすることができます。
NavigationView は、次のようなレイアウトで DrawerLayout のドロワー コンテンツ ビューとして使用します。
<android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

    <!-- your content layout -->

    <android.support.design.widget.NavigationView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/drawer_header"
            app:menu="@menu/drawer"/>
</android.support.v4.widget.DrawerLayout>
NavigationView: には 2 つの属性があります。app:headerLayout は、ヘッダーに使用されるレイアウト(任意の)をコントロールします。app:menu はアイテムのナビゲーション用にインフレートされるメニュー リソースです(実行時に変更も可能)。 NavigationView は、ステータスバーのスクリム保護を処理します。 これにより、API 21 以上の端末では NavigationView はステータスバーと適切にやりとりすることができます。

最もシンプルなドロワー メニューとは、チェック可能なメニュー アイテムの集合体です。
<group android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_item_1"
        android:checked="true"
        android:icon="@drawable/ic_android"
        android:title="@string/navigation_item_1"/>
    <item
        android:id="@+id/navigation_item_2"
        android:icon="@drawable/ic_android"
        android:title="@string/navigation_item_2"/>
</group>
チェックがオンにされたアイテムは、ナビゲーション ドロワーでハイライト表示され、どのナビゲーション アイテムが現在選択されているのかをユーザーにわかりやすく表示します。

また、メニュー内でアイテムのグループごとにサブヘッダーを使うこともできます。
<item
    android:id="@+id/navigation_subheader"
    android:title="@string/navigation_subheader">
    <menu>
        <item
            android:id="@+id/navigation_sub_item_1"
            android:icon="@drawable/ic_android"
            android:title="@string/navigation_sub_item_1"/>
        <item
            android:id="@+id/navigation_sub_item_2"
            android:icon="@drawable/ic_android"
            android:title="@string/navigation_sub_item_2"/>
    </menu>
</item>
setNavigationItemSelectedListener() を使って OnNavigationItemSelectedListener を設定すると、選択したアイテムのコールバックを受けることができます。クリックされた MenuItem が渡され、選択イベントを処理したり、チェック状態を変更したり、新しいコンテンツを読み込んだり、ドロワーをプログラムを使って閉じたり、どんな操作でも処理できます。

テキスト編集のフローティング ラベル

地味な EditText でさえも、マテリアル デザインでは改良の余地はあります。EditText だけの場合は、最初の文字を入力したあとはヒントテキストが非表示になりますが、TextInputLayout で囲むことでヒントテキストが EditText の上に表示される フローティング ラベルになり、ユーザーが入力中のコンテキストを見失うことを防ぐことができます。
ヒントの表示に加えて、 setError() を呼び出すことで EditText の下にエラー メッセージを表示させることもできます。

フローティング アクション ボタン

フローティング アクション ボタンは、インターフェイス上のメイン アクションを示す丸いボタンです。Design ライブラリの FloatingActionButton は、デフォルトではテーマの colorAccent 色を使った一貫した 1 つの実装を提供します。
通常サイズのフローティング アクションボタン以外にも、他の重要なエレメントとの視覚的な連続性を保持するためのミニサイズ(fabSize="mini")もサポートされています。FloatingActionButtonImageView を拡張するため、android:srcsetImageDrawable() などのメソッドを使って、FloatingActionButton 内に表示されるアイコンを制御します。

Snackbar

操作に関する簡単なフィードバックを送るには、Snackbar を使用するのが最適です。Snackbar では、テキストと1 つの操作(任意)が画面下部に表示され、一定時間の経過後、自動的に画面からアニメーション付きで消えます。また、タイムアウト前にユーザーがスワイプして消すこともできます。
スワイプしたり、操作を実行できる点で、Snackbar はトーストや他の軽量フィードバック の仕組みよりもはるかに強力です。しかし、みなさんはこの API がとてもよく知っているかたちをしています。
Snackbar
  .make(parentLayout, R.string.snackbar_text, Snackbar.LENGTH_LONG)
  .setAction(R.string.snackbar_action, myOnClickListener)
  .show(); // Don’t forget to show!
Viewmake() の 1 つ目の引数になっています。Snackbar はきちんと下部に固定されるよう、適切な Snackbar のビューの親を見つけようとします。

タブ

タブを使ってアプリ内の異なるビューを切り替えることは、マテリアル デザインにとって新しい概念ではなく、ユーザーはトップレベルのナビゲーション パターンとして、あるいはアプリ内のコンテンツを異なるグループへまとめるために、とても慣れ親しんでいます(例えば、音楽のジャンル)。
Design ライブラリの TabLayout では、ビューの横幅をタブ間で均等に割り振った固定タブと、タブのサイズが均等ではない、スクロール可能なタブの両方があります。タブは、プログラムからも追加することができます。
TabLayout tabLayout = ...;
tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
しかし、タブ間の横方向のページングに ViewPager を使用している場合は、PagerAdaptergetPageTitle() から直接タブを作成し、setupWithViewPager() を使って 2 つをつなげることができます。これにより、タブ選択イベントが ViewPager を、ViewPager のページ変更が選択されているタブを、それぞれ更新することを保証します。

CoordinatorLayout、モーション、スクロール

独特の外観だけがマテリアル デザインの特徴ではありません。モーションもまた、マテリアル デザインを用いたアプリを作成するうえで重要な要素です。マテリアル デザインには、タッチ リップル意味のあるトランジションなど多くのモーションがありますが、Design ライブラリでは新たに CoordinatorLayout を導入しました。CoordinatorLayout を使うことで、子ビュー間のタッチ イベントをより高度にコントロールすることができます。Design ライブラリ内の多くのコンポーネントが CoordinatorLayout を利用しています。

CoordinatorLayout とフローティング アクション ボタン

わかりやすい例は、 CoordinatorLayout の子として FloatingActionButton を追加し、その CoordinatorLayout を引数に Snackbar.make() を呼び出した場合です。 Snackbar が  FloatingActionButton と重なるように表示されてしまうかわりに、FloatingActionButtonCoordinatorLayout から受け取った追加のコールバックを使って、Snackbar がアニメーションで表示されるときには上部に、消えるときには元の位置に自動的に戻ります。これは、 Android 3.0 以上の端末で、追加のコードなしで実現できます。
CoordinatorLayout では layout_anchor 属性も提供され、layout_anchorGravity と共に使用すると FloatingActionButton などのフローティング ビューを他のビューと相対的に配置できます。

CoordinatorLayout とアプリバー

CoordinatorLayout の他の主な使用例には、アプリバー(以前のアクションバー)とスクロール テクニックがかかわってきます。アプリの象徴的な部分とレイアウトの残りの部分の見た目と統合をより簡単にカスタマイズできる Toolbar をレイアウトで既に使用している方もおられると思いますが、Design ライブラリでは、さらに高度な実装が可能になります。AppBarLayout を使って Toolbar と他のビュー(TabLayout で提供されるタブなど)が ScrollingViewBehavior とマークされた兄弟ビューのスクロール イベントに反応するようにできます。これにより、次のようなレイアウトが作成できます。
 <android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
     
     <! -- Your Scrollable View -->
    <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
   <android.support.v7.widget.Toolbar
                  ...
                  app:layout_scrollFlags="scroll|enterAlways">

        <android.support.design.widget.TabLayout
                  ...
                  app:layout_scrollFlags="scroll|enterAlways">
     </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
これで、ユーザーが RecyclerView をスクロールすると、AppBarLayout はイベントに応答することができます。その際、画面に入る方法(スクロールオン)と、画面から出ていく方法(スクロールオフ)をコントロールするためには、子のスクロール フラグを使います。フラグには、次のようなものがあります。
  • scroll: このフラグは、画面からスクロールオフするすべてのビューに設定する必要があります。このフラグを使用しないビューは、画面上部に固定されたままになります
  • enterAlways: このフラグを使うと、下方向へスクロールしたときにこのビューが表示されます。このフラグを使うことで、クイック リターンのパターンを実現できます。
  • enterAlwaysCollapsed:ビューで minHeight を宣言し、このフラグを使用すると、ビューは最小の高さ(つまり、折りたたまれた状態)で画面に入り、ビューを最上部までスクロールしたときのみ完全な高さに再展開されます。
  • exitUntilCollapsed: このフラグでは、ビューが折りたたまれる(minHeight になる)までスクロールオフされます。
注: scroll フラグを使用するすべてのビューは、このフラグを使用しないビューの前に宣言される必要があります。これで、すべてのビューが上部から出ていき、固定エレメントが残るようになります。

ツールバーの伸縮

Toolbar を直接 AppBarLayout に追加すると、enterAlwaysCollapsed スクロール フラグと exitUntilCollapsed スクロール フラグにアクセスできますが、異なるエレメントが伸縮にどう反応するかを細かく制御できません。そこで、CollapsingToolbarLayout を使うことができます。
<android.support.design.widget.AppBarLayout
        android:layout_height="192dp"
        android:layout_width="match_parent">
    <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">
        <android.support.v7.widget.Toolbar
                android:layout_height="?attr/actionBarSize"
                android:layout_width="match_parent"
                app:layout_collapseMode="pin"/>
        </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
この設定では、CollapsingToolbarLayoutapp:layout_collapseMode="pin" を使って、ビューを縮めてもツールバー自体は画面上部に固定されるようにしています。さらに、CollapsingToolbarLayoutToolbar を一緒に使用すると、レイアウト全体が表示されている状態では、自動的にタイトルは大きなサイズで表示され、縮められた際には、デフォルトのサイズになります。この場合、setTitle() はツールバーのものではなく、CollapsingToolbarLayout のものを呼び出す必要があることに注意してください。
ビューの固定に加えて、app:layout_collapseMode="parallax"(さらに任意でapp:layout_collapseParallaxMultiplier="0.7" でパララックス乗数を設定) を使用して、パララックス スクロールを実装できます(CollapsingToolbarLayout 内の ImageView の兄弟のようなもの)。この使用例は、CollapsingToolbarLayoutapp:contentScrim="?attr/colorPrimary" と上手く組み合わされ、ビューの折りたたみ時にフルブリードのスクリムを追加します。

CoordinatorLayout とカスタムビュー

1 つの重要な注意点は、CoordinatorLayout には FloatingActionButtonAppBarLayout の動作を理解する能力はなく、Coordinator.Behavior という形で追加の API を提供するだけだということです。この API により、子ビューはタッチ イベントやジェスチャへより細かい制御を行ったり、お互いの依存関係を宣言し、onDependentViewChanged() 経由でコールバックを受けたりすることができます。

ビューは、CoordinatorLayout.DefaultBehavior(YourView.Behavior.class) アノテーション、または、レイアウト ファイル内で app:layout_behavior="com.example.app.YourView$Behavior" 属性を設定することで、デフォルトの Behavior を宣言することができます。このフレームワークによって、どんなビューでも CoordinatorLayout と統合できるようになります。

今すぐ使えます!

Design ライブラリはすでに利用可能です。SDK Manager の Android Support Repository を今すぐアップデートしましょう。新しい依存関係を 1 つ追加するだけで、Design ライブラリの使用を開始できます。
 compile 'com.android.support:design:22.2.1'
Design ライブラリは Support v4 と AppCompat のサポート ライブラリに依存するため、Design ライブラリの依存関係の追加時にこれらも自動的に含まれることになります。それらの新しいウィジェットも、Android Studio Layout Editor の Design ビュー(CustomView 内)で使用可能になったため、新しいコンポーネントを簡単にプレビューできます。

Design ライブラリ、AppCompat、その他すべての Android サポート ライブラリは、最新の洗練された外観を持つ Android アプリを開発するために必要な部品を提供する、重要なツールです。これにより、開発者はすべてをゼロから作成する必要がなくなります。

Posted by Ryuichi Hoshi - Developer Relations Team

Smart Lock for Passwords はどのように自分のアプリやサイトで機能するのでしょうか。あらゆる端末でログイン情報が認識され、事前入力されたものとして扱われます。ユーザーがサインインしたり情報を入力してサインアップしたりすると、その後使用するためにパスワードを保存するかを確認するメッセージが表示されます。これを許可すると、使用している Android アプリや Chrome のウェブサイトでパスワードをまた入力する必要がなくなります。結果として、新規ユーザー、既存ユーザーどちらもアプリやサイトへのサインアップやサインインの割合が増えます。

またこれは、ユーザーが新しいデバイスを購入したりアクティベートしたりした際に、簡単にアプリをダウンロードして適切なアカウントでサインインできるようになるということを意味します。アカウントを再度取得したり、パスワードを忘れた場合の手続きをしたりする必要がなくなります。

Smart Lock for Passwords を導入すると、ユーザーがパスワードを保存すれば、他の端末で自動的にサインインできるようになります。

既に Smart Lock for Passwords をご活用いただいているパートナーの実例を次に示します。Android アプリや Chrome で表示したウェブサイトの例をご確認ください。
  • Eventbrite では、SmartLock を容易にアプリに導入してテストを行い、サインイン済みユーザーの数を増やしています。Eventbrite のシニア プロダクト マネージャーの Atul Kakkar 氏は、これはサインインが「パーソナライズされたイベントの発見と、シームレスなチケットの購入を可能にしてくれる」ためだ、と述べています。
  • Instacart の Android エンジニア、Maksim Golivkin 氏は、「SmartLock によってサインインが非常に早くなり、ユーザーがあらゆる端末で情報を入力する手間が省けています。多くの人々が Instacart についてモバイルやデスクトップのウェブで見て、それからアプリをダウンロードしています。サインイン情報が保存されることで、ユーザーが食料品をさらにすばやく注文できるようになっています。SmartLock の導入は、お客様の時間の節約にとても有効で、その時間を買い物に使っていただけます」と述べています。
  • Netflix では Smart Lock for Passwords を活用することで、ユーザーのサインイン時間を増やし、リビングの Android TV などを含めあらゆるデバイスでコンテンツをさらに楽しんでいただけるようになっています。パートナー エンゲージメント ディレクターの Rob Caruso 氏は次のように述べています。「さまざまなデバイスでユーザーを認証する際の手間を極力省きたいと考えています。SmartLock は大画面で特に有効です。というのも、大画面でのサインイン情報の入力はモバイルや PC よりもはるかに面倒だからです」
  • 定期購読者のためにサインインを簡単にする以外にも、 New York Times ではSmartLock を使ってデバイスをまたいだ操作性の向上に取り組んでいます。Android マーケティング マネージャーの Rachel Kirscht 氏は次のように述べています。「私たちにとってこれはリピート率向上の施策であり、アプリの登録やサインイン使用率を向上させる取り組みの一環といえます。Smart Lock for Passwords はユーザーの利便性を劇的に向上できます。ログインしたり登録したりしていただける読者は定期購読もしていただける傾向にあります。複数のプラットフォームで閲覧いただくとこの傾向がさらに高くなります」
  • Orbitz にサインインしていただくと、多くのメリットがあります。 たとえば、別のデバイスで行ったトラベル検索にすぐにアクセスできたり、最小限の入力で効率よく予約できたりします。旅行中、サインインしていただいているユーザーにはフライトの遅延やゲートの変更などを知らせるプッシュ通知が送信されます。Orbitz.com にデスクトップでサインインしていただくと、こうしたメリットをアプリで自動的に受けることができます。SmartLock をお使いいただくことで、サインインの手間が省かれ、サインインすることのメリットを実感していただけます」と Orbitz の製品戦略シニア ディレクターの Ryan Kowalczyk 氏は述べています。
  • ベータ パートナー LinkedIn のビジネス デベロップメント副社長 Bob Rosin 氏は次のように述べています。「Google の SmartLock 導入パートナーとしてご一緒でき、わくわくしています。LinkedIn の既存メンバーにとってもログインがさらに簡単になりますし、新規ユーザーのサインアップ プロセスが効率化されます」
今年の後半には、 同期パスフレーズのサポートや、他のプラットフォームでの Smart Lock for Passwords API のサポートなど、新しい機能を提供していく予定ですので、ご期待ください。

Google Sign-In を使った信頼性の高い登録システム

Google Sign-In は、ご自分のアプリやサイトに、Google のユーザーやサービスをつなげる安全なゲートウェイです。ユーザーが既に Gmail、Google Play、Google+ などの Google サービスで使用している Google アカウントを使ってサインインできるようになるため、ログインの手間が省かれます。New York Times では、Google Sign-In を実装した直後に新規登録ユーザー数が月ベースで 20% も増加しています。

Identity Toolkit で認証ツールをまとめて実装

Identity Toolkit は、堅固でさらに安全な認証システムで、アプリに応じて適切なサインインをサポートします。Identity Toolkit は電子メールとパスワードの認証だけでなく、Google や Facebook などの Identity Provider もサポートされます。技術的な複雑さもなく、簡単な設定の変更だけで今後のサインインのオプションを追加したり、既存ユーザーを移行したりできます。Identity Toolkit をご活用いただけば、ご利用の認証システムをプラットフォームに応じて簡単に適用できます。

Google Identity Platform をお使いいただくことで、ユーザーのサインインをシンプルにし、アプリやサイトをさらにパーソナライズされた魅力あるものにしていただければ幸いです。ドキュメントは developers.google.com/identity をご覧ください。

Posted by Eiji Kitamura - Developer Relations Team

5 月 28 日、Google は Polymer ライブラリの 1.0 バージョンをリリースしました。Polymer はウェブ アプリケーション構築についての新しい考え方です。Web Components の上部にシュガーとなるレイヤーを置き、双方向性のあるカスタム要素を簡単に作成することができます。こうした要素を集めて使うことで、ウェブ上でネイティブアプリのような臨場感のあるアプリを作成することができるようになります。

Google では “Developer Preview” リリース後、開発者にとっての使いやすさをそのままに、クロスブラウザのパフォーマンスを向上させるため、ライブラリをゼロから作成しなおしました。新しいライブラリでは、Chrome では約 3 倍、Safari では約 4 倍のスピード改善を実現し、コード量は Developer Preview と比較して 3 分の 1 程度に減らすことができした。

新しいライブラリを使いはじめる

今回、1.0 リリースに合わせて、ドキュメントを含む polymer-project.org サイトをアップデートしました。主な新機能やアップデートは次のとおりです。
  • まったく新しく、簡単に使えるデータ バインド システム
  • カスタム CSS プロパティを使った要素のテーマ化とスタイル化
  • サポート外ブラウザ向けの軽くて迅速な Shadow DOM シミュレータ
  • 要素間で動作を共有する “Behaviors” メカニズム
Polymer を使うと、高品質な要素をこれまでにないほど簡単に作成できるようになり、アプリで使用したり、他の開発者と共有したりすることができます。

Polymer チームが製作した新しい要素の使い方

Polymer チームが製作した数多くの新しい要素プロダクト ラインを Polymer elements catalog でご確認ください。ご自分のウェブアプリの製作や機能追加に役立つ要素をブラウズすることができます。要素にはボタン、レイアウト、Google マップ、プッシュ通知などがあります。ウェブで解決したいどんな問題にでも、そのための要素があります(There's an element for that)。

Polymer Starter Kit でアプリを作り始める

Polymer を使ってウェブ アプリケーションを作り始める早くて簡単な方法をお探しであれば、 Polymer Starter Kit をお試しください。Polymer Starter Kit は最新の要素、すぐに使えるボイラープレート、E2E のツール チェインなど、開発からプロダクションの展開まで、さまざまな場面で活用できるため、開発者のみなさんは機能の追加に集中できます。

皆さんがこのリリースを活用し、すばらしいアプリの構築に役立てていただくことを楽しみにしています。

Posted by Eiji Kitamura - Developer Relations Team


このサイトでは、アプリの開発からユーザーの拡大、収益化など、包括的なヒントをご紹介しています。例えば、グローバル市場でのアプリ展開を検討している方に向けては、11 カ国²のマーケット レポートを用意しています。

統計データの一例:
  • ブラジルのスマートフォン ユーザーは、アメリカや日本よりも頻繁に広告を認知
  • フランスのスマートフォン ユーザーの約 ⅔ は無料アプリをダウンロード
このような各マーケットの統計データを、日本国内だけではなく、世界中のユーザーに皆さまのアプリを広めるヒントとしてご活用いただければ幸いです。

マーケットの統計データ以外にも、モバイル アプリ ビジネスで成功されている各社のキーパーソンのインタビュー記事、アプリ開発やマーケティングのベスト プラクティス、ユーザー調査もご覧いただけます。
アプリの収益化やプロモーションにご興味のある方は、Google+Twitter (英語)から、AdMob に関する最新情報をぜひご確認ください。

¹ 対応言語: フランス語、ドイツ語、イタリア語、日本語、韓国語、ポルトガル語、中国語(簡体字・繁体字)、スペイン語、英語
² マーケット レポート対応国:アメリカ、イギリス、イタリア、スペイン、ドイツ、フランス、ブラジル、ロシア、日本、韓国、中国


Posted by Maiko Fujita - オンライン パートナーシップ グループ

Smart Lock for Passwords の詳細については、デベロッパー サイトをご覧ください。

インスタンス ID、アイデンティティと認証

インスタンス ID(IID)では、アプリのインスタンスごとに一意の識別子を取得できます。アプリでユーザーの登録やアカウントを求めていない場合でも、認証と承認メカニズムが提供されます。たとえば、インスタンス ID トークンを付けることで、リクエストを送信しているアプリ インスタンスを一意に特定できます。有効なインスタンス ID トークンが付けられるよう、エッジケースの処理も簡単に行えるようにしています。

Google Cloud Messaging

Google Cloud Messaging(GCM)では、ユーザーに情報を送信する際や、端末からご利用のサーバーにアップストリーム メッセージを送信する際にバッテリー効率の優れたメカニズムを提供します。

Google Cloud Messaging とインスタンス ID

以前は GCM では固有の登録 ID を使って各端末を参照していました。この方法はそのまま使用できますが、新たに GCM 用のインスタンス ID トークンも活用できるようになります。エラー ケースの処理にかかわるインスタンス ID の利点を最大に生かすことができます。インスタンス ID トークンはユーザー通知と完全に互換しているため、ユーザーの複数の端末に通知を送信できます。

トピック ベースのサブスクリプション

GCM でインスタンス ID を用いる際、別の新しい機能も使用できます。トピック ベースのサブスクリプションです。この機能を使うと、適切な対象に簡単にメッセージを発行できるようになります。すべてのサブスクリプション インスタンスに対する送信は GCM で処理されます。アプリで複数のトピックをサブスクライブできるようになり、ご自分のアプリのメッセージで必要な最適な処理を一連のトピックから作成できるようになります。

GCM でメッセージを受信

当然、受信メッセージのサブスクライブで終わりではありません。GCM メッセージの受信が GcmReceiverGcmListenerService のサブクラスを使ってできるようになります。この 2 つのクラスによって、端末のスリープが何度も解除されるような場面でもアプリでメッセージが確実に処理できるようになります。

GCM Network Manager

アプリでは、新しい情報が発生するとたびたびそのデータをサーバーに同期する必要が生じます。GCM ではこのモデルを “send to sync” と呼んでいます。GCM Network Manager API を用いることで、この処理がとてもシンプルになります。ネットワーク接続の待機、端末の確認、接続の再試行、切断、など多くの共通の実行パターンが API で処理されます。GcmNetworkManager によって、バックグラウンド タスクが適切なタイミングでスケジュールされ複数タスクがバッチ処理されることで、Android 5.0+ 端末で最もパフォーマンスに優れたJobScheduler API を使っているときであっても効率性が高まりバッテリーが節約できます。この API は 1 度きりのタスクと定期的なタスクどちらもサポートしており、数多くの異なる運用タイプで用いることができる柔軟なフレームワークとして活用できます。

App Invites ベータ版

App Invites は現在ベータ版ですが、ユーザーがコンタクトにアプリのインストールをお勧めできる標準 UI を Android と iOS どちらにも提供できる新しい機能です。オプションで選択したコンタクトにディープリンクを送ることもできます。ユーザーの端末と Google のコンタクトをソースとして用いて、アプリのユーザー増加につながる照会に対応します。
SMS や電子メールで招待を送る機能を供え、ユーザー ベースを増大し、紹介したい人たちに適切にアプリを紹介する統一的な方法をユーザーに提供し、招待がどの程度有効だったかを確認できる優れたメカニズムを活用できます。

App Invites の目的は、ユーザーの獲得や登録プロセスに多くの労力をかける必要をなくすことで、開発者の皆さんがアプリの機能や使い心地などに集中して取り組めるようにすることです。App Invites の詳細については、デベロッパー サイトをご覧ください。

Google Cast

Google Cast は、ご利用のモバイル端末やノートパソコンから TV やスピーカーにコンテンツを簡単にキャストできるテクノロジーです。あらゆる Android、iOS、Chrome アプリでリモート ディスプレイを使用する新しい機能や、より優れたメディア サポート、ゲーム サポートによって、Google Cast のメリットを存分に発揮できる環境が整っています。

Remote Display API

モバイル開発者が画面密度の濃いアプリやゲームを作成し、Android や iOS 向けの Google Cast Remote Display API を使って Google Cast レシーバーに簡単に送ることができるようにしています。新しい Remote Display API を使うと、モバイル端末と Google Cast 端末で同一コンテンツをミラーリングすることなく、調整され統合されたセカンド スクリーンをビルドできるようになります。

Remote Display のさらに詳細については、Google Cast Developers Site をご覧ください。

Autoplay and Queuing API

Chromecast でのメディア項目 1 つの再生はRemoteMediaPlayer(またはCastCompanionLibraryVideoCastController)でこれまで問題なく処理されていました。このリリースでは RemoteMediaPlayer によってフル メディア キューが追加され、自動再生がサポートされるため、シームレスなメディア再生が実現します。これで接続されたすべての端末で、キューに並んでいるメディア アイテムの同期されたキューを容易に保つことができるようになり、Google Cast メディアを協力して作成する新しい可能性が開かれます。

Google Cast 向け Game Manager API

Google Cast でゲームすれば、モバイル端末を自分のゲーム コントローラとして使い、TV でアクションを表示することですばらしいマルチプレイヤー体験を楽しむことができます。接続されたすべてのクライアントやキャスト レシーバーにメッセージや状態の変化を簡単に送信できるようにするため、Google Play services 7.5 では Google Cast 向けに GameManagerClient や Game Manager API が導入されました。これらは Android、iOS、Chrome、レシーバーで使用できます。

Android Wear

時計は時間を確認できるすばらしい端末です。ただ、時間の確認に加えて場所を簡単に確認できたとしたらどうでしょうか。今回の新しいリリースで、おなじみの Maps API を Android Wear 端末で使用できるようになりました。
完全にインタラクティブなマップやライトモードのマップを Android Wear 端末で直接表示できます。インタラクティブ マップではスクロールやズームができ、ユーザーの現在地とその他の情報が表示されます。サポートされる機能の完全なリストをデベロッパー ドキュメントでご確認いただき、さらに詳細については Geo Developers blog をご覧ください。

Google Fit

Google Fit はフィットネス アプリを作成できるオープン プラットフォームです。現在位置や移動するスピードなどのセンサーデータを取得したり、アクティビティ データを集めて保存したり、データを自動的に集積してユーザーのフィットネス データを 1 つのビューに表示したりできます。

今回のリリースで、RecordingApi を使って移動した推定距離や燃焼カロリーのデータを集めて、HistoryApi を使ってご自分のアプリや別の Google Fit 対応アプリで表示できるようになります。

アクティブに動き回ればさまざまな形態への対応が必要になります。ある種の運動は歩数や距離で簡単に計測できますが、筋力トレーニングはその種類、反発力、繰り返した数などで計測されます。今回、数多くの workout exercises を新しくサポートしたことで、このようなデータを Google Fit に保存できるようになり、運動を包括的に確認できるようになりました。

SDK をご利用ください

Google Play サービス 7.5 をご利用いただけます。アップデートされた SDK を今すぐお試しください。

Google Play サービスや利用可能な API の詳細については、Google APIs for Android サイトをご覧ください。

Posted by Yuichi Araki - Developer Relations Team

Autoplay and Queuing API

Autoplay and Queuing API を使うと、コンテンツ キューを作成し、最初の動画が再生終了しつつあるタイミングで 2 つめの動画のバッファリングを開始できます。これで再生が継続的に行われ、視聴時間を大幅に増やすことができます。セッションごとの視聴時間は 10% ~ 20% 以上の増加が見込まれます。

Chromecast でのメディア項目 1 つの再生は RemoteMediaPlayer(または CastCompanionLibraryVideoCastController)でこれまで問題なく処理されていました。このリリースでは RemoteMediaPlayer によってフル メディア キューが追加され、複数の MediaQueueItems をキューに並べることができ、あるアイテムをスキップしたり、繰り返しモードを設定したり、キューを並べ替えたり、 自動再生を可能にしたりできるため、シームレスなメディア再生が実現します。返される MediaStatus は現在のアイテムのキューや新しい OnPreloadStatusUpdatedListener によって補完されるため、次に再生されるコンテンツを表示できるようになります。これで接続されたすべての端末で、キューに並んでいるメディア アイテムの同期されたキューを容易に保つことができるようになり、Google Cast メディアを協力して作成する新しい可能性が開かれます。

Google Cast 向け Game Manager API

昨年 11 月以降、TV 画面にゲーム(ゲームボード、レース場、ダンスフロア、トリビアクイズなど)を Cast で表示できるようになりました。皆でリビング ルームに集まってモバイル端末を自分のゲーム コントローラとして使い、ゲームを楽しめるようになっています。今回、開発者がマルチプレイヤー ゲームを作成するプロセスを簡略化する新しい Game Manager API をリリースします。大勢が集まるような場合に全員の端末でゲームの状態を簡単に同期できるようにするため、Google Play サービス 7.5 で Cast Game Manager API が導入されます。この API は GameManagerClient クラスから Android で使用でき、iOS、Chrome、その他のレシーバーでも使うことができますが、メッセージを送信したりすべての接続されたクライアントやレシーバーで状態を変更したりできます。すべての送信メソッドには特定のプレイヤー ID を含むメソッドがあり、複数のプレイヤーが 1 つの送信デバイスを共有できるようにします。

上記すべての API は Android では既に使用でき、iOS、Chrome SDK アップデートでは近日中に使えるようになる予定です。

Google Cast API のさらに詳細については、Google Cast Developers Site をご覧ください。 リビングルームでモバイルを活用する皆さんのアイデアを楽しみにしています。

Posted by Yoshifumi Yamaguchi - Developer Relations Team
Share on Twitter Share on Facebook


昨年を通じて 190 か国で 500 億ものアプリが Google Play でインストールされました。すばらしいアプリを作成する開発者の皆さまのおかげで、Google Play は今後さらなる成長が見込まれています。月ごとの利用ユーザー数は 10 億を超えつつあります。

今年の 2 月には、昨年だけで 70 億ドル以上を開発者の皆さまにお支払いしたことを公表しました。5 月の Google I/O では、開発者の皆さまのビジネスをさらに成長させ、より優れた分析で意志決定の精度を上げ、より関連するコンテンツを提供することでユーザーの注目を集めることができるような、新しいツールの数々をご紹介しました。

Developer Console でユーザーを獲得する

すばらしいアプリを作成したら、次のステップとして、アプリを目立たせ、アプリのファンを増やしていく方法を積極的に探すことが重要になります。アプリ インストール広告はそのための 1 つの効果的な方法といえます。今後数か月のうちに、Google Play Developer Console で初回の広告キャンペーンをすみやかに、かつ簡単に設定できるようになる予定です。
合計予算とユーザーごとに許容できるコストを設定するだけで、その規模に応じて Google のネットワークでアプリのプロモーションが行われます。ネットワークには Google Search、AdMob、YouTube や、Google Play でテスト段階にある検索広告などがあります。この新しい機能によって、皆さまのアプリをインストールする可能性が高いユーザーを見つけやすくなります。

獲得と変化のアクションにつながる分析

ユーザーの獲得に投資しているかどうかにかかわらず、ユーザーがどこから来ているかを把握したいという要望はあります。もうすぐ Developer Console で、Store のページの閲覧数やアプリのインストール数、購入数を把握できるようになります。何らかの獲得投資の成果なのかまったくの別ルートなのかにかかわらず、親和性の高いユーザーがどこから来ているのかが確認でき、どの分野に力を入れれば良いかがさらにわかるようになります。

Play Store のリスティング ページを試験しながら最適化する

ユーザーにとってあなたのアプリを知る初めての機会であるため、Play Store のリスティング ページは極めて重要です。現在、Google Play では A/B テストをサポートしてこのページをより簡単に最適化できるようにする機能が提供されています。これにより、アプリのリスティングページで別バージョンのテキストやグラフィックを試すことができるようになります。ページを訪れたユーザーにインストールまでしてもらうために最も効果的なバージョンはどれかを確認できます。パイロット プログラムでは、Kongregate などの一部のデベロッパーがこれまでのインストール率を 2 桁パーセント向上させることに成功しています。

Cloud Test Lab を使って実機で自動的にアプリをテストする

Android のフォーム ファクタは多様であり、アプリを実機でテストすることはあらゆる端末で問題なく動作することを確認するための極めて重要なステップです。ですが、ユーザーが使うすべての端末にはアクセスできない場合があります。そこで、Google では新しく公開した Cloud Test Lab を Developer Console に統合し、無料で何百もの人気のある物理的な Android 端末でアプリを自動的にテストできるようにしました。このパイロット プログラムは段階的にリリースしていきますので、フィードバックがあれば是非お寄せください。

アルファ チャンネルやベータ チャンネルにアップロードする各 APK で、Google Play はアプリの目標基準に合致する物理端末に対して完全に自動化されたテスト プロセスを実行し、スクリーンショットやログなどの問題の詳細な分析レポートを出力します。Google Cloud Test Lab は今年の後半にすべての開発者にリリースされる予定です。現在、Developer Console でテスター希望申請をしていただくことができます。

Player Analytics を使ってデータ ベースのゲーム ビジネスを構築する

Google Play ゲームは過去 6 か月で 1 億 8 千万もの新規ユーザーを獲得しており、これまでにないペースで成長しているモバイル ゲーム プラットフォームといえます。

今後数か月で、開発者のゲーム ビジネス管理をサポートするため、Player Analytics に新しいレポート、プレイヤー セグメント、ゲーム メトリックス、イベント タイプを追加する予定です。またライブ運用ツールを強化し、コンテンツを動的にアップデートすることでゲームをさらに臨場感のある魅力のあるものにすることができ、次第に変化するプレイヤーのニーズに応じてゲームプレイを調整し、さらに楽しくパーソナライズされたゲームを提供できるようにしていきます。モバイルゲームの成功基準は高まる一方ですので、プレイヤーの高まる期待に応えられるよう Google でも継続的にツールを進化させ続けています。

デベロッパー ページと検索結果ですばらしいアプリを見つける

すばらしいアプリやゲームを Google Play でより見つけやすくし、ユーザーをさらに獲得できるようにする方法はいくつか存在します。現在、Google Play ではご自分のホームページを作ることができ、アプリの全体的なカタログをユーザーに提供していただけます。ご自身のデベロッパー ページに会社の概要や一押しのアプリに関するグラフィック画像をアップロードできます。Google Play で公開しているすべてのアプリを宣伝できるページになります。

また、買い物などさまざまなことに興味があるユーザーに、新しい検索結果を説明するガイドも提供します。

ショッピング アプリをクーポン アプリやファッション アプリにまとめたりなど、ユーザーがより細かく直感的に検索結果を整理できるようになります。これでユーザーの必要性を満たすアプリを適切に表示することができ、同時に新しく革新的なアプリを見つけやすくすることができます。

Google Play のファミリー向けコンテンツ

5 月 28 日から、Google Play の新しい検索機能でファミリー向けコンテンツが見つけやすくなりました。アプリとゲームや映画&テレビのホームページで「ファミリー」星印で特定の年齢層向けのアプリを表示できるようになっています。Play ブックスでは、「児童書」星印をタップします。これらのページでは年齢層ごとに検索できるため、ファミリー向けとして最適なコンテンツを見つけることができます。アプリを既に Designed for Families プログラムに登録しておりその要件を満たしていれば新しい「ファミリー」セクションに表示されるようになるため、適切で安心できる、品質の高いアプリやゲームとしてご両親により簡単に見つけてもらうことができるようになります。現行の Designed for Families program についてご確認ください。

Google I/O 2015 のセッション映像もご確認ください

さらに詳細については、現在 YouTube で公開されている「Developers connecting the world through Google Play」のセッション映像もご確認ください。

今後も、I/O のビデオや紹介した機能やその他の機能についての詳細をdeveloper.android.com/distribute のページに追加していきます。どうぞよろしくおねがいいたします。

Posted by Ryosuke Matsuuchi - Developer Relations Team
Share on Twitter Share on Facebook


今年の Google I/O で、Google は M Developer Preview を公表しました。デベロッパー プレビュー版を早期にご活用いただくことで、次期バージョンの Android で皆さまのアプリを検証し、最適化していただくことができます。本日 Google は、M Developer Preview の新しいバージョンを公開いたします。これには、皆さまからいただいたフィードバックに基づいた修正や変更が含まれています。

新しい M Developer Preview について

このデベロッパー プレビュー第 2 版には、最新の M リリースのプラットフォーム コードと、ほぼ最終版に近い API が含まれており、皆さまのアプリの検証にご利用いただくことができます。検証にお役立ていただくために、Google は この Android プラットフォームの変更点を含む新しい Nexus システム イメージとエミュレータ システム イメージも公開いたします。Android プラットフォームそのものの変更点に加えて、システム イメージには Google Play 開発者サービス 7.6 も含まれています。

アップデートの入手方法

Google I/O で発表された M Developer Preview(ビルド番号 MPZ44Q)を対応 Nexus 端末(Nexus 5、Nexus 6、Nexus 9 または Nexus Player)にて既にご利用いただいている場合には、あなたの端末はアップデートを自動的に(OTA を通じて)受け取ることができます。 現在 M Developer Preview を実行している端末には、今後 数日間以内にアップデートが配信される予定です。またデベロッパー プレビューのサイトにて、新しいシステム イメージをダウンロードしていただくこともできます(デベロッパー プレビューのサイトを英語以外の言語でご覧いただくには、ページ下部の言語選択リストを使って言語を選択してください)。

エミュレーターをご利用いただいている場合には、M Developer Preview システム イメージを Android Studio の SDK Manager を使ってアップデートしていただくことができます。

主な変更点

新しいプレビュー版では、初期の M Developer Preview にて報告された多くの問題が修正されています。 このアップデートに含まれる変更点の詳細については、リリース ノートをご参照ください。主な変更点には、たとえば次のようなものがあります。

次のステップについて

M リリースの最終版はこの秋の公開が予定されており、プラットフォームの機能や API はほぼ最終版に近い形になっています。とはいえ時間はございますので、皆さまのアプリの M Developer Preview での検証を続けていただき、深刻な問題が見つかった場合にはぜひご報告いただけましたら幸いです。また、M Developer Preview コミュニティをご訪問いただき、アイディアや情報を共有していただくこともできます。

改めて、今回ご協力いただきましてありがとうございます。皆さまのアプリを、今秋の M リリースのために準備万端としていただけますことを願っております。

Posted by Ryosuke Matsuuchi - Developer Relations Team
Share on Twitter Share on Facebook

このブログの元記事は Google I/O 当日に投稿されました。

先日 Google I/O で、Android の次期バージョンのデベロッパー プレビュー、M のリリースを発表しました。昨年のデベロッパー プレビューは Android で初めてのものでしたが、多くのありがたいフィードバックをいただきました。Google は開発者の皆さんに早めに Android 新規バージョンをお使いいただき、あらかじめアプリを対応していただけるよう時間をかけています。今回の M デベロッパー プレビューでは、テストとフィードバックの明確な予定をたて、加えてプレビュー ビルドにさらにアップデートを追加する予定としています。

M デベロッパー プレビュー サイトでダウンロードしてドキュメントをご確認ください。

Android M リリース: 基盤の改良

M リリースでは、Android の中核的な操作性の向上に努めました。何千ものバグを修正し、プラットフォームの基盤にも次のような大きな変更を加えました。

Android M リリース: 高度なサポートと支払いシステム

次のような重要な新しい機能もリリースされます。
これらは先日発表した M デベロッパー プレビュー機能ほんの一部です。ぜひ、M プレビューをダウンロードください。

Android デベロッパー ツール

デベロッパー プレビューに加えて、Android アプリの開発をサポートする次のような新しいツールもリリースされています。

スタートガイド

M デベロッパー プレビューには、アップデートされた SDK とツール、公式 Android エミュレータでテストするためのシステム イメージ、Nexus 5、Nexus 6、Nexus 9、Nexus Player 端末でテストするためのシステム イメージが含まれます。これを広くご活用いただき、今秋に正式版がリリースされる M を時間をかけてアプリでサポートするようご確認いただけることを願っています。いただいたフィードバックに基づき、M デベロッパー プレビューのシステム イメージをデベロッパー プレビュー期間を通じてたびたび更新していきます。早めにお知らせいただければより多くのフィードバックを反映できます。是非お知らせください

M デベロッパー プレビューを開始して正規リリースに備えてアプリを対応させるには、次の手順に従ってください。
  1. Android Studio v1.3+ プレビューにアップデート
  2. M デベロッパー プレビュー サイトでダウンロードしてドキュメントをご確認ください。
  3. 新しい APIアプリのパーミッションの変更をご覧ください。
  4. Android Design Support LibraryGoogle Play サービス 7.5 API をご覧ください。
  5. SDK Manager からエミュレータ システム イメージを入手するか Nexus 端末のシステム イメージをダウンロードしてください。
  6. サポートされる Nexus 端末かエミュレータでアプリをテストしてください。
  7. フィードバックをお寄せください。
Posted by Ryosuke Matsuuchi - Developer Relations Team
Share on Twitter Share on Facebook

Wi-Fi 接続とクラウド同期

既存の Android Wear 端末の多くで既に Wi-Fi がハードウェア サポートされていますが、このリリースにより Wi-Fi のソフトウェア サポートが可能になります。ウォッチのセットアップ時に、携帯端末に保存された Wi-Fi ネットワークがコピーされ、携帯端末への Bluetooth 接続が切れると、コピーした Wi-Fi ネットワークに自動的に接続されます。Wi-Fi ネットワークに接続したウォッチはインターネットから携帯端末に接続できます。この場合、同じ Wi-Fi ネットワーク内でなくても携帯端末に接続できます。

ウォッチと携帯端末間のすべての通信には Data Layer API を引き続き利用する必要があります。この標準 API を利用することで、ユーザーのウェアラブル端末がどの種類の接続をサポートしている場合でもアプリが動作するようになります。クラウド同期は、Data Layer にクラウドノードと呼ばれる新しい仮想ノードを導入します。この仮想ノードは getConnectedNodes() の呼び出しで返されることがあります。詳細については、複数のウェアラブル端末サポートに関する次のセクションをご覧ください。

複数のウェアラブル端末のサポート

Google Play サービス 7.3 のリリースにより、複数のウェアラブル端末を 1 台の携帯端末またはタブレットに同時にペア設定できるようになりました。これで運動するときとおしゃれするときに別のウェアラブル端末を身につけることもできます。DataItems はあらゆる端末と同期するため、引き続き以前と同じように動作しますが、MessageApi を使用する場合は注意が必要です。バージョン 7.3 以上を使用するように build.gradle を更新した場合、NodeApigetConnectedNodes()通常、複数のノードを返します。また、Wi-Fi 通信用に使用するクラウドノードを表すため、仮想ノードが 1 つ追加されました。開発時はこの状況にあわせてコーディングする必要があります。

多くの端末から適切なノードを見つけやすくするため、CapabilityApi が追加されました。これで画像や音楽のダウンロードなど、そのノードが提供している機能を通知できるようになります。また、ChannelApi を使用して特定の端末への接続を開き、画像や音声ストリームなどのサイズの大きいリソースを転送できるようになりました。そのため、アセットをデータアイテムに埋め込んだ場合に、今までのようにすべての端末に送信する必要はなくなりました。Android Wear の サンプルドキュメントを更新して、この機能のベスト プラクティスを記載しましたので、ご覧ください。

MediaBrowser のサポート

Android 5.0 リリースでは、android.media.browse API を使ってアプリが別のアプリのメディア コンテンツをブラウズできる機能が追加されました。Android Wear 最新アップデートでは、メディア再生アプリがこの API をサポートしていれば、ウォッチで直接ブラウズして次の曲を見つけることができます。これは、Android Auto で使用されているものと同じブラウズ機能です。この API は 1 度実装するとさまざまなプラットフォームで動作します。そのために必要なのは、onGetRoot() メソッドの validator で Android Wear によるアプリの参照を許可することだけです。また、ウォッチにコントロールとして表示される MediaSession にカスタム アクションを追加することもできます。この機能の実装方法については、Universal Media Player のサンプルをご覧ください。

既存の端末へのアップデート

Android Wear の最新バージョンは、アップデートされた無線配信(OTA)経由で、ここ数週間のうちに Android Wear を搭載したすべてのウォッチに展開される予定です。上述の新しい機能を利用するには、targetSdkVersion 22 を使用して Always-on サポートに必要な依存関係を追加する必要があります。現在利用可能なすべての端末、解像度、形状(Moto 360 のような丸形など)で動作をシミュレートできるよう、SDK Manager で利用できるエミュレータのコレクションも追加しています。

また 12 月に発表したように、このアップデートではウォッチ フェイスを表示するために非公式でアクティビティ ベースの方法を用いているアプリへのサポートを廃止しています。このウォッチ フェイスは動作しなくなるため、更新して新しい Watch Face API を使用する必要があります。

昨夏の開始以来、Android Wear は さまざまな形状とスタイル、多様な時計バンド、何千ものアプリとウォッチ フェイスで提供され、ユーザーが腕時計を自分好みにカスタマイズできるプラットフォームに成長してきました。Always on アプリや Wi-Fi といった機能によって開発がさらに柔軟に行えるようになり、ユーザーに Android Wear のすばらしさをさらに感じていただけるようになります。

Posted by Takeshi Hagikura - Developer Relations Team
Share on Twitter Share on Facebook

簡単な答えは安全ではない

当然ではありますが、覚えやすい答えはあまり安全ではありません。簡単な答えは、一般によく知られていたり簡単に手に入る情報であったり、特定の文化圏では答えの選択肢が限られていたりするケースが多くあります。たとえば、ある特定の国で一般的な苗字は、ある程度限られています。

実際にわかったことをいくつかご紹介しましょう。


「電話番号は?」や「マイレージ番号は?」というような、本来ならかなり安全だろうと思うような秘密の質問でも、かなり多くのユーザーが同じ答えを設定していることもわかりました。さらに掘り下げてみると、37% のユーザーが、答えを推測されにくくするためにあえて嘘の答えを設定していることがわかりました。ところがこれはかえって逆効果になっています。嘘の答えを選ぼうとすると、同じような答えを選んでしまう人が多く、実際には攻撃者に付け入る隙を与えてしまうのです。

難しい答えは実用的ではない

これはちょっと驚きですが、母親が通った小学校や図書館カードの番号は実は忘れやすいのです。覚えにくい秘密の質問と答えでは、実際には使えないことが少なくありません。リサーチ結果をいくつかご紹介しましょう。

秘密の質問を増やしたら?

もちろん、質問の数が 2 つあるいはそれ以上に増えれば、1 問だけの場合より正解を当てるのが難しくなります。ところが、質問を増やせばリスクも上がります。アカウントを復旧できないユーザーの数が跳ね上がるでしょう。私たちはさらに分析を続け、これが正しいかどうかを検証しました(Google では実際に「秘密の質問」を複数使用したことはありません)。

データによると、最も簡単な質問と答えは「生まれた都市は?」で、ユーザーが答えを思い出せる確率は 79% を超えました。その次に簡単だったのは「お父さんのミドルネームは?」で、ユーザーが思い出す確率は 74% でした。攻撃者が 10 回繰り返せば、これらの質問の答えを割り出せる確率はそれぞれ 6.9% と 14.6% です。

しかし、ユーザーが両方の質問に回答しなければならないとなると、秘密の質問のセキュリティと利便性のかい離が広がります。攻撃者が 10 回で両方の質問に正しく回答できる可能性は 1% になりますが、同時にユーザーが両方の答えを思い出せる確率も 59% に落ち込みます。秘密の質問の数を増やすことは、ユーザーがアカウントを復旧しにくくなることにつながるため、よい方法とはいえません。

次の質問は「ではどうするか?」

オンライン サービスでの認証やアカウントの復旧には、秘密の質問が長い間大きな役割を果たしてきました。しかし、今回の結果を見ると、ユーザーもサイト管理者も改めて考えてみる必要があるでしょう。

Google ユーザーの皆様には、Google アカウントの復旧用の情報を常に最新の状態にしておくことを強くお勧めします。これは、アカウント情報のページで簡単にできることです。Google では長い間、「秘密の質問」を、アカウントの復旧に SMS メッセージもバックアップ用のメールアドレスも使えない場合の最後の手段として使用してきました。そしてこれからも、アカウントの所有者であることを証明する方法として、「秘密の質問」を単独で使用することはありません。

同様にサイト管理者も、SMS メッセージや 2 つ目のメールアドレスを使ってバックアップ コードを送信するなど、ほかの認証手段を使ってユーザーがアカウントを復旧できるようにするのがよいでしょう。どちらも安全性が高く、ユーザーにとっても便利な手段です。

Posted by Eiji Kitamura - Developer Relations Team
Share on Twitter Share on Facebook

スピーカー

Eric Bidelman
+EricBidelman, @ebidel, @ebidel
Addy Osmani
+AddyOsmani, @addyosmani, @addyosmani

Matt Gaunt
+MattGaunt, @gauntface, @gauntface

Jeffrey Posnick
+jeffposnick, @jeffposnick, @jeffposnick

Mat Scales
+MatScales0, @wibblymat, @wibblymat



通訳について

今回のイベントでは通訳は付きません。ただし、スピーカーに対し下記のことをお願いしております。
また、運営としても下記のことを行う予定です。
ご理解頂ければと思います。

LT の募集について

懇親会時に 5 分間のプレゼンテーションを行う LT (ライトニングトーク)を行います。今回はセッションに合わせ、英語で LT をして頂ける方を募集しています。テーマは、イベントの内容から逸脱していなければ、何でも構いません。

ライトニングトークに応募される方は、下記からお申込み下さい。7 月 10 日を締め切りとし、選抜された方には 7 月 13 日中に個別にご連絡差し上げます。
http://goo.gl/forms/eeE3uYqJ1K

多くの皆様のご参加をお待ちしております。

Share on Twitter Share on Facebook