Polymer、Android( 前編後編)、 Android Wear に引き続き、ビデオシリーズ I/O Bytes 2014 の Chrome 関連の動画に日本語字幕が追加されましたのでご紹介します。

Chrome App の Kiosk モードをご紹介

Google I/O の会場で提供されていたチェックインシステムは、すべて ChromeBox 上の Chrome App で提供されていたことをご存知でしたか?それを実現する Kiosk アプリケーションについて解説します ...
Polymer、Android(前編後編)、Android Wear に引き続き、ビデオシリーズ I/O Bytes 2014 の Chrome 関連の動画に日本語字幕が追加されましたのでご紹介します。

Chrome App の Kiosk モードをご紹介

Google I/O の会場で提供されていたチェックインシステムは、すべて ChromeBox 上の Chrome App で提供されていたことをご存知でしたか?それを実現する Kiosk アプリケーションについて解説します。



Chrome で 手軽に多国籍な支払いフローを実現する方法

ブラウザ上で支払いを行う際、ユーザーは住所やクレジットカードなど、様々な情報を入力する必要があります。特にワールドワイドに展開されるサービスの場合、見知らぬ国の住所が正確かどうかを確認するのは簡単ではありません。requestAutocomplete を使えば、ユーザーは、予め Chrome 入力しておいた住所を簡単に入力できるようになります。



Chrome Apps: 2014 年まとめ

Manifest v3 や app_shell など Chrome Apps の最新情報をお伝えします。



NaCl アプリを作る

Chrome App を使って、ブラウザ環境内で Native Client アプリケーションの開発を完結するフローを、curl や git、vim、NaCl GDB、ローカルサーバーなどを使ったデモを通してご紹介します。



PNaCl SIMD: ウェブのスピード

CPU の可能性を最大限に引き出す SIMD を Portable Native Client で利用する方法についてご紹介します。



Chrome App の Google Cloud Messaging を深掘りする

Chrome Apps で利用可能になった Google Cloud Messaging (GCM) を使った、メッセージの受信と送信のコンセプトを解説。



Posted by Eiji Kitamura - Developer Relations Team

Android 5.0 Lollipop にてリリースされた新機能の一部について、その実装方法を具体的に示した  コードサンプルを新たに 20 以上  追加しました。コードサンプルは、 Android Studio 1.0 で新たなサンプル ウィザードを使用すれば簡単にインポートできます。

File > Import Sample を選択して、利用可能なサンプルを表示します。各サンプルの説明とプレビューもそこに表示されます。サンプルを選択して Next を選択すると、新しいプロジェクトが自動的に作成されます。このプロジェクトをエミュレーターまたはデバイス上で実行し、あとは自由にコードをお試しください ...
Android 5.0 Lollipop にてリリースされた新機能の一部について、その実装方法を具体的に示した コードサンプルを新たに 20 以上  追加しました。コードサンプルは、Android Studio 1.0 で新たなサンプル ウィザードを使用すれば簡単にインポートできます。

File > Import Sample を選択して、利用可能なサンプルを表示します。各サンプルの説明とプレビューもそこに表示されます。サンプルを選択して Next を選択すると、新しいプロジェクトが自動的に作成されます。このプロジェクトをエミュレーターまたはデバイス上で実行し、あとは自由にコードをお試しください。

Android Studio 1.0 のサンプル ウィザード


Android Studio 上に新たにインポートしたサンプル プロジェクト

上記の方法の他に、  デベロッパー向けサイトの  サンプル ブラウザ から探す方法もあります。それぞれのサンプルには、Overview(概要説明)、アプリのファイル構造を確認できる Project(プロジェクト)ページ、そのサンプルの zip ファイルを入手できる Download(ダウンロード)リンクが掲載されています。さらに別の方法として、SDK Manager にて Android 5.0(API 21)用の  SDK サンプル をダウンロードして、既存のプロジェクトとしてご自分の IDE にインポートする方法もあります。

マテリアル デザイン

遷移アニメーションのサンプル
マテリアル デザインを採用する場合は、以下に挙げるマテリアル要素に特に重点を置いたサンプルコードが参考になるでしょう。
詳しくは、デザイン  チェックリスト、主要 API およびウィジェットのリストガイドラインのドキュメントを参照してください。

上記マテリアル デザイン要素の一部を実装したものを見るには、Google I/O アプリのソースコードを参照してください。

プラットフォーム

Lollipop  では、Android プラットフォーム史上、最大規模のアップデートを行っています。Overview 画面では、複数のタスクを  並んで表示されたドキュメントとして表現できます。高度な通知の導入には、こちらの  サンプル  コードを利用できます。このコードには、lockscreen と heads-up notification API の使い方が示されています。

さらに、新しく Camera API  を導入し、より高度な画像キャプチャ機能と処理能力を提供しています。これらのサンプルでは、カメラ プレビューを使って  写真を撮る方法動画の録画方法、リアルタイム HDR(ハイ ダイナミック レンジ)カメラ ビューファインダーの実装方法を詳しく説明しています。

このほかに、 Project Volta  では、新しい API とツールの提供を通して、アプリのバッテリー使用の効率化を支援しています。こちらの JobScheduler のサンプル  では、バックグラウンド タスクの実行を遅らせたり、特定の条件下で実行させるといったスケジュール設定の方法を説明しています。

エンタープライズ向けデバイス管理の使用事例に興味がある方向けには、  アプリの制限  を設定する方法、および マネージド プロフィールを作成する方法を説明したサンプル アプリがあります。

Android Wear

Android Wear に関しては、ウェアラブル端末の GPS サポートを活用する方法を示した  Speed Tracker のサンプルを用意しています。それ以外の  Android Wear のサンプルもご確認ください。以下に、データの同期、通知、ラウンド ディスプレイ対応など、ウェアラブル端末固有の機能を一部挙げておきます。

Android TV

 Leanback ライブラリ を使ってアプリを Android TV にも対応させる方法は、こちらの トレーニング ガイド  および サンプルで説明しています。

Android TV 向けに特化して最適化されたゲームを試してみたい場合は、Google Play から  Pie Noon  をダウンロードしてください。これは  Google で開発したインハウスのオープンソース ゲーム  で、Bluetooth コントローラーまたはモバイル端末のタッチ コントロールを使用する、マルチプレイヤーに対応したゲームです。

Android Auto

DevByte Introduction to Android Auto(Android Auto 入門) で取り上げた使用事例について、2 つのコードサンプルを用意しました。Media Browser のサンプルDevByte)では、新たな Lollipop Media APIを使ってオーディオ アプリを Android Auto に簡単に対応させる方法を、また、 Messaging のサンプル  (DevByte)では、音声認識による返信をサポートした通知を実装する方法をそれぞれ説明しています。

Google Play 開発者サービス

以上、Android プラットフォームおよび各種フォームファクター用のサンプル リソースについて紹介してきましたが、Google Play 開発者サービス関連の既存のサンプルについてもひと言申し上げておきます。Google Play 開発者サービスでは、Maps、Google Fit、Google Cast など、最新の Google API をアプリ開発にご活用いただけます。Google Play 開発者サービス SDK のサンプルにアクセスするか、  デベロッパー向けサイトにある各 API の個別ページにアクセスしてください。ゲーム開発者向けには、成績、スコアボード、マルチプレイヤーサポートをゲームに追加する方法を示した  Google Play Games サービス  のサンプルをご用意しています。

※ なお、今回公開されたコードサンプルには、日本の Developer Relations チームの Developer Programs Engineer である Takeshi Hagikura と Yuichi Araki のコードも多数含まれています。Developer Relations チームでの仕事にご興味ある方はこちらの記事もご参照ください。


Posted by Ryosuke Matsuuchi - Developer Relations Team

Android Wear 向けの公式 Watch Face API の用意ができたことを開発者のみなさまにご報告いたします。 ウォッチフェイスの登場によって、ユーザーが個性を発揮する場が増えただけではなく、開発者が時計のメイン UI であるウォッチフェイスをカスタマイズできるようになりました。これまでにユーザーと開発者のどちらからも、もっとも多く寄せられた要望がウォッチフェイスの機能でした。今回の API 提供で、みなさまがなにを作り出すのか、楽しみにしています ...
Android Wear 向けの公式 Watch Face API の用意ができたことを開発者のみなさまにご報告いたします。ウォッチフェイスの登場によって、ユーザーが個性を発揮する場が増えただけではなく、開発者が時計のメイン UI であるウォッチフェイスをカスタマイズできるようになりました。これまでにユーザーと開発者のどちらからも、もっとも多く寄せられた要望がウォッチフェイスの機能でした。今回の API 提供で、みなさまがなにを作り出すのか、楽しみにしています。

Timothy Jordan による、Android Wear 向けウォッチフェイスの紹介ビデオ

デザインと開発

はじめにウォッチフェイスのデザインについて参照し、次にウォッチフェイス作成のトレーニングクラスをご覧ください。また、オンライン上にあるウォッチフェイスのサンプルや、Android Studio のサンプルマネージャーでも参考になる実例を入手することができるので、すぐにウォッチフェイス開発に取りかかることができるでしょう。また、上記にある Android Wear 向けウォッチフェイスの紹介ビデオで概要をご覧いただけます。

ウォッチフェイスは Android Wear アプリで動作するサービスの 1 種なので、インストールした 1 つのアプリに対し複数のウォッチフェイスを提供することが可能です。ユーザーが 12 時間・24 時間表記を選択できるようにしたり、ウォッチフェイスの背景を変更できるようにしたり、スマートフォンや腕時計などの端末で設定変更を可能にすることもできます。また、OpenGL を利用してスムーズなグラフィックを描写したり、バックグラウンド サービスを利用して天気やカレンダーイベントなどの役立つ情報を入手したりすることも可能です。ウォッチフェイスではアナログ式やデジタル式で時間を表示しても良いですし、まだ誰も見たことがない革新的な方法で時間を表示させることも可能です。すべてはあなた次第です。

既存デバイスへのアップデート

Android 5.0 をベースとして API レベル 21 を提供する最新の Android Wear プラットフォームがユーザーへ提供されます。すべての Android Wear デバイスは OTA(Over-The-Air)方式で Android 5.0 へとアップデートされます。本アップデートによってユーザーは、スマートフォンの Android Wear アプリでウォッチフェイスを管理・設定したり、Google Play からウォッチフェイスをインストールしたりできるようになります。Android 4.3 以上がインストールされた端末は引き続き、すべての Android Wear デバイスに対応します。

ウォッチフェイスをアップグレード

私たちが開発用ドキュメントを公開する前に、すでにウォッチフェイスを作成していた開発者がいたことには大変関心させられましたが、非公式のやり方で Android Wear 向けのウォッチフェイスを作成していた場合には、公式 API へ移行してください。公式 API は統一されたユーザー体験をもたらすと同時に、Android Wear デバイスがアンビエントモードに入ったかどうかがわかったり、システム UI 要素の位置を調節したりといった機能をもたらします。また、Google Play のウォッチフェイス コレクションにフィーチャー掲載されるためには、新しい API の使用が必須となります。

ウォッチフェイスの配信

Android Wear 5.0 API 21 の OTA 方式でのロールアウトが完了したら、すぐに Google Play で配信中の対応アプリをアップデートすることを推奨します。ロールアウトの完了は、Google+ の Android Wear 開発者コミュニティで発表します。API 20 のデバイスでは API 21 を必要とするウォッチフェイスを表示できないため、ロールアウトの完了を待ってアップデートする必要があります。新しい API をインストールすると、ウォッチフェイスが表示されるようになりますが、ロールアウトが完了する前に wearable アプリをアップデートする場合には、OTA 配信を受ける前のユーザーがインストールに失敗しないように minSdkVersion を 20 に設定してください。ロールアウト完了後は、すみやかにウォッチフェイスを新しい API に移行してください。2015 年 1 月 31 日に、公式 API を用いていないウォッチフェイスのサポートを終了する予定です。

Google Play での Android Wear アプリ

Android Wear への配信に関するガイドラインに従っていただければ、アプリを Google Play 内の「Android Wear 向け」として申請できるようになりました。Wear アプリの品質チェックリストに準拠し、Google Play 内の Wear アプリとして承認されると、Android Wear デバイスのユーザーがアプリを見つけやすくなります。Android Wear レビューにオプトインするためには、Google Play デベロッパー コンソールの価格と配信のセクションをご覧ください。

Android Wear をローンチしてたった数ヶ月で、開発者のみなさまは、カスタム通知、ボイスアクション、他のネイティブな Android 機能を活用した数千ものアプリをリリースしました。みなさまのおかげで、ユーザーは 6 つのデバイス、種類豊富な時計バンド、そして数千のアプリを組み合わせた自分だけのAndroid Wear デバイスを作ることができます。カスタム ウォッチフェイスの提供により、ユーザーは今後さらに細かくカスタマイズすることが可能になります。豊富な選択肢こそが、リッチな Android Wear のエコシステムの根幹です。今後もプラットフォームのコアとなる機能を開発者のみなさまに提供し続けてまいりますが、そこからなにが生まれるのか、楽しみでしかたがありません。

Posted by Yuichi Araki - Developer Relations Team

Posted by 山口能迪 Developer Relations Team

[任天堂株式会社のソフトウェア開発者、白川英一様よりご寄稿頂きました。 - 山口]



Google Developer ブログの読者の皆様、こんにちは。任天堂が発売する Wii U の一部のソフトから YouTube にゲームの映像を投稿できることはご存知でしょうか?

例えば、「 マリオカート8」の場合、レース後の「ハイライト」や「マリオカートTV」の「ハイライトをアップロード」から、ハイライト映像を YouTube にアップロードすることができます。

今回は、YouTube 開発者の方々の参考になればと思い、この機能の開発の道のりについてお話しさせて頂こうと思います。

ゲームチームからの動画投稿を行いたいというリクエストと、Nintendo European Research and Development SAS (NERD) (※) で進めていたリサーチが出会う形で、Wii U の本体機能として動画のアップロード機能の開発がスタートしました ...
Posted by 山口能迪 Developer Relations Team

[任天堂株式会社のソフトウェア開発者、白川英一様よりご寄稿頂きました。 - 山口]


動画 © 2014 
Nintendo



Google Developer ブログの読者の皆様、こんにちは。任天堂が発売する Wii U の一部のソフトから YouTube にゲームの映像を投稿できることはご存知でしょうか?

例えば、「マリオカート8」の場合、レース後の「ハイライト」や「マリオカートTV」の「ハイライトをアップロード」から、ハイライト映像を YouTube にアップロードすることができます。

今回は、YouTube 開発者の方々の参考になればと思い、この機能の開発の道のりについてお話しさせて頂こうと思います。

ゲームチームからの動画投稿を行いたいというリクエストと、Nintendo European Research and Development SAS (NERD) (※) で進めていたリサーチが出会う形で、Wii U の本体機能として動画のアップロード機能の開発がスタートしました。
動画投稿サービスの中でも、YouTube では、すでに弊社製品プロモーションのためのチャンネルを公開させていただいておりました。加えて、動画の権利を保護するためのシステムが充実していることもあり、アップロード先のサービスとして採用することになりました。
(※) R&D を担当している、フランスのパリにある任天堂の開発子会社。

全体を通じて開発チームが特に心がけたところは、録画、認証、アップロード、伝播という各プロセスにおいて、お客様のつまずきやストレスを少なくし、この機能を様々な層のお客様にお使いいただけるものにすることでした。

録画においては、ゲームプログラムへの負荷が小さい独自コーデックで一度録画を行い、その後、アップロード中に、圧縮率の高い H.264 に変換するということを行っています。また、この一時録画のために、Wii U のシステムの機能を一部強化しています。

認証について YouTube が提供している方法は一般的な OAuth 2.0 に基づくものでした。これに合わせて Wii U のインターネットブラウザーとその他アプリケーションとの連携機能を強化しています。

アップロードにおいては、特に接続や速度の条件の良くない環境においてもアップロードを最後まで行えることを目指しました。ここで切断したセッションを再開できる YouTube v3 API の Resumable Upload API が有効に活用できました。

伝播においては、アップロードされた動画が、興味を持つ方々に観ていただくことができるように、弊社 Miiverse のコミュニティやウェブサイト「マリオカートTV」を活用しています。

現在、実装されているシステムでは、特にアップロード速度においてまだまだ改善が必要だという認識です。引き続き任天堂では、動画とゲームの関わりについて新しい提案をしていきたいと考えております。そのうえで、YouTube が提供する、 API やサーバーインフラや権利処理における強固な基盤は非常に心強い存在です。

Polymer, Android( 前編後編)に引き続き、ビデオシリーズ I/O Bytes 2014 のAndroid Wear 関連の動画に日本語字幕が追加されましたのでご紹介します。

Android Wearのためのデザイン

Android Wearでは、より良いユーザ体験のためには従来のモバイル・タブレット向けのアプリケーションとは異なる画面設計が必要となります。この動画ではAndroid Wear向けデザインの基本コンセプトをご紹介します ...
Polymer, Android(前編後編)に引き続き、ビデオシリーズ I/O Bytes 2014 のAndroid Wear 関連の動画に日本語字幕が追加されましたのでご紹介します。

Android Wearのためのデザイン

Android Wearでは、より良いユーザ体験のためには従来のモバイル・タブレット向けのアプリケーションとは異なる画面設計が必要となります。この動画ではAndroid Wear向けデザインの基本コンセプトをご紹介します。


Android Wear向けの新しい通知機能

Android Wear対応の第一歩は通知の最適化です。本動画ではWearableExtenderクラスを用いて、通知をAndroid Wear向けに最適化する方法とその実装方法をご紹介しています。


Android Wear向けのUIの作成

Android WearではWearableアプリケーションと呼ばれるAndroid Wear専用のアプリケーションを作成することが可能です。Wearableアプリケーションを開発する際には通常のAndroidアプリケーションと異なるUIセットを利用する事となります。本動画では各UIコンポーネントの概念とその利用方法についてご紹介します。


Android Wear向けフルスクリーンアプリケーション

Android Wearでフルスクリーンアプリケーションを開発する際の手順をソースコードレベルでご紹介します。特に角型・丸型の両対応をするための方法など、Android Wear向けアプリケーション特有の注意事項などもご紹介しています。


GoogleがどのようにAndroid Wear対応を行ったか

Gmail、ハングアウト、カメラ、Google マップの各AndroidアプリケーションをどのようにAndroid Wear対応させたかを紹介しています。いずれもAndroidアプリケーションのユーザ体験を変えずに対応しています。通知、DataItem、カスタムカードなどの使用例や実装例をご紹介しています。



Posted by Yoshifumi Yamaguchi - Developer Relations Team

Google Developers Blog(英語)にて、 既にご案内している利用規約の変更内容(2014 年 12 月 5 日より発効)について、日本語でもご案内いたします。



Google API の利用規約の一部変更についてお知らせいたします。

変更後の規約の全文は こちらでご確認いただけます。また、主な変更内容は こちらの記事にまとめています。

主な大きな変更点は以下のとおりです:
  • データ移植性について:Google API を通じて取得したユーザー データを利用または保管する間は、Google API を現在も使用しているかどうかに関わらずデータ移植性の要件に従う義務が存続すること、また、この義務を順守していない第三者によるデータの利用を許可しないことに同意することを明記しています。すなわち Google は、エンド ユーザー自身によってデータが管理されることを尊重しており、Google API の利用者の方々もそれを尊重するべきです。
  • デベロッパーの皆さんに対して、他のすべての Google サービスの利用規約についても違反しないよう求めます。
  • Google は API をより良いものにするため、API を通じて送信されたコンテンツを使用する場合があります。Google はこの権利を保有しますが、API(およびそれに関連するサービス)を提供、保証、改善する目的で、かつ  Google のプライバシー ポリシーに沿った場合にのみ使用します。
Google Developers Blog(英語)にて、既にご案内している利用規約の変更内容(2014 年 12 月 5 日より発効)について、日本語でもご案内いたします。



Google API の利用規約の一部変更についてお知らせいたします。

変更後の規約の全文はこちらでご確認いただけます。また、主な変更内容はこちらの記事にまとめています。

主な大きな変更点は以下のとおりです:
  • データ移植性について:Google API を通じて取得したユーザー データを利用または保管する間は、Google API を現在も使用しているかどうかに関わらずデータ移植性の要件に従う義務が存続すること、また、この義務を順守していない第三者によるデータの利用を許可しないことに同意することを明記しています。すなわち Google は、エンド ユーザー自身によってデータが管理されることを尊重しており、Google API の利用者の方々もそれを尊重するべきです。
  • デベロッパーの皆さんに対して、他のすべての Google サービスの利用規約についても違反しないよう求めます。
  • Google は API をより良いものにするため、API を通じて送信されたコンテンツを使用する場合があります。Google はこの権利を保有しますが、API(およびそれに関連するサービス)を提供、保証、改善する目的で、かつ  Google のプライバシー ポリシーに沿った場合にのみ使用します。
その他にも次のような変更点があります:
  • Google のサービスを利用するデベロッパーの皆さんに対し、連絡先情報を常に最新の状態にしておくようお願いしています。
  • ITAR データあるいは HIPAA で保護された医療情報を扱うようなリスクの高い活動には、API を使用すべきではないことを明記しています(ただし、Google からの書面による同意がある場合を除きます)。
  • デベロッパーに対し、各自のプライベート キーの安全を守り、オープンソースのプロジェクト内に埋め込むことのないよう、合理的な努力をするようお願いをしています。
  • API の使用量に対して Google が制限を設けることを明記しています。使用量を増やしたい場合は、Google からの同意を得る必要があります。
  • 利用規約の修正の多くは、その内容を発表した 30 日後に有効になります(以前は 7 日後)。

Posted by Developer Relations Team

[この記事は Android のプロダクト マネージャー Jamal Eason による Android Developers Blog の記事 "Android Studio 1.0" を元に荒木が翻訳・加筆しました。詳しくは元記事をご覧ください]

本日、ついに Android Studio 1.0 をリリースしました。Android Studio は Android チームが公式に提供する統合開発環境です。元になっているのは Java IDE として人気の高い IntelliJ IDEA(コミュニティー エディション)です ...
[この記事は Android のプロダクト マネージャー Jamal Eason による Android Developers Blog の記事 "Android Studio 1.0" を元に荒木が翻訳・加筆しました。詳しくは元記事をご覧ください]

本日、ついに Android Studio 1.0 をリリースしました。Android Studio は Android チームが公式に提供する統合開発環境です。元になっているのは Java IDE として人気の高い IntelliJ IDEA(コミュニティー エディション)です。
Android Studio を初めにプレビュー版としてリリースしたのは昨年の I/O のときでした。開発者の皆様からのフィードバックは大変役立ちました。ありがとうございます。Android 1.0 は Android Developers の Web サイトから安定版リリースとしてダウンロードできます。


Android Studio をダウンロード

Android 向けのアプリを開発してくださっている皆様、これから開発しようという皆様、今が Android Studio 1.0 をダウンロード(または以前のバージョンからアップグレード)するときです。Chrome のリリース チャンネルと同様に、Android Studio も複数のリリース チャンネルから更新を受けることができます。Stable(安定版)、Beta(ベータ)、Dev(開発版)そして Canary(最新ビルド版)です。Canary ビルドが開発の最先端で不安定である可能性があり、Stable が十分テストされている安定版です。Android Studio の最新機能をチェックする必要に応じて、これらのリリース チャンネルの中から選んでください。

Android Studio の機能

Android Studio がリリースされたことで、開発の流れを加速する様々な機能が利用できるようになりました。以下に Android Studio の主な機能をいくつか挙げました。完全な機能一覧は Android Studio の Web サイトをご覧ください。

セットアップ

  • 初回セットアップ ウィザード: 初回のセットアップ時に、必要な Android SDK のインストール、開発環境の設定、テスト用のエミュレーターの作成を行うことができます。加えて、コード テンプレートも用意しました。
  • サンプルのインポートとテンプレート: Android Studio に含まれているウィザードを使って、新しいプロジェクトの テンプレートや Google のコード サンプルをインポートすることができます。

コードとリソースの編集とユーザー インターフェイス デザイン

  • コード編集: Android Studio では IntelliJ IDEA が提供するインテリジェントなコード編集機能を利用することができます。コード補完、リファクタリング、コード解析などです。
  • 文字列編集の国際化: Android Studio でアプリで利用する文字列の翻訳を管理できます。
  • ユーザー インターフェイス デザイン: アプリのレイアウトを、複数の画面サイズ、言語、API バージョンで一覧することができます。

パフォーマンス解析

  • メモリー モニター: 時間とともに変化するメモリーの使用状況を確認することで、アプリのパフォーマンス改善に役立ちます。

統一されたビルド システム

  • Android Studio は Gradle に基づいたビルド システムを利用しています。これにより、柔軟で拡張性の高いビルドが IDE の中でも外でも実現できます。ビルド システムは Studio 自体からは独立しているため、Studio をアップデートしてもビルドには影響しません。
  • このビルド システムの主な機能は、ビルド バリアント(デバッグ版とリリース版、無料版と有料版など)、スプリット(複数 APK)、multi-dex 、サード パーティーのライブラリーの依存関係の管理などです。

Google Cloud サービスにすぐアクセス

  • Android Studio を使えば Google Cloud のバックエンドや Endpoints、Google Cloud Messaging をアプリに組み込むのも簡単です(詳細)。

移行と更新

現在 Eclipse をご利用の方は、移行ステップを確認した上でインポート ウィザードでプロジェクトをインポートしてください。




以前のバージョンの Android Studio をご利用の方も、バージョン 1.0 にアップグレードしてください。たくさんの新機能と不具合修正が含まれています。
また、Gradle プラグインのバージョン 1.0 もリリースしました。Android Studio と Gradle プラグインの間の連携も安定しており、一方だけをアップデートすることもできるようになりました。以前のバージョンからの更新について、詳しくは 技術リリース ノートをご確認下さい。

フィードバックを募集しています

我々はいつでも Android の開発環境の改善に努めています。すでにテスト機能の改善やゲーム開発のサポート改善などが予定されていますが、開発者が Android の開発環境に何を求めているのか教えていただきたいのです。
ぜひアンケート(5 分程度)にご協力ください。皆様のお声が次の Android Studio の機能を決めます。

ご質問

Android Studio やその周辺の開発ツールはオープンソースで開発されています。Android のバグ トラッカーにバグを登録していただくこともできます。Android Studio の機能や移行方法についてご質問がある方は、Google+ の日本語コミュニティーでお問い合わせください。


Posted by Yuichi Araki Developer Relations Team


Android でのメディア体験

Android で作る没入型のメディア体験

ExoPlayer: Android で適応的ビデオストリーミング

浮動小数点数オーディオの光と影

サンプル レートとリサンプリング: なんでみんな仲良くできないの?

前回に引き続き、ビデオシリーズ I/O Bytes 2014 の Android 関連動画をご紹介します。今回はメディア関連の動画などをまとめました。

Android でのメディア体験

ビデオの再生や録画、字幕の制御、外部ディスプレイの利用について解説します。


Android で作る没入型のメディア体験

MediaCodec の内部実装にまで踏み込んでメディア関連の低レベル API を解説します。


ExoPlayer: Android で適応的ビデオストリーミング

ExoPlayer はメディア プレーヤーを実装するための基板として利用できる API で、YouTube や Play Movies のアプリでも利用されています。


浮動小数点数オーディオの光と影

オーディオの内部表現が整数から浮動小数点数に変更されたことについての小話です。


サンプル レートとリサンプリング: なんでみんな仲良くできないの?

なぜ様々なサンプル レートが存在するのか疑問に思ったことはあるでしょうか。Android でのサンプル レートとリサンプリングについて紹介します。


あなたのアプリに地図を!

ストリート ビューやインドア マップなど、Google Maps Android API の新機能をご紹介します。


Android Auto の中身

Android Auto のアーキテクチャーについて解説します。


次世代の認証

Lollipop の新しい認証機能をご紹介します。


Android アプリ開発者のための分離

Android アプリで利用できるセキュリティー機能について解説します。


Google Play 開発者サービス 5.0

Google Play 開発者サービス 5.0 に関する紹介です。


パフォーマンス入門: CPU, GPU と Android ゲーム

ゲームのパフォーマンスを改善する上で役立つ CPU や GPU の動作の概念を紹介します。


Google プロダクトのアプリ内への統合をさらにスムーズにするため、Google は Google Play 開発者サービスの最新版の配信を開始しました。

Google Play 開発者サービス 6.5 には、Googleマップ、Google ドライブ、Google ウォレットそれぞれの新機能をはじめ、最近公開した Google Fit の API が含まれています。また、アプリが依存する Google Play 開発者サービスの API を今まで以上に細かく管理できるようになり、スリムなアプリの維持に役立ちます。

Google マップ

アプリからのルート案内がもっと簡単になります。Google Maps Android API では新たにマップ ツールバーを提供します。ユーザーはこれを使って Google マップを開き、すぐにルート案内と、選択したマーカーまでの詳しい道順を確認できます。このマップ ツールバーは、Google Play 開発者サービス 6.5 でコンパイルするとデフォルトで表示されます ...
Google プロダクトのアプリ内への統合をさらにスムーズにするため、Google は Google Play 開発者サービスの最新版の配信を開始しました。

Google Play 開発者サービス 6.5 には、Googleマップ、Google ドライブ、Google ウォレットそれぞれの新機能をはじめ、最近公開した Google Fit の API が含まれています。また、アプリが依存する Google Play 開発者サービスの API を今まで以上に細かく管理できるようになり、スリムなアプリの維持に役立ちます。

Google マップ

アプリからのルート案内がもっと簡単になります。Google Maps Android API では新たにマップ ツールバーを提供します。ユーザーはこれを使って Google マップを開き、すぐにルート案内と、選択したマーカーまでの詳しい道順を確認できます。このマップ ツールバーは、Google Play 開発者サービス 6.5 でコンパイルするとデフォルトで表示されます。


さらに、「ライト モード(lite mode)」というマップ オプションを新たに追加しました。これは、小さめのマップを複数表示させたいとき、あるいは、リストのサムネイルなどとして小さなマップを表示させるとき(サイズが小さすぎるため詳細な操作を行うことができないマップ)に最適なオプションです。ライト モードのマップは、一定の場所、一定のズーム レベルのマップとなり、ビットマップ画像です。

ライト モードでは、マーカーや図形はクライアント側で静止画像上に描画されたものなので、好きなように管理できます。ライト モードは、すべてのマップ タイプ、My Location レイヤー、そしてフル インタラクティブ マップの機能の一部をサポートします。ユーザーが詳細を見たいときにマップ上をタップすれば、Google マップが起動します。

また、Google Maps Android API では新たに getMapAsync(OnMapReadyCallback) メソッドを MapFragmentMapView が利用できるようにします。これによって、マップの準備ができたまさにその時に通知されるようになります。これは、現在非推奨となっている getMap() メソッドの代わりとして機能します。

他にも、Google Maps for Android アプリのインテントを皆さんのアプリで利用できるようにしました。これにはマップの表示、検索、詳細なナビゲーションの開始、ストリート ビューの開始などが含まれ、端末にすでに搭載されている使い慣れた高性能マップをさらに充実したものにできます。

ドライブ

ドライブ ファイルに、公開ファイル プロパティおよびアプリケーション専用カスタム ファイル プロパティの両方を追加できるようになりました。これによって検索クエリの効率が大幅にアップするとともに、アプリが情報を保存できるようになり、他のアプリによる編集後も情報は維持されます。

また、ネットワーク タイプや充電状況によっていつファイルをアップロードするのかを管理する機能や、保留中のアップロードをキャンセルする機能が加わり、ファイルとドライブの同期がユーザー フレンドリー、そしてバッテリー フレンドリーになりました。

Google ウォレット

Google ウォレットを使用して商品やサービスをすばやく購入できる既存の「Buy with Google」ボタンに加え、今回のリリースでは、同じく簡単操作で寄付を集められる「Donate with Google」ボタンを追加します。

Google Fit

先日 Google Play 開発者サービスの一部として、Google Fit SDK を正式に公開しました。この SDK によって、シンプルな API でフィットネス系アプリをさらに充実させ、センサーとの連動や、活動データの記録、ユーザーのフィットネス データ統計の読み出しができるようになります。

今回のリリースでは、セッションを設定するときに活動セグメント(事前に設定しておくランニングやウォーキング、サイクリングなどの時間)を追加しやすくしました。これによって休憩や、複数のアクティビティを伴うワークアウトのサポートが容易になります。今後、Google Fit をすばやく統合できるよう、サンプルをさらに追加していく予定です。

依存関係の詳細管理

Google は様々なサービスのすべてで API を追加し続けてきましたので、特に、利用可能な API の一部しか使用していない開発者にとっては、スリムなアプリを維持することが難しくなっているかもしれません。今回の Google Play 開発者サービス 6.5 では、最低限の共通ライブラリと、アプリに必要な API だけに依存すればよいようになります。これによって、Google Play 開発者サービスの利用をより気軽に始められます。

SDK は近日公開!

これから数日の間に Google Play 開発者サービス 6.5 を順次配信していき、最新情報をこのブログにてお知らせするとともにドキュメントを公開し、配信が完了した時点で SDK を利用できるようにいたします。

Google Play 開発者サービスとその API について詳しくは、Android デベロッパー向けサイトの Google Play 開発者サービスのセクションをご覧ください。

Google では、この度「Google インパクトチャレンジ セミナー」を 12 月 8 日(月)に開催します。
Google インパクトチャレンジ は、テクノロジーを活用し、社会の課題解決にチャレンジする非営利団体を支援するプログラムです。日本での実施を 11 月 4 日に発表し、これまで多くの非営利団体の方よりご関心をお寄せ頂いています ...
Google では、この度「Google インパクトチャレンジ セミナー」を 12 月 8 日(月)に開催します。
Google インパクトチャレンジ は、テクノロジーを活用し、社会の課題解決にチャレンジする非営利団体を支援するプログラムです。日本での実施を 11 月 4 日に発表し、これまで多くの非営利団体の方よりご関心をお寄せ頂いています。

12 月 8 日(月)の説明会では、本プログラムについて説明するとともに、過去受賞事例より、具体的にどのようなプロジェクトがこれまでに受賞しているのかをご紹介します。また、本イベントでは日本国内の非営利団体の方も多数ご招待しておりますので、社会においてのどのように技術活用できるか、アイディアを交換する場となることを期待しています。参加申込みは下記フォームより、ご登録ください。

Google インパクトチャレンジの詳細は、公式サイトをご確認ください。
https://impactchallenge.withgoogle.com/japan

■イベント詳細
日程:12 月 8 日(月)19:00-21:30(受付 18:30 - 19:00)
会場: Google 東京オフィス (六本木ヒルズ森タワー内)
会費:無料
定員:20 名
主催:Google

■スケジュール
19:00 - 20:00 Google インパクトチャレンジ 概要・過去受賞者講演(逐次通訳あり)
20:00 - 21:00 ブレイクアウト セッション(テーマ毎にグループでディスカッションしていただきます)
21:00 - 21:30 懇親会

■出席予定者
Google インパクトチャレンジ 過去受賞者イギリス/インド/オーストラリアの受賞者各 1 名をハングアウトにて参加予定)
Google インパクトチャレンジ事務局 松下他

※ 本説明会の参加が応募資格や審査に影響を与えるものではございません。

■申し込み方法
応募はこちらのフォームからお願いします。
※ 先着順による受付です。定員は 20 名です。定員になり次第、受付を締め切ります。
※ なお参加証は 12 月 4 日(木)より順次ご登録頂いたメール アドレス宛にお送りする予定です

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

Posted by 鈴木拓生 Developer Relations Team


こんにちは。最近、Android の Google アカウントに関する質問がいくつか寄せられています。そこで、Google が勧めるベスト プラクティスのいくつかを記事にまとめて紹介いたします。今回は、 Google Play 開発者サービスの統合によって簡単に実現できる Android ベースの認証に焦点を当てます。では、始めましょう。

固有の識別子

混乱がよく生じるのが、デベロッパーがアカウント名(E メール アドレス)を Google アカウントのプライマリー キーに使用しているケースです。たとえば、ユーザーのログインに GoogleApiClient を使用しているとき、デベロッパーは、登録されている GoogleApiClient.ConnectedCallbacks リスナーに対する onConnected コールバックの中で、下に示すようなコードを使っている場合があります ...

こんにちは。最近、Android の Google アカウントに関する質問がいくつか寄せられています。そこで、Google が勧めるベスト プラクティスのいくつかを記事にまとめて紹介いたします。今回は、Google Play 開発者サービスの統合によって簡単に実現できる Android ベースの認証に焦点を当てます。では、始めましょう。

固有の識別子

混乱がよく生じるのが、デベロッパーがアカウント名(E メール アドレス)を Google アカウントのプライマリー キーに使用しているケースです。たとえば、ユーザーのログインに GoogleApiClient を使用しているとき、デベロッパーは、登録されている GoogleApiClient.ConnectedCallbacks リスナーに対する onConnected コールバックの中で、下に示すようなコードを使っている場合があります。

[エラーが生じやすい擬似コード]
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
// createLocalAccount() はアプリのローカル ストレージ ストラテジーに固有
createLocalAccount(accountName);

表示やキャッシュのために E メールアドレスを保存することに問題はありませんが、ユーザーは、Google アカウントで自身のプライマリー E メール アドレスを変更する可能性があります。そういったことは様々なタイプのアカウントで起きますが、最も頻繁に発生するのが Google Apps For Work アカウントです。

では、デベロッパーはどうしたらよいのでしょうか。Google アカウントに関連付けられているアプリのデータをキーにするときは、アカウント名ではなく、Google アカウント ID を使用します。つまり、たいていのアプリでは、アカウント ID を保存して、onConnected コールバックが呼び出されるたびに、その値を比較するだけでよく、これによって、そのデータが現在ログインしているユーザーとローカルに合致しているかを確認します。API では、アカウント ID をアカウント名から取得できるメソッドを提供しています。参考用に、スニペット例を示します。

[Google Play 開発者サービス 6.1+]
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
String accountID = GoogleAuthUtil.getAccountId(accountName);
createLocalAccount(accountID);
[Google Play 開発者サービスの以前のバージョン(クライアントをアップグレードしてください)]
Person currentUser = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String accountID = currentUser.getID();
createLocalAccount(accountID);

こうすることで、ローカルデータは Google アカウント ID と照合されることになります。アカウント ID は ユーザーが E メールアドレスを変更した後でも変わらない固有の識別子です。

よって、上述のケースでは、データが ID をキーとしていれば、ユーザーが E メールアドレスを変更したとしても心配する必要はないのです。ユーザーが再びログインするときも、同じ ID を取得しますので、皆さんの側で何らかのデータ処理をする必要はありません。

複数アカウント

アプリが複数のアカウントによる同時接続をサポートしている場合(たとえば、下に示す Gmail ユーザー インターフェースのようなケース)、GoogleApiClients 構築時には、setAccountNameGoogleApiClient.Builder に対して呼び出します。このとき、アプリ内にそのアカウント名と Google アカウント ID を保存する必要があります。しかし、保存したアカウント名は、ユーザーがプライマリー E メール アドレスを変更すると、違ってしまうことになります。これに対処する最も簡単な方法は、ユーザーに再ログインを促すことです。そしてログイン後に、onConnected がコールされたときにアカウント名を更新します。ログインのたびに、こういったコードを使ってアカウント ID を比較し、そのアカウント ID に対してローカルに保存されている E メールアドレスを更新します。

[Google Play 開発者サービス 6.1+]
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
String accountID = GoogleAuthUtil.getAccountId(accountName);
// isExistingLocalAccount(), createLocalAccount(), 
// getLocalDataAccountName()、および updateLocalAccountName() は、
// すべて、アプリのローカル ストレージ ストラテジーに固有のもの
boolean existingLocalAccountData = isExistingLocalAccount(accountID);
if (!existingLocalAccountData) {
    // 新たなログイン
    createLocalAccount(accountID, accountName);
} else {
    // この Google アカウントに関する既存のローカルデータ
    String cachedAccountName = getLocalDataAccountName(accountID);    
    if (!cachedAccountName.equals(accountName)) {
        updateLocalAccountName(accountID, accountName);
    }
}

このシナリオからは、すべてのデータをアプリに保存するのにアカウント ID を使用することの重要性が分かります。

オンライン データ

上記のベスト プラクティスは、アプリのウェブサーバーに Google アカウントのデータを保存する際にも当てはまります。データをこの方法でサーバーに保存し、E メール アドレスをプライマリー キーとして扱っている場合、

ID [プライマリー キー] フィールド 1 フィールド 2 フィールド 3
user1@gmail.com 値 1 値 2 値 3

プライマリー キーを Google アカウント ID とする下記のモデルに移行する必要があります。

ID [プライマリー キー] Email フィールド 1 フィールド 2 フィールド 3
108759069548186989918 user1@gmail.com 値 1 値 2 値 3

ウェブ サーバーから Google API コールを行わない場合は、上述の複数アカウントのサンプルコードで参照している updateLocalAccountName メソッドを実装する場合、プライマリー E メールアドレス変更をウェブ サーバーに通知するのは、Android 向けアプリケーションに任せることができるかもしれません。ウェブ サーバーから Google API のコールを行う場合は、おそらくそれはクロス クライアント認証を使って実装したものなので、ウェブ サーバー上の OAuth2 クライアント ライブラリまたは REST エンドポイントを介して変更を検出することもできます。

まとめ

アプリで Google アカウント認証を使用するとき、ユーザーのデータを識別するには、アカウント名ではなくアカウント IDを使うのがベストな方法です。この記事では、アプリを強化するために変更作業が必要となる 3 つのケースを紹介しました。Google for Work の利用が増加しているなか、ユーザーが E メール アドレスを変更しても、アカウント ID  は同じまま維持するケースが増えてくると予想されます。よって、デベロッパーの皆さんには、できるだけ早急にコードの更新計画を立てることをお勧めいたします。


Posted by Yuichi Araki


Android Work

Holo から Material へ

アクティビティー間の遷移

Android の JobScheduler を使う

先日公開したビデオシリーズ I/O Bytes 2014 の Android 関連動画に日本語字幕が追加されました。数が多いので、2 回に分けてご紹介します。今回は前編です。主に OS そのものの機能強化に関する動画をまとめました。

Android Work

Lollipop では端末管理 API が大幅に強化されました。個人用アカウントと仕事用アカウントを端末内で完全に切り分け、仕事用アカウントに対してだけポリシーを適用するようなことができます。


Holo から Material へ

Holo テーマを利用した既存のアプリを Material テーマにアップデートする方法を解説しています。


アクティビティー間の遷移

KitKat で登場した Transition(遷移)フレームワークが、Lollipop ではアクティビティー間の遷移にも利用できるようになりました。


Android の JobScheduler を使う

電池消費節約プロジェクトの一環として登場した JobScheduler の解説です。


WebView の新機能

KitKat で Chromium ベースに刷新された WebView は Lollipop でも大きく進化しました。DevTools の強化を中心に解説しています。


Bluetooth Low Energy

低消費電力で利用できる Bluetooth 機能の解説です。


NFC のホスト カード エミュレーションでインタラクティブ体験

ホスト カード エミュレーションの機能は以前からありましたが、Lollipop では AID の動的な登録などがサポートされています。


昨年 9 月に Chrome の NPAPI サポートを終了すると 発表しました。これにより Chrome のセキュリティ、スピード、安定性を向上させ、さらにコードをよりシンプルにすることが可能になります。 以前にお伝えして以来、NPAPI 使用率は減り続けています。この使用率データにもとづき、計画通りに NPAPI 廃止を進めることにします ...
昨年 9 月に Chrome の NPAPI サポートを終了すると発表しました。これにより Chrome のセキュリティ、スピード、安定性を向上させ、さらにコードをよりシンプルにすることが可能になります。以前にお伝えして以来、NPAPI 使用率は減り続けています。この使用率データにもとづき、計画通りに NPAPI 廃止を進めることにします。

月別プラグイン起動パーセント


Sept 13 May 14 Oct 14
Silverlight 15% 13.3% 11%
Google トーク 8.7% 8.7% 7%
Java 8.9% 7.2% 3.7%
Facebook 6% 4.2% 3.0%
Unity 9.1% 3.1% 1.9%
Google Earth 9.1% 0.1% 0.1%

現状、Chrome は NPAPI プラグインをサポートしていますが、特定のサイト用にユーザーが(page action UI から)許可しない限りはデフォルトでブロックされています。ただし、使用される頻度が高い少数のプラグインはホワイトリストに入っており、デフォルトで許可されています。2015 年 1 月にはホワイトリストが削除され、すべてのプラグインはデフォルトでブロックされるようになります。

2015 年 4 月に Chrome はデフォルトで NPAPI サポートを無効化し、Chrome ウェブストアから NPAPI を必要とする拡張機能の配信を停止します。プラグインベンダーは、代替テクノロジーに移行するために全力で作業を進めていますが、まだ完了できていないプラグインに依存するユーザーもいますので、必須プラグインが移行を完了するまでの間、一時的に NPAPI を再度有効化する手段を提供します。(上級ユーザーの方は chrome://flags/#enable-npapi から、企業ユーザーの方は Enterprise Policy から)

2015 年 9 月には上記手段はご利用頂けなくなります。Chrome は完全に NPAPI のサポートを終了し、NPAPI プラグインを必要とする拡張機能は起動することができなくなります。

今後の計画の詳細(NPAPI プラグイン開発者へのガイドも含む)につきましては、NPAPI 廃止ガイドをご覧ください。この移行によって一歩ずつ、よりセキュアで、よりモバイルフレンドリーなウェブの世界に近づくことができるのです。