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

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

方向

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


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

最初の 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

マークアップを使用して、レビューと、それが Knowledge Graph のエンティティにどのように関連しているかを分かるようにすることにより、パブリッシャーはレビューを今まで目の触れることのなかった人たちに公開できるだけでなく、レビューされたエンティティの Knowledge Graph カードとして、レビューを公開することができるようになります。

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

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


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

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

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

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

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

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

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

特定のアプリ データは、バックアップの対象とすることができません。このようなデータについては、上記のメカニズムのいずれかを使用してください。例:
多種多様なアプリが存在することを考えると、開発者にとって重要なのは、自動バックアップがもたらすユーザーへのメリットをどうしたら最大限にできるか、を検討することです。目標は、新しいデバイスの設定の手間を省くことです。ほとんどの場合、これはユーザーのプリファレンスやローカルに保存されたコンテンツを転送することを意味します。

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

さまざまなログイン (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 を起動することを忘れた場合、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
Share on Twitter Share on Facebook


Android Studio 1.3 の新機能

パフォーマンスとテスト ツール

コードと SDK の管理

アップデート時期

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

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

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


Posted by Yuichi Araki - Developer Relations Team
Share on Twitter Share on Facebook

実装

ループ内では、メールが送信されるごとに(つまり、メソッド 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 を便利に使用する方法は他にもあります。
以上は、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
Share on Twitter Share on Facebook

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
Share on Twitter Share on Facebook

先日発表されたオープン 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
Share on Twitter Share on Facebook

【イベント概要】

●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
Share on Twitter Share on Facebook

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
Share on Twitter Share on Facebook

Trello は、Nearby を使用して情報共有を簡単にします。ボタンをタップするだけで、Trello ボードを周囲の人と共有できます。
Pocket Casts は、Nearby を使用し、ポッドキャストを検索して周囲の人と比較します。Pocket Casts で [Nearby] タブを開くと、周囲の人のポッドキャストと、共有しているポッドキャストのリストが表示されます。
Trulia は、Nearby を使用し、家探しのプロセスを簡素化するためのアプリで、ユーザーが作成したボードに、周囲の人が Nearby を使用して簡単に参加できます。
詳細は、developers.google.com/nearby でご確認ください。


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


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

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

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

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
Share on Twitter Share on Facebook



Posted by Takuo Suzuki - Developer Relations Team
Share on Twitter Share on Facebook

ゲームおよび 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
Share on Twitter Share on Facebook


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

Share on Twitter Share on Facebook