さらに、新しく Camera API
を導入し、より高度な画像キャプチャ機能と処理能力を提供しています。これらのサンプルでは、カメラ プレビューを使って
写真を撮る方法、動画の録画方法、リアルタイム
HDR(ハイ ダイナミック レンジ)カメラ ビューファインダーの実装方法を詳しく説明しています。
このほかに、 Project
Volta
では、新しい API とツールの提供を通して、アプリのバッテリー使用の効率化を支援しています。こちらの JobScheduler
のサンプル
では、バックグラウンド タスクの実行を遅らせたり、特定の条件下で実行させるといったスケジュール設定の方法を説明しています。
Android TV 向けに特化して最適化されたゲームを試してみたい場合は、Google Play から Pie
Noon
をダウンロードしてください。これは Google で開発したインハウスのオープンソース
ゲーム
で、Bluetooth コントローラーまたはモバイル端末のタッチ コントロールを使用する、マルチプレイヤーに対応したゲームです。
以上、Android プラットフォームおよび各種フォームファクター用のサンプル リソースについて紹介してきましたが、Google Play
開発者サービス関連の既存のサンプルについてもひと言申し上げておきます。Google Play 開発者サービスでは、Maps、Google Fit、Google
Cast など、最新の Google API をアプリ開発にご活用いただけます。Google Play 開発者サービス SDK のサンプルにアクセスするか、
デベロッパー向けサイトにある各
API の個別ページにアクセスしてください。ゲーム開発者向けには、成績、スコアボード、マルチプレイヤーサポートをゲームに追加する方法を示した Google
Play Games サービス
のサンプルをご用意しています。
私たちが開発用ドキュメントを公開する前に、すでにウォッチフェイスを作成していた開発者がいたことには大変関心させられましたが、非公式のやり方で 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 デベロッパー コンソールの価格と配信のセクションをご覧ください。
ゲームチームからの動画投稿を行いたいというリクエストと、Nintendo European Research and Development SAS (NERD) (※) で進めていたリサーチが出会う形で、Wii U の本体機能として動画のアップロード機能の開発がスタートしました。
動画投稿サービスの中でも、YouTube では、すでに弊社製品プロモーションのためのチャンネルを公開させていただいておりました。加えて、動画の権利を保護するためのシステムが充実していることもあり、アップロード先のサービスとして採用することになりました。
(※) R&D を担当している、フランスのパリにある任天堂の開発子会社。
現在、実装されているシステムでは、特にアップロード速度においてまだまだ改善が必要だという認識です。引き続き任天堂では、動画とゲームの関わりについて新しい提案をしていきたいと考えております。そのうえで、YouTube が提供する、 API やサーバーインフラや権利処理における強固な基盤は非常に心強い存在です。
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 を利用できるようにいたします。
こんにちは。最近、Android の Google アカウントに関する質問がいくつか寄せられています。そこで、Google が勧めるベスト プラクティスのいくつかを記事にまとめて紹介いたします。今回は、Google Play 開発者サービスの統合によって簡単に実現できる Android ベースの認証に焦点を当てます。では、始めましょう。
表示やキャッシュのために E メールアドレスを保存することに問題はありませんが、ユーザーは、Google アカウントで自身のプライマリー E メール アドレスを変更する可能性があります。そういったことは様々なタイプのアカウントで起きますが、最も頻繁に発生するのが Google Apps For Work アカウントです。
では、デベロッパーはどうしたらよいのでしょうか。Google アカウントに関連付けられているアプリのデータをキーにするときは、アカウント名ではなく、Google アカウント ID を使用します。つまり、たいていのアプリでは、アカウント ID を保存して、onConnected コールバックが呼び出されるたびに、その値を比較するだけでよく、これによって、そのデータが現在ログインしているユーザーとローカルに合致しているかを確認します。API では、アカウント ID をアカウント名から取得できるメソッドを提供しています。参考用に、スニペット例を示します。
[Google Play 開発者サービスの以前のバージョン(クライアントをアップグレードしてください)]
Person currentUser = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String accountID = currentUser.getID();
createLocalAccount(accountID);
こうすることで、ローカルデータは Google アカウント ID と照合されることになります。アカウント ID は ユーザーが E メールアドレスを変更した後でも変わらない固有の識別子です。
よって、上述のケースでは、データが ID をキーとしていれば、ユーザーが E メールアドレスを変更したとしても心配する必要はないのです。ユーザーが再びログインするときも、同じ ID を取得しますので、皆さんの側で何らかのデータ処理をする必要はありません。
複数アカウント
アプリが複数のアカウントによる同時接続をサポートしている場合(たとえば、下に示す Gmail ユーザー インターフェースのようなケース)、GoogleApiClients 構築時には、setAccountName を GoogleApiClient.Builder に対して呼び出します。このとき、アプリ内にそのアカウント名と Google アカウント ID を保存する必要があります。しかし、保存したアカウント名は、ユーザーがプライマリー E メール アドレスを変更すると、違ってしまうことになります。これに対処する最も簡単な方法は、ユーザーに再ログインを促すことです。そしてログイン後に、onConnected がコールされたときにアカウント名を更新します。ログインのたびに、こういったコードを使ってアカウント ID を比較し、そのアカウント ID に対してローカルに保存されている E メールアドレスを更新します。
ウェブ サーバーから Google API コールを行わない場合は、上述の複数アカウントのサンプルコードで参照している updateLocalAccountName メソッドを実装する場合、プライマリー E メールアドレス変更をウェブ サーバーに通知するのは、Android 向けアプリケーションに任せることができるかもしれません。ウェブ サーバーから Google API のコールを行う場合は、おそらくそれはクロス クライアント認証を使って実装したものなので、ウェブ サーバー上の OAuth2 クライアント ライブラリまたは REST エンドポイントを介して変更を検出することもできます。
まとめ
アプリで Google アカウント認証を使用するとき、ユーザーのデータを識別するには、アカウント名ではなくアカウント IDを使うのがベストな方法です。この記事では、アプリを強化するために変更作業が必要となる 3 つのケースを紹介しました。Google for Work の利用が増加しているなか、ユーザーが E メール アドレスを変更しても、アカウント ID は同じまま維持するケースが増えてくると予想されます。よって、デベロッパーの皆さんには、できるだけ早急にコードの更新計画を立てることをお勧めいたします。