[go: nahoru, domu]


[この記事は Laurence Moroney、デベロッパー アドボケートによる Android Developers Blog の記事 "Barcode Detection in Google Play services" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google Play サービス 7.8 のリリースに併せ、新しい Mobile Vision API を追加したことを発表します。この API では、多種多様なバーコード タイプを迅速かつ容易にローカルで読み取ってデコードする Barcode Scanner API が提供されます。

バーコードの検出

バーコードを検出して解析するためのクラスは com.google.android.gms.vision.barcode 名前空間で入手できます。BarcodeDetector クラスは、Frame オブジェクトを処理し、SparseArray<Barcode> タイプを返す主要なクラスです。

バーコードのタイプは、認識された 1 つのバーコードとその値を表します。UPC コードなどの 1D バーコードの場合は、単にバーコードにエンコードされた番号となります。そしてこれは、format フィールド内の検出されたエンコーディング タイプ セットとともに、rawValue プロパティに表示されます。

QR コードなどの構造化されたデータが含まれる 2D バーコードの場合、valueFormat フィールドが、検出された値のタイプに設定され、対応するデータ フィールドが設定されます。そのため、たとえば、URL タイプが検出された場合、定数の URL が valueFormat に読み込まれ、URL プロパティが目的の値を含みます。URL のほかにも、QR コードでサポートできる多数のさまざまなデータ タイプがあります。ここのドキュメントで確認してください。

API を使用する場合、あらゆる方向でバーコードを読み取ることができます。真っ直ぐでなくでもよく、上下逆さまでも読み取ることができます。

すべてのバーコードの解析はローカルで行われるため、PDF-417 などの場合は非常に短時間で終わります。必要な情報はすべてバーコード自体に含まれているため、その後のルックアップが不要です。

API の使用に関する詳細は、GitHub のサンプルで確認できます。同じ画像内から顔とバーコードの両方を検出するには、Mobile Vision API とカメラ プレビューを使用します。

サポートされるバーコードのタイプ

この API では、1D と 2D の両方のバーコードが多数のサブ フォーマットでサポートされます。

1D バーコードの場合、次のサブ フォーマットがあります:

AN-13
EAN-8
UPC-A
UPC-E
Code-39
Code-93
Code-128
ITF
Codabar


2D バーコードの場合、次のサブ フォーマットがあります:

QR Code
Data Matrix
PDF 417


詳細はこちらから

Barcode Scanner API によるバーコード検出を使用したアプリケーションは簡単に構築でき、そのための便利なリソースを多数ご用意しています。ここで確認してください:

Code Lab をフォロー
Mobile Vision ドキュメントを読む
サンプルを活用する


Posted by Yoshifumi Yamaguchi - Developer Relations Team

[この記事は Alex Danilo、デベロッパー アドボケートによる Google Developers Blog の記事 "Wow your users with Google Cast" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google Cast のアプリケーションを開発するときは、ユーザーを楽しませるユニークな視点を提供する本当のマルチスクリーン エクスペリエンスを作成します。そのような楽しみをもたらす要因の 1 つは、アプリが楽しく使いやすくなることです。

Google Cast のユーザー エクスペリエンスのデザイン時には、膨大なユーザー テストが実施され、可能な限り多数のシナリオで動作するようにモデルが改良されました。

次のビデオは、Google Cast 対応のアプリケーションの全体的なユーザー エクスペリエンスについて簡単に説明しています。
Google Cast のデザインの中心となる原則の重要な特徴に焦点を当てたビデオも作成されました。

Cast アイコンの配置はユーザーがキャストしやすくなるかどうかに直接影響するため、最も重要な UX ガイドラインの 1 つです。そのようにデザインされた理由を理解するには、次のビデオの説明をご覧ください。
もう 1 つの重要なデザインの考慮事項は、アプリケーションと Google Cast デバイスの接続が機能する仕組みであり、次の短いビデオで説明されています。
音が出る Google Cast デバイスにユーザーが接続している場合は、音量を簡単に制御できることが重要です。次のビデオは Cast 対応のアプリケーションでの音量制御について説明しています。
UX デザインの原則のより詳細な情報については、わかりやすいドキュメントと UX ガイドラインの便利なチェックリストがあります。
アプリで Google Cast UX のガイドラインに従うことによって、ユーザーが楽しむことができ、再度アクセスしてくれるような対話型のエクスペリエンスがユーザーに提供されます。

ヒントやコツのほか、すべての種類の開発リソースへのリンクを参照するには、Cast Developers Google+ コミュニティに開発者として参加してください。

Posted by Yoshifumi Yamaguchi - Developer Relations Team


[この記事は Laurence Moroney、デベロッパー アドボケートによる Android Developers Blog の記事 "Face Detection in Google Play services" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google Play サービス 7.8 のリリースに伴い、新しい Mobile Vision API の導入を発表しました。これには画像やビデオにおける人間の顔を、より高度により速く検出する新しい Face API が含まれています。この API では、さまざまな方向から、さまざまな顔の部位や表情を精度よく判別できます。

顔検出

顔検出は以前の Android FaceDetector.Face API を改良したものです。これは画像やビデオにおける人間の顔の検出を向上させ、容易に編集できるように設計されています。異なる方向でも顔を検出できるため、対象の頭が横を向いていても検出できます。目、鼻、口角など、顔の特定の部位も検出できます。

注記
これは顔認識 API ではありません。単純に画像やビデオにおける人間の顔の領域を検出するだけの新しい API です。また、フレームごとの位置の変化から、ビデオの連続するフレーム内の顔が同じ顔であるということを推測します。顔が一度視野から外れ再び戻ってきた場合、以前に検出された顔とは認識されません。


顔の検出

この API で人間の顔を検出した場合、顔オブジェクトとして返されます。顔オブジェクトでは、顔の空間データが提供されるため、たとえば、顔の周囲に境界とする四角形を描画したり、顔の部位を使用して、顔の正しい場所に新しい帽子のような目標物を追加したりできます。
  • getPosition() - 顔が検出された領域の左上の座標を返します。
  • getWidth() - 顔が検出された領域の幅を返します。
  • getHeight() - 顔が検出された領域の高さを返します。
  • getId() - 検出された顔に関連付けられた ID を返します。

方向

Face API では複数の方向から顔を検出できます。頭は複数の軸で移動したり回転したりできる固体のオブジェクトであるため、画像での顔の表示は大幅に変化することがあります。

次に示すのは、方向が大きく異なっても人間が瞬時に認識できる、人間の顔の例です:
この API は、顔の約半分が欠けているような状況であっても、また上の画像の隅のように、顔が斜めを向いている場合でも、顔を検出できます。

次に示すのは、顔オブジェクトで使用できるメソッド呼び出しです:
  • getEulerY() - 垂直軸に対する顔の回転を返します。つまり、顔が左または右を向くように首が回転しています [上の画像では y 度]
  • getEulerZ() - Z 軸に対する顔の回転を返します。つまり、頭が横に傾くように首が傾斜しています [上の画像では r 度]

Landmarks

目標物は、顔の中の部位です。この API では getLandmarks() メソッドが提供され、List を返します。ここでは、対象物オブジェクトが対象物の座標を返します。対象物とは次のいずれかです。下唇、左頬、左耳、左の耳上部、左眼、口の左側、鼻のつけ根、右頬、右耳、右の耳上部、右眼、口の右側。

Activity

対象物の検出に加えて、この API ではさまざまな顔の状態を検出できるように、次の関数呼び出しが提供されます:
  • getIsLeftEyeOpenProbability() - 左眼が開いている可能性を示す値 0 か 1 が返されます。
  • getIsRighteyeOpenProbability() - 右眼が開いている可能性を示す値 0 か 1 が返されます。
  • getIsSmilingProbability() - 笑顔である可能性を示す値 0 か 1 が返されます。
これにより、たとえば、画像内のすべての対象が笑っている場合だけに写真を撮影するアプリを作成することができます。

詳細はこちらから

Face API による顔検出を使用したアプリケーションは簡単に構築でき、そのための便利なリソースを多数ご用意しています。ここで確認してください:

Code Lab をフォロー
ドキュメンテーションを読む
サンプルを活用する


Posted by Eiji Kitamura - Developer Relations Team


[この記事は Magnus Hyttsten、Play サービスチーム、デベロッパー アドボケートによる Android Developers Blog の記事 "Google Play services 7.8 - Let’s see what’s Nearby!" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

8 月 13 日、Google Play サービス 7.8 がリリースされました。このリリースでは、2 つの新しい API が追加されています。Nearby Messages API は近隣のデバイスやユーザーの間での単純なやりとりを可能にし、Mobile Vision API はリアルタイムのオンデバイス ビジョン テクノロジーを利用した、ビジュアル世界を表現するアプリの作成に役立ちます。また、既存の API を最適化し、新機能を追加しました。ビデオで概要をご確認いただくか、以下の内容をお読みください。


Nearby Messages

Nearby Messages には、近隣のモバイル デバイスやビーコンを検索して通信するためのクロスプラットフォーム API が導入されています。Nearby では Bluetooth、Wi-Fi、および不可聴のサウンドを使用して、デバイスを接続します。また、Android と iOS の両方で動作します。Nearby Messages の詳細については、このドキュメントリリースのブログ投稿を参照してください。

Mobile Vision API

新しい Mobile Vision API がいよいよリリースされました。Mobile Vision には 2 つのコンポーネントがあります。

Face API は、開発者が画像やビデオから人間の顔を検出することを可能にします。この API は Android FaceDetector.Face API よりも高速かつ精度が高く、より多くの情報を提供します。あらゆる方向で顔を検出でき、開発者が目、鼻、口などの目標物を検出して、笑っている顔や目が開いている顔を識別することができます。アプリケーションには写真、ゲーム、ハンズフリーのユーザー インターフェースが含まれています。

Barcode API を使うと、アプリが、デバイス上のバーコードをあらゆる方向からリアルタイムに認識できるようになります。幅広いバーコードがサポートされ、複数のバーコードを同時に検出できます。詳細については、Mobile Vision のドキュメントを参照してください。

Google Cloud Messaging

最後に、Google Cloud Messaging についてご紹介します。この Google のシンプルで信頼性の高いメッセージング サービスでは、ローカリゼーションをサポートするために、Android 向けの通知が拡張されました。サーバーから通知を作成する場合、適切な body_loc_key、body_loc_args、title_loc_key、および title_loc_args を設定します。GCM では現在のデバイスのロケールに基づいて通知の表示が処理され、デバイスに表示するメッセージを選択する手間を省けます。詳細については、このドキュメントを参照してください。

Android M リリースに対応するために、GCM メッセージングに優先度「高」および「標準」を追加し、GCM によるメッセージ配信の制御を向上させました。たとえば、チャット メッセージの通知、音声通話の着信通知など、すぐにユーザーに知らせる必要があるメッセージに高い優先度を設定します。そして、その他のメッセージは優先度を標準に設定し、アプリのパフォーマンスに影響を及ぼすことなく、最も消費電力の少ない方法で処理されるようにします。

SDK 利用開始!

Android SDK Manager から Google Play サービス SDK をダウンロードして、すぐに開発を始めましょう。
Google Play サービスや利用可能な API の詳細については、Google デベロッパーのドキュメントをご覧ください。

Posted by Ryuichi Hoshi - Developer Relations Team


[この記事は Roman Nurik と Google Creative Lab、Richard The、デザイン アドボケートによる Android Developers Blog の記事 "Android Experiments: A celebration of creativity and code" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Android は、人々が想像力とクリエイティビティをより発揮することができる、オープンで柔軟なプラットフォームとして構築されました。この発明の精神によって、開発者たちはモバイル開発に新境地を拓くことができ、Android は携帯電話から、タブレット、腕時計など、より多くの場所でクリエイティブなプロジェクトに使われる、頼もしいプラットフォームとなりました。私たちは、世界中の開発者によるクリエイティブで実験的な Android での作業を称え、テクノロジーやコードによって開発者たちのクリエイティビティを刺激する方法を模索してきました。

そして先日、Android のプロジェクトを支援するショーケースであり、あらゆる開発者が自分の実験を発表するギャラリーとなる Android Experiments をリリースすることができました。
最初の 20 の実験では、カメラの実験から革新的な Android Wear アプリ、ハードウェア ハック、最先端の OpenGL のデモまで、幅広いクリエイティブ ワークをご紹介しています。それらのすべてが Android SDK および NDK、Android Wear、IOIO ボード、Cinder、Processing、OpenFrameworks および Unity などのプラットフォームを使用して構築されています。各プロジェクトにおいて、我々が毎日使用するデバイスの捉え方について、大小さまざまな規模でクリエイティブな検証がなされています。

今回、世界中のクリエイターが実験結果を発表する場を開放しましたが、これは始まりにすぎません。勉強を始めたばかりの学生からある程度の経験を持つ開発者まで、Android Experiments はあらゆる人を対象とし、使用するフレームワークやデバイスの種類にも制限はありません。

Android Experiments で、完成したプロジェクトをご覧になったり、ご自身のプロジェクトを発表したりしてください。提出されたプロジェクトすべてを公開できるわけではありませんが、皆さんが創り出したものをぜひ拝見したいと思います。

Posted by Eiji Kitamura - Developer Relations Team


[この記事は Jonathan Wald、プロダクト マネージャーによる Google Developers Blog の記事 "Using schema.org markup to promote your critic reviews within Google Search" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google が 6 年前にレビュー用のリッチ スニペットを発表したことで、構造化されたマークアップを Web ページに挿入することによりコンテンツをプロモートするまったく新しい方法がパブリッシャーに提供されました。それ以来、Google 検索において構造化されたデータの重要性は増す一方であり、当社は世界を、Web を、そしてユーザーの検索内容をより深く理解するために Knowledge Graph を構築してきました。ユーザーが「ex machina のレビューは良かった?」と検索すると、Google はセマンティックを理解し、ユーザーが 2015 年の映画「Ex Machina 」のレビューを知りたがっていること、そして、どこに行けばレビューを見られるかを知りたがっていることが分かるようになりました。

先日の Knowledge Graph におけるレビューの発表を受け、このテクノロジーを利用して、パブリッシャーのみなさんがもう一度、マークアップを使用したレビューの見つけやすさと利用率の向上する機会を設けました。この機能はモバイル、タブレット、およびデスクトップで使用でき、パブリッシャーのレビューをページ上部の目立つカードに整理します。
マークアップを使用して、レビューと、それが Knowledge Graph のエンティティにどのように関連しているかを分かるようにすることにより、パブリッシャーはレビューを今まで目の触れることのなかった人たちに公開できるだけでなく、レビューされたエンティティの Knowledge Graph カードとして、レビューを公開することができるようになります。

現在、映画のエンティティに対するレビューが公開されていますが、今年中にこの機能を TV 番組や書籍などにも展開する予定です。これらの媒体について長めのフォーマットでレビューを提供するパブリッシャーは、レビューからスニペットを選択し、schema.org マークアップを Web ページに追加することによって、レビューを提供開始することができます。このプロセスは、 レビュー マークアップの指示で詳しく説明されていますが、パブリッシャーが示したいスニペット、レビューに関連付けられた URL、レビューしたアイテムに関するその他のメタデータを Google に報告できるようにして、Google が適切なエンティティとレビューの組み合わせを表示できるようにします。

Google は、JSON+LD データ形式などさまざまなマークアップ形式を理解することができ、レビューに関する構造化されたデータをこれまで以上に簡単に Web ページに組み込むことができます。さあ、 ここから始めましょう。


Posted by Eiji Kitamura - Developer Relations Team


[この記事は Wojtek Kaliciński、Android デベロッパー アドボケートによる Android Developers Blog の記事 "Auto Backup for Apps made simple" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

アプリの自動バックアップによって、アプリケーション コードを作成することなく、シームレスなアプリ データのバックアップと復元が可能になります。この機能は、近日中に公開される M リリースを実行する Android デバイスで使用できます。この機能をアプリで有効にするために必要なのは、targetSdkVersion を 23 にアップデートすることだけです。この機能を今すぐ M Developer Preview でテストすることができます。ここでは、targetSdkVersion に関係なく、すべてのアプリに対して自動バックアップが有効になっています。

アプリの自動バックアップは Google によってユーザーと開発者の両方に無料で提供されます。さらに、Google Drive に保存されているバックアップ データはユーザーの容量にはカウントされません。ただし、転送されるデータに関して、ユーザーの携帯電話 / インターネット プロバイダから料金が請求される可能性があることに注意してください。

アプリの自動バックアップとは

デフォルトでは、バックアップを必要とするユーザーのために、アプリのすべてのデータ ファイルがユーザーのドライブに自動的にコピーされます。これにはデータベース、共有プリファレンス、アプリケーションのプライベート ディレクトリ内のその他のコンテンツが含まれ、アプリごとに最大 25 メガバイトに制限されます。Context.getCacheDir()Context.getCodeCacheDir() および Context.getNoBackupFilesDir() で指定されている場所に保存されているデータはすべてバックアップから除外されます。外部ストレージ上のデータについては、Context.getExternalFilesDir() 内のデータだけがバックアップされます。

バックアップ対象の指定方法

バックアップ対象にすることができるアプリ データをカスタマイズするには、res/xml フォルダ内にバックアップ構成ファイルを作成し、アプリのマニフェストで参照します:

<application
        android:fullBackupContent="@xml/mybackupscheme">
構成ファイルで、デフォルトのバックアップ エージェントの動作を微調整するために必要な <include/> ルールまたは <exclude/> ルールを指定します。このドキュメントに記載されている、ルールの構文の詳細説明を参照してください。

バックアップから除外する内容

特定のアプリ データは、バックアップの対象とすることができません。このようなデータについては、上記のメカニズムのいずれかを使用してください。例:
  • サーバーによって発行されたか、デバイス上で生成されたデバイスに固有の識別子は除外する必要があります。これには Google Cloud Messaging (GCM) 登録トークンが含まれます。このトークンを別のデバイスに復元すると、そのデバイス上のアプリが GCM メッセージを受信できなくなります。
  • アカウントの資格情報やその他の秘密情報はバックアップから除外することを検討してください。たとえば、バックアップにこのような情報を保存するのではなく、復元されたアプリを最初に起動するときにユーザーに再認証を要求するなどしてください。
多種多様なアプリが存在することを考えると、開発者にとって重要なのは、自動バックアップがもたらすユーザーへのメリットをどうしたら最大限にできるか、を検討することです。目標は、新しいデバイスの設定の手間を省くことです。ほとんどの場合、これはユーザーのプリファレンスやローカルに保存されたコンテンツを転送することを意味します。

たとえば、インストール時に復元できるよう共有プリファレンスに保存されたユーザーのアカウントがある場合、ユーザーは、以前のサインイン時に使用したアカウントについて考える必要さえなく、パスワードを送信して続行することができます!

さまざまなログイン (Google サインインやその他のプロバイダー、ユーザー名/パスワード) をサポートする場合、以前に使用したログイン方法を容易に記憶できるため、ユーザーがそのような情報を覚えておく必要がありません。

主要/重要なバックアップからの移行

従来の主要/重要なバックアップを、BackupAgent をサブクラス化してマニフェスト (android:backupAgent) で設定することによって実装していた場合、完全なデータのバックアップに移行するのは非常に簡単です。単に android:fullBackupOnly="true" 属性を <application/> に追加するだけですみます。これは M バージョンより前のバージョンの Android では無視されます。つまり、onBackup/onRestore は呼び出されますが、M+ デバイス上では、独自の BackupAgent を提供しながら完全なデータのバックアップを使用したいという意向がシステムに通知されます。

主要/重要なバックアップを使用せず、onCreate(), onFullBackup() でカスタム処理を実行する場合や、onRestoreFinished() でのリストア処理の発生時に通知を受け取る場合でも、同じアプローチを使用できます。XML の include/exclude ルールの実装を保持する場合は、super.onFullBackup() を呼び出すことを忘れないでください。

バックアップ/復元のライフサイクル

データの復元は、ユーザーがアプリを起動できるようになる前に、パッケージのインストールの一部として実行されます。デバイスの充電中に Wi-Fi に接続されている場合、1 日に 1 回バックアップが実行されます。アプリがデータの制限 (現在は 25 MB に設定されている) を超えた場合、その後のバックアップは実行されず、最後に保存されたスナップショットがその後の復元に使用されます。アプリのプロセスが bmgr コマンドを使用して手動で開始された場合、完全なバックアップの実行後、復元の前に、そのプロセスが停止されます (詳細については、以下を参照)。

今すぐアプリをテスト

自動バックアップのテストを開始する前に、デバイスまたはエミュレータに最新の M Developer Preview が存在していることを確認してください。APK をインストールした後で、adb shell コマンドを使用して bmgr ツールにアクセスしてください。
Bmgr はバックアップ マネージャーの操作に使用できるツールです。
  • bmgr run は即時バックアップ パスをスケジュールします。バックアップ マネージャーが正しく初期化できるように、デバイスにアプリをインストールした後で、このコマンドを実行する必要があります。
  • bmgr fullbackup <packagename> は完全なデータのバックアップ操作を開始します。
  • bmgr restore <packagename> は以前にバックアップしたデータを復元します。
bmgr run を起動することを忘れた場合、fullbackup コマンドや restore コマンドを試行したときに Logcat にエラーが表示されることがあります。問題が解決しない場合は、バックアップが有効になっていて、システムの [設定] > [バックアップとリセット] で Google アカウントが設定されていることを確認してください。

詳細はこちらから

GitHub で、自動バックアップの使用方法を示すサンプル アプリケーションを検索できます。完全なドキュメントは developer.android.com で入手できます。

Android M 機能の詳細を参照するには、Google+ Android M Developer Preview Community に参加してください。自動バックアップでバグを見つけた場合、Bug Tracker での報告をお願いします。


Posted by Ryuichi Hoshi - Developer Relations Team


[この記事は Jamal Eason、Android プロダクト マネージャーによる Android Developers Blog の記事 "Get your hands on Android Studio 1.3" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

今夏の初めに Google I/O でプレビューされた Android Studio 1.3 が、安定したリリース チャンネルでご利用いただけるようになりました。当社の Canary およびベータ チャンネルを通して開発者のみなさまから得た初期フィードバックのおかげで、完成度の高い製品となりました。

Android Studio 1.3 は今年最大の機能リリースで、新しいメモリ プロファイラ、向上したテストのサポート、C++ の編集およびデバッグの完全なサポートが含まれています。内容は以下をご覧ください。

Android Studio 1.3 の新機能

パフォーマンスとテスト ツール
  • Android Memory (HPROF) Viewer

    Android Studio を使うことで、Android HPROF のネイティブ形式でのメモリのスナップショットのキャプチャ、分析ができるようになりました。
  • Allocation Tracker

    お使いのアプリで使用するメモリ割り当てのテーブルの表示に加えて、更新された Allocation Tracker にお使いのアプリの割り当てを表示する方法が組み込まれました。
  • モジュールでの APK テスト

    より柔軟なアプリのテストを目指し、モジュール単位でコードをテストするオプションが追加されました。アプリのコード直近でテストを継続する代わりに、新しいテスト プラグイン(‘com.android.test’)を使用します。この機能を利用するには、アプリのプロジェクトで Gradle Plugin 1.3 を使用する必要があります。

コードと SDK の管理

  • アプリ パーミッションの注釈

    Android Studio に、インライン コード注釈のサポートが新たに導入されました。これにより、M リリースの Android における新しいアプリ パーミッション モデルの管理が可能になります。詳細については、コードの注釈をご覧ください。
  • データ バインディング サポート

    新しいデータ バインディング機能では宣言レイアウトを作成でき、アプリケーションのロジックをレイアウトにバインドすることで、ボイラプレート コードを最小限に抑えることができます。詳細については、データ バインディングを参照してください。
  • SDK の自動更新と SDK マネージャー

    Android SDK のアップデートの管理は、Android Studio の一部として組み込まれました。Android Studio は、デフォルトで、新しい SDK とツールのアップデートを確認するようになりました。この統合された新 Android SDK マネージャーで、引き続きプリファレンスを調整することもできます。
  • C++ のサポート

    Android 1.3 の安定したリリースの一部として、C++ エディタおよびデバッガーのサポートを実験的なビルド プラグインと組み合わせた Early Access Preview が導入されました。使用を開始する方法については、Android C++ のプレビュー ページを参照してください。複雑なプロジェクトやビルド構成のサポートは現在開発中です。フィードバックがありましたら是非お知らせください。

アップデート時期

Android Studio へのアップデートは Android アプリ プロジェクトの変更を必要としません。アップデートすると、最新の機能を入手できますが、引き続き Android アプリに使用するビルド ツールやアプリの依存関係のバージョンを制御することもできます。

Android Studio で現在開発中の方は、ナビゲーション メニューからアップデートを確認できます。初めてお使いになるお客様の場合、製品の概要ページで詳細を参照したり、Android Studio のダウンロード サイトから安定したバージョンをダウンロードすることができます。

Android Studio の機能セットのリリースは当社にとっても非常に喜ばしいことです。また、Android Studio での Android の開発を容易にするための次のツールセットも鋭意開発中です。当社へのご要望などフィードバックはいつでも大歓迎です。Google+ で Android デベロッパー ツール チームにお問い合わせください。


Posted by Yuichi Araki - Developer Relations Team


[この記事は Romain Vialard(Google Developers Expert、Google スプレッドシート アドオン Yet Another Mail Merge 開発者)による Google Apps Developers Blog の記事 "Real-time notifications in add-ons with Firebase" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Yet Another Mail Merge は、Gmail で下書きとして保存されたテンプレートと Google スプレッドシートのデータに基づいて、各受信者の個人名の書かれたメールを一斉送信することを可能にする Google スプレッドシート アドオンです。このアドオンは、数百のメールを送信できますが、この種の操作の完了には通常数分の時間を要するため、機能が長時間サーバー側で実行している間に、ユーザー インターフェースに何を表示するべきか、という問題が生じます。

アドオンでのリアルタイム通知

Firebase は、リアルタイムに特化した機能を提供し、この問題を解決します。昨年 12 月、Apps Script チームは HtmlService の改良バージョンを発表しました。これにより制限事項が大幅に削減され、外部 JS ライブラリを使用できるようになりました。Firebase を使えば、リアルタイムで簡単にデータを格納および同期することが可能です。
これらを組み合わせることで、サーバー側で実行しているApps Script 機能により送信されるメールの数をリアルタイムでユーザーに通知することが可能となります。ユーザーがメールのマージを開始すると、メールを送信する Apps Script が呼び出され、同時に Firebase に接続されます。Apps Script が新しいメールの送信を完了するごとに、Firebase のカウンタがインクリメントされ、次の図に示すように UI がリアルタイムでアップデートされます。

実装

ループ内では、メールが送信されるごとに(つまり、メソッド GmailApp.sendEmail() を使用するごとに)、Apps Script UrlFetch サービスを使用し、Firebase にその REST API を使用して書き込みます。Firebase の機能により、これを簡単そして安全に行うことができ、またOAuth 認証フローを使わずFirebase app secret のみで実現することができます。以下は一例です。
function addNewUserToFirebase() {
  var dbUrl = "https://test-apps-script.firebaseio.com";
  var secret = PropertiesService.getScriptProperties().getProperty("fb-secret");
  var path = "/users/";
  var userData = {
    romainvialard:{
      firstName:"Romain", 
      lastName:"Vialard",
      registrationDate: new Date()
    }
  };
  var params = {
    method: "PUT",
    payload : JSON.stringify(userData)
  }
   UrlFetchApp.fetch(dbUrl + path + ".json?auth=" + secret, params);
}
クライアント側では、改善された Apps Script HtmlService により、正式な JS クライアント ライブラリを使用して Firebase に接続し、以前に格納されたデータを取得できるようになりました。特に、このライブラリの on() メソッドは、データベース内の特定の場所におけるデータ変更の監視に使用できます。したがって、サーバー側で新しいタスクが完了する(つまり新しいメールが送信される)ごとに、Firebase に通知し、それに応じて UI が自動的にアップデートされます。
var fb = new Firebase("https://test-apps-script.firebaseio.com");
var ref = fb.child('users/' + UID + '/nbOfEmailsSent');
ref.on("value", function(data) {
  if (data.val()) {
    document.getElementById("nbOfEmailsSent").innerHTML = data.val();
  }
});

アドオンでのその他の Firebase の使用法

上記の例に加え、Google Apps Script アドオンで Firebase を便利に使用する方法は他にもあります。
  • Yet Another Mail Merge は、支払いプランを提案することもでき、その場合顧客リストの保存を必要とします。Firebase はこういったケースにもまさにうってつけです。誰かがプランを購入するごとに、支払いツールが Apps Script ウェブ アプリを呼び出し、これが Firebase に支払いの詳細を書き込みます。したがって、購入の直後にユーザーが追加機能を開くと、サーバー側の機能が Firebase を呼び出し、該当プレミアム機能がこのユーザーに対して有効化されていることを確認できます。
  • もうひとつ便利な使用方法として、メール マージの最終段階で、Firebase を使用して開かれたメールのリアルタイム レポートをスプレッドシートのサイドバーに提供できます。
以上は、Apps Script とFirebase を使用して実現可能な機能のほんの数例に過ぎません。お気軽に自分で試したり、Yet Another Mail Merge をインストールして、実際の例を確認してください。また、FirebaseApp と呼ばれる公開 Apps Script ライブラリがあり、これらは Firebase の使用を開始する際に役立ちます。その他の標準 Apps Script ライブラリと同様に使用してください。
たとえば、次の特定のパラメータを使用して、Firebase からデータを簡単にフェッチできます。
function getFrenchContacts() {
  var firebaseUrl = "https://script-examples.firebaseio.com/";
  var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
  var queryParameters = {orderBy:"country", equalTo: "France"};
  var data = base.getData("", queryParameters);
  for(var i in data) {
    Logger.log(data[i].firstName + ' ' + data[i].lastName
        + ' - ' + data[i].country);
  }
}
Google Apps Script を使用して独自のアドオンを構築してみてください。さらに詳しく知りたい場合は、ドキュメント(developers.google.com/apps-script)を参照、またQuickstart プロジェクトをお試しください。皆さまのアドオンのお役に立てれば幸いです。


Posted by Ian Lewis - Developer Relations Team

[この記事は Ellie Powers、Google Play プロダクトマネージャーによる Android Developers Blog の 7 月 30 日の記事 "Iterate faster on Google Play with improved beta testing" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

7 月 30 日より、Google Play でのベータ版テストの管理とユーザーの参加がより簡単にできるようになりました。ベータ版テストがリリースされてから 2 年が経った今、多くの開発者にとって、ベータ版テストはワークフローの要となっています。ベータ版テストを通して、アイディアのテスト、迅速なフィードバック収集、そしてアプリの改善を実施できます。調査したところ、人気のあるアプリの開発者の 80% がワークフローの一部としてベータ版テストを日常的に実行していることがわかりました。

デベロッパー コンソールでベータ版テストを管理するための改善

開発者は、アップデートを製品に反映する前に、Google Play のデベロッパー コンソールを使用して、選択したユーザーにアプリの初期バージョンをアルファ版テストまたはベータ版テストとしてリリースできます。選択されたユーザー グループは Google Play でアプリを通常通りにダウンロードできますが、ストアでのレビューまたは評価はできません。これにより、開発者がバグやその他の問題に対処している間に、アプリの掲載情報が悪化するということが防止できます。

フィードバックに基づいて、ベータ版テストをより効率的に管理するための新機能、およびユーザーがワンクリックで参加できるようにする新機能が追加されました。

  • NEW!オープン ベータ - オープン ベータを使用すれば、ユーザーがリンクを一回クリックするだけでベータ テストに参加できるようになります。オープン ベータの 1 つの利点は、テスターの人数を大幅に増やすことができることです。参加できるユーザーの最大数を制限することもできます。
  • NEW!メール アドレスを使用したクローズド ベータ - ベータ版にアクセスできるユーザーの数を制限するための新しいオプションとして、メール アドレスのリスト(個別に追加するか、.csv ファイルとしてアップロードできます)を使用してクローズド ベータをセットアップできます。これらのユーザーは、ワンクリックのオプトイン リンクを使用してベータ版に参加できます。
  • Google+ コミュニティまたは Google グループを使用したクローズド ベータ - これは現在使用されているオプションであり、引き続きGoogle+ コミュニティまたは Google グループとともにベータ版を使用できます。既存のテスターを維持して、オープン ベータに移行することもできます。

ベータ版テストを使用して成功している開発者

ベータ版テストは Google Play および Android の迅速な反復機能の 1 つであり、Diamond Dash、Jelly Splash、Agent Alice などヒット作品を製作した Wooga のような開発者の成功に貢献しています。Wooga が Android でどのように製品の改善を行ったのか、パートナーシップの責任者 Sebastian Kriese とエンジニアリングの責任者 Pal Tamas Feher に聞いてみましょう。

Kabam は、ハリウッド スタジオと協力し、マーベル、「ワイルド スピード」、「スター ウォーズ」、「ホビット」など人気作品をベースとした AAA 品質のモバイル端末ゲームを開発したグローバル リーダーです。ベータ版テストによって、Kabam のエンジニアは Android 端末のゲーム プレイを、公開前に完璧に仕上げることができました。「Google Play のアルファ版/ベータ版テストで的確なフィードバックを受け取って迅速に反復する機能は、世界に向けた公開に非常に役に立っています」と Kabam の副社長 Rob Oshima は言います。

Vector Unit の共同創業者である Matt Small は、最新のインタビューで、ベータ版テストを徹底的に活用し、Beach Buggy Racing の改善、およびベータ版テストでしか発見できなかったであろう問題の特定を行ったと話しています。Vector Unit が実施した内容については、Matt が Google Play でのベータ版テストに関して書いた Gamasutra のブログ記事をお読みください。Matt による活用のヒントをいくつかをピックアップして次に示します。

  1. 機密情報にかかわるビルドは、メール アドレスを使用して個別のテスターを招待するクローズド ベータに制限。目立つ問題を解決したら、製品として公開する前に、アプリをオープン ベータとして公開してより広いユーザーからフィードバックを収集。
  2. 求めるものを早めに明らかにする。ベータ版テストのリスク(ソフトウェアが安定していない可能性があるなど)についてユーザーに通知し、フィードバックに何を求めているかを伝える。
  3. 批判的なフィードバックを歓迎。批判がよく考えられていて明確に説明されている場合はユーザーに感謝し、あまり役に立たないフィードバックはより生産的な方向に導く。
  4. 迅速な対応。ユーザーがゲーム開発者から実際に返答を受けると、参加する意欲がより高まる。
  5. Google Play のゲーム サービスの有効化。実績、リーダーボードなどの機能に公開前にテスターがアクセスできるようにするには、Google Play のゲーム サービスのテスト パネルに移動して、それらを有効にする。
ベータ版テストの今回のアップデートによってアプリのテストや貴重なフィードバックの収集が容易になり、上記活用のヒントがテストが成功に導くことを願っています。デベロッパー コンソールのヘルプ センターにアクセスして、アプリへのベータ版テストのセットアップに関する情報を参照してください


Posted by Yuichi Araki - Developer Relations Team


[この記事は Jake Leichtling、Physical Web 調査担当による Chromium Blog の記事 "Exploring the Physical Web with Chrome for iOS" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

インターネットに接続されている現在の世界では、人々と瞬時に電子的なやりとりをする方法が数多く存在します。たとえば、高度なパーキング メーターではクラウドを介して支払いをすることができます。ただし、開発者にとっては、人々が簡単にアクセスできるコンテクスチュアルなエクスペリエンスの構築は容易ではありません。スマートフォンが普及した現在でも、ユーザーは外出中にアプリのインストールをしたり URL の入力をしたがらないという傾向があります。

Physical Web は、ユーザーが抵抗なく使用できるコンテクスチュアルなインタラクションを構築するために役立つオープン ソース アプローチです。数か月前、Chrome for iOS に Today ウィジェットが追加され、ユーザーが新しいタブを開いたり、通知センターから直接音声検索を実行したりできるようになりました。 また、新しい Chrome for iOS では Physical Web が Chrome Today ウィジェットに統合され、ユーザーが自分に関係のある Web コンテンツのオンデマンド リストにアクセスできるようになりました。
先日発表されたオープン Bluetooth Low Energy ビーコン フォーマットである Eddystone を使用した Physical Web により、コンテンツを検索可能にすることが容易になりました。Eddystone では、各種のユースケースのために複数のフレーム タイプがサポートされます。Physical Web は、圧縮された URL を表示するために設計されたビーコン フレーム タイプの Eddystone-URL を使用し、ブロードキャストされるコンテンツを表示します。コンテンツを Physical Web に追加するには、Eddystone-URL をサポートするビーコンを設定して、選択した URL を送信するだけです。

Physical Web を有効にしているユーザーが Today ビューを開くと、Chrome ウィジェットがブロードキャストされた URL をスキャンしてその結果を表示し、ビーコンとの距離を推測してコンテンツをランク付けします。Physical Web によって実現されるユーザー エクスペリエンスをより詳しく知りたい場合は、Google の Cookbook にアクセスし、GitHub のオープン ソース コミュニティに参加してください。

新しい Chrome for iOS は、ユーザーの日々のモバイル エクスペリンスに、Physical Web へのアクセスを追加するための最初の試みといえます。エコシステムの拡充に伴い、 Google は Physical Web を ユーザーの手元に届ける新しい方法を模索し続けます。みなさんの開発した新しいコンテクスチュアル エクスペリエンスに出会える日を楽しみにしています。

Posted by Eiji Kitamura - Developer Relations Team


Google Developers Group (GDG) コミュニティの皆さんが主催する開発者向けイベント「GDG DevFest Season」が、9 月から 11 月にかけて、世界各地で開催されます。

日本でも、GDG 信州を皮切りにそれぞれのコミュニティが以下の日程で開催を予定しています。 参加を希望される方は、会場ごとに参加お申し込みフォームが用意されていますので、ご登録ください。

※詳細未定のイベントについては、確定次第、情報を更新する予定です。
【イベント概要】

●GDG 信州
タイトル:WebComponents&Polymer コードラボ
概要:Polymer を使ったウェブサイトやコンポーネントの作成ステップを学びます
日程:2015 年 9 月 12 日 (土) 13:00 - 18:00 (※コードラボ終了後、懇親会を開催する予定)
場所:えんぱーく 304会議室(長野県塩尻市)
定員:20 名
主催:GDG 信州
詳細:http://goo.gl/U13ZVA

●GDG 東京 [10/2 update]
タイトル:Android 最新事情 + Firebase + マテリアルデザイン
日程:2015 年 10 月 10日 (土)13:00 - 18:00
場所:イベント&コミュニティスペース dots.
定員:250 名
主催:GDG 東京
詳細:https://goo.gl/lXKLrD

●GDG 京都 [10/2 update]
タイトル:GDG DevFest Kyoto 2015
概要:Android, Chrome, Polymer, GAS等、様々なセッションとなります。
日程:2015 年 10 月 17日 (土) 13:00 - 19:00
場所:京都リサーチパーク (京都市)
詳細:https://goo.gl/azBXMs
定員:50 名
主催:GDG 京都

●GDG 九州
タイトル:スタート Android
日程:2015 年 10 月 (日時未定)
概要:ハッカソン/他コミュニティとも合同で行う予定
場所:AIp Cafe(福岡市中央区)
定員:15 名
主催:GDG 九州

●GDG 神戸 [9/30 update]
タイトル:GDG DevFest Kobe Firebaseハンズオン勉強会
日程:2015年10 月11 日(日) 13:00 - 18:00(※終了後、懇親会を開催予定)
場所:さくらインターネット
定員:16 名
主催:GDG 神戸
詳細:http://goo.gl/forms/ezT1lpQSsJ

●GDG 四国 [10/13 update]
タイトル:DevFest Shikoku Android Wear Watch Face ハンズオン
概要:Android Wear の Watch Face を作るハンズオンを実施します。
日程:2015 年 11月 28 日(土) 13:00 - 18:00
場所:e-とぴあ・かがわ(香川県高松市)
定員:30 名
主催:GDG 四国
詳細:http://goo.gl/TcGDkR

GDG Devfest Season 2015 全体に関する情報はこちらをご覧ください。

Posted by Takuo Suzuki - Developer Relations Team


[この記事は Chandu Thota、エンジニアリング ディレクターと Matthew Kulick、プロダクト マネージャーによる Android Developers Blog の記事 "Lighting the way with BLE beacons" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

数千年に渡り世界の海を航行する船乗りの行く手を照らしてきた灯台。その灯台のように、電子ビーコンはアプリに正確な場所および状況から得られる情報を提供して、世界をナビゲートする役目を果たします。例えば、ビーコンは、バス停をラベル付けし携帯端末がバスのチケットを用意できるようにしたり、美術館のアプリは目の前にある展示物の説明を表示したりすることができます。現在、新しい一連の機能のリリースを開始しようとしており、これにより、開発者がこのテクノロジーを使用してアプリを作成できるようになります。これには、利用者のデバイスと通信するための Bluetooth Low Energy(BLE)ビーコンの新しいオープンなフォーマット、この有意義なデータをアプリや Google サービスに追加する方法、および保有しているビーコンを効率的に管理する方法が含まれます。


Eddystone: オープンな BLE ビーコンのフォーマット

BLE ビーコン業界のパートナーと密な協力関係を結び、既存のビーコン テクノロジーに関するニーズや制約について多くを学びました。そしてそれを基に、現実のユースケース、クロスプラットフォームのサポート、およびセキュリティに対応する新しいクラスのビーコンの作成に着手しました。

BLE ビーコンであることの中核はフレーム フォーマットです。つまり、ビーコンが世界に発信する言語です。現在、誰でも使用できる BLE ビーコンの新しいオープンなフォーマットである Eddystone を公開することによって、ビーコン テクノロジーのユースケースの範囲を広げています。Eddystoneは堅牢で拡張可能です。 各種のユースケースのために複数のフレーム タイプをサポートし、新しい機能を簡単に導入できるようにバージョニングをサポートしています。またクロスプラットフォームであり、Android、iOS、または BLE ビーコンをサポートする任意のプラットフォームをサポートできます。さらに、誰もが使用し改善に貢献できるように、オープンソースの Apache v2.0 ライセンスで GitHub から入手できます。

ビーコンはパブリックな信号である識別子を介して近くの Bluetooth Smart デバイスが検出できるように設計されています。つまり、プライバシーとセキュリティの確保が非常に重要であり、このためEphemeral Identifier(EID)と呼ばれる機能が組み込まれました。これは、頻繁に変更されて、認証されたクライアントのみがデコード可能です。EID を使用すると、飛行機を降りた後に手荷物を見つけたり、紛失した鍵を見つけたりということが安全にできるようになります。この設計の技術仕様はまもなく公開予定です。

開発者のための Eddystone: アプリにより適したコンテキスト

Eddystone は開発者に 2 つの重要な利点を提供します。より意味のあるコンテキストと正確な場所です。これらをサポートするために 2 つの新しい API が導入されています。Android と iOS 用の Nearby API を使用すると、アプリが近くにあるデバイスやビーコン(特定のバス停、美術館の特定の展示など)を容易に特定、通信を開始でき、より適切なコンテキストを提供します。Proximity Beacon API を使用すると、開発者は意味を持つ場所(つまり、緯度/経度に関連付けられている場所)とクラウドに格納されている関連するデータをビーコンに関連付けることができます。この API は既存の位置情報 API(次のバージョンの Places API など)で使用することもできます。

ビーコン メーカーのための Eddystone: 複数のプラットフォームのための単一のハードウェア

Eddystone の拡張可能なフレーム フォーマットを使用すると、ハードウェア メーカーは複数のモバイル端末プラットフォームおよびアプリケーション シナリオを単一のハードウェアでサポートできます。既存の BLE ビーコンは、簡単なファームウェアのアップデートによって Eddystone 対応にすることができます。Eddystone は基本的にオープンで拡張可能であり相互に使用できるプロトコルとして作成されました。そのため、ハードウェア メーカーのパートナーと密に連携することにより、Eddystone の認証プロセスも近々整備する予定です。Eddystone 対応のビーコンはすでに多数のパートナーによって作成されています。

ビジネスのための Eddystone: 保有しているビーコンを簡単に保護および管理

ビジネスが、ビーコンを利用したアプリの検証段階からスタジアムやターミナル駅などへのビーコンの配備に移行すると、ハードウェアの設置およびメンテナンスは容易ではなくなります。正常動作中、故障、紛失、交換などベーコンの状態を管理する必要があります。Eddystone のテレメトリー フレーム(Eddystone-TLM)と Proximity Beacon API の診断エンドポイントの組み合わせで実装されたビーコンを使用すれば、設置者はビーコンのバッテリーの状態および交換の必要性(一般的なロジスティクスの課題)を低コストのビーコン ハードウェアで監視できます。

Google 製品のための Eddystone: 新しく、より優れたユーザー エクスペリエンス

Google 自体の製品およびサービスもビーコンによる機能向上が図られています。Google マップは、今年初めにポートランドでビーコンベースの交通情報通知を導入しました。これにより、利用者は特定の駅のリアルタイムの時刻表により速くアクセスできるようになりました。まもなく、Google Now でもこのコンテキスト情報を使用して、もっとも関連のあるカードを優先させる(レストランにいるときにメニューの内容を表示するなど)こともできるようになります。

モバイル端末アプリを使用できない場合でもビーコンが機能を発揮できるよう、Physical Web プロジェクトでは URL をブロードキャストするEddystone ビーコンを使用します。これにより、ユーザーは周辺のものとやり取りができるようになります。

独自の製品やサービスで使用するために Eddystone を選択した場合でも、Places API、Nearby API などの広範な Google ソリューションの一部として使用するために Eddystone を選択した場合でも、ビーコンはアプリのユーザー エクスペリエンスを向上するための重要な方法です。アプリの開発者とビーコンのメーカーのエコシステムは、これらのテクノロジーを推進するために重要であり、最高のアイデアは 1 つの会社のみからは生まれません。ぜひ我々のパートナーから Eddystone 対応のビーコンを購入し、構築を始めてみてください。


Posted by Yoshifumi Yamaguchi - Developer Relations Team


[この記事は Akshay Kannan、プロダクト マネージャーによる Android Developers Blog の記事 "Connect With the World Around You Through Nearby APIs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

携帯電話によって、すぐ近くにいる人とでも、地球の裏側にいる人とでも簡単に連絡を取れるようになりました。しかし、非常に皮肉なことに、隣に座っている人と携帯電話でやり取りをすることによって、気まずい思いをすることもあります。

現在、隣の人に単純な情報を渡すためには、連絡先情報の交換、QR コードのスキャン、Bluetooth によるペアリングなど、いくつかの手順を実行する必要があります。理想的には、現実世界で行うのと同じように、向き合うだけで情報を交換できるようにすべきです。

これこそ、Google が Nearby を開発した理由です。Nearby では、ビーコンと同様に互いを見つけて通信を行えるように、iOS および Android のデバイス用の Nearby Messages API を提供します。

Nearby では Bluetooth、Wi-Fi、および不可聴のサウンド (デバイスのスピーカーとマイクを使用する) の組み合わせを使用して、通信可能な近接領域を確立します。当社は Nearby テクノロジーを Chromecast Guest ModeGoogle Play ゲームの Nearby PlayersGoogle Tone などのいくつかの製品に組み込みました。

最新リリースの Google Play サービス 7.8 では、Nearby Messages API が iOS と Android (Gingerbread 以上) のデバイスですべての開発者にご利用いただけるようになりました。Nearby は Google アカウントを使用せず、要求されることもありません。アプリが最初に Nearby を呼び出すと、そのアプリにアクセス権を付与するダイアログが、ユーザーに対して表示されます。

Google のパートナー数社が、Nearby でできることを示すクリエイティブなユーザーエクスペリエンスを構築しました。

Edjing Pro は、Nearby を使用し、DJ がトラックリストを周囲の人々に公開できるようにします。リスナーは気に入ったトラックに投票し、その投票結果がリアルタイムで更新されます。
Trello は、Nearby を使用して情報共有を簡単にします。ボタンをタップするだけで、Trello ボードを周囲の人と共有できます。
Pocket Casts は、Nearby を使用し、ポッドキャストを検索して周囲の人と比較します。Pocket Casts で [Nearby] タブを開くと、周囲の人のポッドキャストと、共有しているポッドキャストのリストが表示されます。
Trulia は、Nearby を使用し、家探しのプロセスを簡素化するためのアプリで、ユーザーが作成したボードに、周囲の人が Nearby を使用して簡単に参加できます。
詳細は、developers.google.com/nearby でご確認ください。


Posted by Eiji Kitamura - Developer Relations Team


[この記事は Jen Harrington、Google Maps API プロダクト マネージャーによる Geo Developers Blog の記事 "The place picker gets a new signal from Bluetooth beacons" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google Play サービス 7.8 では、Places API for AndroidPlace Picker が、ビーコンからの信号を使用しデバイスの現在位置を特定します。

Place Picker は、場所、住所、地図上の場所など、ユーザーが理解できる言葉で現在位置のやりとりを行うための優れた UI ウィジェットです。Proximity Beacon API を Google のビーコン プラットフォームの一部として起動すると、Bluetooth Low Energy (BLE) ビーコンによってデバイスに新しいコンテキスト信号が提供されます。ユーザーのデバイスが Proximity Beacon API によって登録されたビーコンの近くにある場合、ビーコンに関連付けられた PlaceId がデバイスで使用できる他の信号と組み合わされます。この強力な信号は、Place Picker でユーザーに表示される候補のランク付けに使用されます。

アプリで既に Place Picker を使用している場合、この統合は無料です! また、Place Picker を実行するために ACCESS_FINE_LOCATION が既に要求されているため、ユーザーがさらにパーミッションを要求されることはありません。Place Picker ではビーコンをリッスンするために BLE テクノロジーが使用されます。この変更によって影響を受けるのは、デバイスの Bluetooth を既にオンにしているユーザーに対する場所の推測だけです。これによって Bluetooth がオンになったり、Bluetooth をオフにしているユーザーに、オンにするよう指示することはありません。

自分のビーコンを展開する場合は、デベロッパー ドキュメントの簡単なチュートリアルを参照してください。

Posted by Yoshifumi Yamaguchi - Developer Relations Team


[この記事は Addy Osmani、開発プラットフォーム エンジニアによる Google Developers Blog の記事 "This is Material Design Lite" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]


2014 年、 Google は すべてのデバイスのフォームファクタで上質なデザインと美しい UI のガイドラインを提供することを目的として、マテリアル デザイン仕様を公開しました。本日、Google は素の CSS、HTML および JavaScript を使用したWeb サイトに、この仕様を導入するための最初の試みをリリースします。これを、 マテリアル デザイン ライト (MDL) と呼んでいます。

MDL では、マテリアル デザインの "Look and Feel" を Web サイトに簡単に追加できます。MDL の “ライト” な部分は、主要なデザイン目標に由来します。MDL には依存関係がほとんどなく、インストールや使用が容易です。また、フレームワークに寛容です。つまり、MDL はフロントエンド ツール チェーンが急速に変化する状況で使用できます。MDL はコード サイズの点でオーバーヘッドが少なく (gzip 圧縮された状態で最大 27KB)、Web サイトのマテリアル デザインを有効にすることに特化しています。

今すぐ利用を開始するか、CodePen の例のいずれかをお試しください。
MDL は Polymer で構築された Paper 要素のわかりやすい実装です。Paper 要素は個別に使用することも、組み合わせてマテリアル デザインスタイルのサイトを作成することもできる完全にカプセル化されたコンポーネントで、より高度なユーザーの操作をサポートします。つまり、MDL は同等の Polymer 要素と一緒に使用できます。

画期的なテンプレート


MDL はマーケティング ページ、テキスト記事およびブログなど、コンテンツの多い Web サイトのために最適化されています。Google は、テンプレート ページからダウンロードできる MDL を使用して作成可能な幅広いサイトをご紹介するために、レスポンシブなテンプレートを構築しました。これらのテンプレートが、魅力的なサイト構築のお役に立てば幸いです。

ブログ:

テキストの多いコンテンツ サイト:

ダッシュボード:

単独の記事:
and more!

技術的な詳細とブラウザのサポート

MDL には、マテリアル デザイン ボタン、テキストフィールド、ツールヒント、スピナーなど、豊富なコンポーネント セットが含まれています。また、新しいマテリアル デザインの 柔軟な UI ガイドラインに準拠したレスポンシブなグリッドおよびブレイクポイントも含まれています。

MDL ソースは、 BEM を使用して Sass で記述されます。できれば  Google のテーマ カスタマイザーまたは組み込みの CSS を使用していただきたいですが、 GitHub から MDL ソースをダウンロードして独自のバージョンを構築することもできます。MDL を使用する最も簡単な方法は、 Google の CDN を参照することですが、CSS をダウンロードするか、 npm またはブラウザから MDL をインポートすることもできます。

最新のすべての主要ブラウザ (Chrome、Firefox、Opera、Edge) および Safari で完全な MDL エクスペリエンスが動作しますが、Google の厳しいテストに合格しなかった IE9 などのブラウザでは CSS のみに制限されます。Google のブラウザの互換性一覧には、MDL が公式にサポートするブラウザに関する最新情報が表示されています。

その他の質問

Google は、デザイナーとともに、進化を続けるマテリアル デザインに取り組み、常に一歩先をいく発想を Web に取り入れてきました。これには、レスポンシブなテンプレート、高パフォーマンスのタイポグラフィー、バッジなどの未実装コンポーネントへのソリューションの提供も含まれます。MDL は現在の仕様に対応し、いまだ進化を続ける仕様へのガイダンスを提供します。マテリアル デザインの仕様についてのユーザーのご意見やご質問が MDL の進化を促し、Web におけるマテリアル デザインの役割を向上させます。

数多くのご質問がおありだと思いますが、一部については、 FAQ で回答しています。さらにご質問がある場合は、お気軽に GitHubStack Overflow でお尋ねください。

まとめ

MDL は、ユーザーが精通し毎日使用している、Web の中核をなすテクノロジーである CSS、HTML および JS を基盤として構築されています。MDL をプロジェクトに導入することで、信頼性が高く洗練された Web 用のマテリアル デザインの実装にアクセスできるようになります。マテリアル デザイン ライトで構築された、魅力的で洗練されたレスポンシブな Web サイトを拝見できるのを心より楽しみにしています。


Posted by Eiji Kitamura - Developer Relations Team


Udacity 上で Google が提供する学習コンテンツとして、新たに 5 つのコースが追加されました。Android アプリの設計の基本、Android Wear / Android TV / Google Cast / Android Auto といった話題のテクノロジー、そしてアプリケーションのマネタイズ戦略まで広範囲にわたるコンテンツが揃いました。

なお、上記コースは、Study Jams 2015 (2015 年 9 月末まで開催)の対象コースです。短期間で受講できるコースも多数ありますので、是非ご参加ください。Study Jams 2015 に参加を希望される方は「Study Jams に参加して、Android や Web 開発を一緒に学びましょう」をご覧いただき、申し込みをお願いします。
Android Design for Developers 【中級】
このコースでは、マテリアルデザインの原理を実際にどのように適用していくかについて学びます。最初に、Androidアプリ設計の基本を振り返り、サンプルアプリを利用して設計要素を変換する方法を紹介します。最後に、マテリアルデザインの要素、外観などを作成し利用する方法を学びます。 【学習期間】 4 週間
Android Wear Development 【上級】
スマートウォッチアプリを作ってみよう! このコースでは、Android アプリの開発経験をさらに進めて、Android Wear アプリを開発する方法を学びます。ウェアラブルならではのユーザー体験をデザインするために必要な知識を身につけます。
【学習期間】 2 週間
Android TV and Google Cast Development 【上級】
リビングルームでも Android アプリを! このコースでは、Google Cast や Android TV を利用して、大きなスクリーンの中で動かすアプリの開発について学びます。
【学習期間】 1 週間
Android Auto Development 【上級】
車の中でも Android アプリを! このコースでは、Android Auto について学びます。既存の音楽再生やメッセージングアプリを Android Auto に対応させるための方法を紹介します。
【学習期間】 1 週間
App Monetization 【中級】
収益性の高いビジネスを実現することは決して簡単なことではありません。このコースでは、マネタイズ戦略の立案、実施、評価までを効果的に行うための実践的な方法を学びます。
【学習期間】 4 週間


Posted by Takuo Suzuki - Developer Relations Team


[この記事は Shannon Woods、テクニカルプログラムマネージャーによる Android Developers Blog の記事 "Low-overhead rendering with Vulkan" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]
ゲームおよび 3D グラフィック アプリケーションの開発者がぶつかる大きな壁。それは、1 秒にも満たないごく短い時間に、どれだけ複雑なシーンを描画できるかということです。グラフィック開発では、レンダリングにおける GPU の効率的なデータ利用を実現するため、ほとんどの作業をデータの編成に費やします。一部のグラフィック プロセッサーのドライバーは実際に処理する前にそのすべてのデータを再編成することがあるため、どんなに慎重な開発者でも予期しえないボトルネックに直面することがあります。これらのドライバーを制御するために使用される API もマルチスレッドで使用するために設計されておらず、並列であればより効率的に実行できる呼び出しについて、ロックを同期する必要がでてきます。これらのすべてが CPU のオーバーヘッドとなり、本来ならばシーンの描画に費やしたい時間と能力がここで消費されてしまいます。

オーバーヘッド削減と、開発者の制御強化

CPU オーバーヘッドのいくつかの原因に対処して、開発者がレンダリングをより直接的に制御できるようにするために、新しい 3D レンダリング API である Vulkan™ を Android に導入するための作業が行われてきました。OpenGL™ ES と同様に、Vulkan は Khronos によって管理されている 3D グラフィックおよびレンダリングのオープン スタンダードです。Vulkan は、ドライバーの CPU オーバーヘッドを最小化するため、およびアプリケーションが GPU の動作をより直接的に制御できるように、設計されています。また、Vulkan は、複数のスレッドが作業を実行できるようにする(コマンド バッファーの作成を同時に行うなど)ことによって、より優れた並列処理が可能です。

API は想定内で作動してこそ本領を発揮する

さまざまなデバイスで動作するアプリケーションを一度に記述できるように、Android 5.0 Lollipop では OpenGL ES のための 5 万を超える新しいテストを含む Android の Compatibility Test Suite(CTS)を大幅に拡張、その後も多数追加されています。これはドライバーの問題を特定して修正するための広範なオープン ソースのテスト スイートを提供しており、開発者とエンド ユーザーにとってより堅牢で信頼できる操作性を生み出します。Vulkan に関しては、Android CTS で使用するための同様のテストを開発するだけでなく、開発したテストを Khronos に提供し、Vulkan 自体のオープン ソース適合テスト スイートで使用できるようにしています。これにより、Khronos は Vulkan のドライバーを複数のプラットフォームおよびハードウェアでテストでき、3D グラフィックのエコシステム全体の改善が可能です。

すべては開発者の選択

Vulkan を作成、テスト、および出荷するために鋭意作業中ですが、それと同時に OpenGL ES にも貢献してサポートする予定です。これにより開発者は、簡潔な OpenGL ES か、直接的な制御の Vulkan か、用途に応じて適切な API を選択できるようになります。どちらの API を選択した場合でも、開発者が快適に使用できることをお約束します。
Vulkan はまだ開発中ですが、仕様、テスト、およびツールは、準備ができ次第http://www.khronos.org/vulkan にリリースされる予定です。


Posted by Yoshifumi Yamaguchi - Developer Relations Team


Study Jams 開催期間も残りひと月となりました。みなさん、学習の進み具合はいかがでしょうか? 順調に進んでいる方もいれば、1 人ではなかなか進まないと悩みをお持ちの方もいらっしゃるかと思います。

そこで、受講にあたってのお互いの課題や悩み、意見等を出し合い、問題意識を共有するとともに、それぞれの学びを共有する機会として、下記のイベントを開催します。9月末のゴールに向けて、みんなで一緒に勉強しましょう。

【概要】
日時:2015 年 9 月 14 日(月)19:00 - 21:00 (受付 18:30〜)
場所:Google 東京オフィス(六本木ヒルズ)
定員:80 名 (先着順)
対象:Study Jams 参加者およびオーガナイザー
  イベントの参加にあたっては、事前に Study Jams への登録が必要となります。
  なお、Study Jams へのお申込み方法は「Study Jams に参加して、Android や Web 開発を一緒に学びましょう」を
  ご覧ください。

プログラム:
- 講演:Udacity で学ぶコツ - 効果的に学習するための実践ノウハウ
   スピーカー:
   足立 昌彦 氏(Google Developer Expert)
   矢倉 眞隆 氏(Google Developer Expert)
- 質疑応答
- 受講者・オーガナイザーによるLT

【参加申し込み】
こちらのフォームよりお申込みください。


【LT 発表者を募集します】
参加者からの LT (発表時間は5分程度)も募集します。コース受講におけるポイント、工夫したこと、受講後の感想などネタをお持ちの方は参加申込みの際にテーマを教えてください。
応募は、参加登録フォームからからお願いします。

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


Posted by Takuo Suzuki - Developer Relations Team


2012 年から始まった Android 向けアプリ開発を通じて、プログラミングを学ぶ「東北 Tech 道場」。Google も後援という形で東北 Tech 道場の活動をサポートしています。

東北 Tech 道場ではテクノロジーを学びたいという道場生と、教えたいという講師が 3 ヶ月間のあいだ Android のアプリ開発を中心に、2 週間に一度「道場」に集まり講師の方のサポートのもと、様々なアプリ開発を行っています。

2015 年 9 月現在、すでに 8 回実施されており、これまでに道場生が作ったアプリはこちらでみられます。
2012 年の「東北 Tech 道場」開始時から開催している 石巻道場や仙台道場などに加えて、回を重ねる毎に釜石道場、盛岡道場、北上道場など道場自体も広がりを見せています。そして、2015 年 9 月 12 日 (土)に始まる第 9 期からは新たに八戸道場と郡山道場が開設されます。

今後、さらに「東北 Tech 道場」を通じて、アプリ開発をより多くの道場生に学んでいただけるよう、このたび「東北 Tech 道場」は講師の方を募集されています。

講師としての参加に興味がある方はこちらのフォームよりお問い合わせください。

より多くの講師の方の応募をお待ちしております。

Posted by Takuo Suzuki - Developer Relations Team