Android や Google Play のツールを使って高いパフォーマンスを実現するエンジニアリング手法
ダッシュボードに表示されているデータを理解し、アプリのパフォーマンスと安定度を改善する方法については、Android Vitals のベスト プラクティスに関する記事をご覧ください。Android や Google Play のその他のツールを使って不適切な動作を見つけて修正する方法は、I/O セッションでも紹介しています。
また、Playbook アプリでは、その他の Play Console の機能や、Google Play で成功を収めるための最新ニュースや秘訣を学ぶことができます。ぜひベータ版プログラムに参加し、インストールしてください。
Person contactToCreate = new Person();
List names = new ArrayList<>();
names.add(new Name().setGivenName("John").setFamilyName("Doe"));
contactToCreate.setNames(names);
Person createdContact =
peopleService.people().createContact(contactToCreate).execute();
本日より、Google の一連の支払いソリューションが拡張されます。Google Payment API は、ユーザーがクレジット カードやデビットカードを使って Google アカウントに保存されている口座から簡単に支払う方法を実現するもので、販売者やデベロッパーのチェックアウト コンバージョン率の急上昇に貢献します。ユーザーは、以前に Android Pay に保存したクレジット カードやデビットカード、Play ストアでの決済に使った支払いカード、Chrome に保存されている支払いフォームなど、複数の Google 支払いオプションをいつでも使うことができます。さらに、保存した支払いオプションはサードパーティアプリやモバイルサイト、そしてGoogle Assistant からも利用できるようになります。
Google を使って Google Assistant で Panera Bread に支払い
ユーザーにとって、これは購入手続きの高速化につながります。バスの中で身動きがとれないときに、見知らぬ人の前でクレジット カードを取り出したくはないものです。そのようなユーザーが購入をやめることがなくなります。ベッドに入ってクレジット カードが手元にないときに、夜中に終了するセールに出くわして困ってしまうようなこともなくなります。サポート対象のアプリやサイトに Google で支払うオプションがあれば、いつでも Google アカウントに保存してあるクレジット カードやデビットカードを使うことができるので、ユーザーは時間を節約でき、悩むこともなくなります。
この API は、デベロッパーにとって重要なイノベーションです。すばやく購入を行い、コンバージョン率や売上を増やし、カートのキャンセルを削減できます。しかも、組み込みも簡単です。Google Payment API の詳細は、こちらをご覧ください。
Android の月間アクティブ端末数は 20 億台以上に達しており、Google Play は世界中の 190 以上の国で利用できます。ユーザーが新しいアプリやゲームを見つけるためにアクセスする場所が Google Play なのです。ユーザーはアプリを検索して試してみるだけではなく、Play ストアや新しいおすすめアプリを見ることに多くの時間を費やしています。
皆さんのアプリがもっと見つけやすくなるように、Google Play ストアのホームとアプリの掲載情報ページで、広告の配置が新しくなります。この新しい配置は、UAC のみで利用可能です。これにより、「検出モード」のユーザーが次のお気に入りアプリを探してスワイプ、タップ、スクロールした際に、皆さんのアプリがユーザーの目に触れやすくなります。
Workshop Day とは別に、Google Play チームでは定期的に Android アプリの品質向上を目的としたプログラム 「Google Play APP DOJO」を実施しており、7 月 27 日(木) に説明会とセミナーを開催します。セミナーの参加にはメンバー登録が必要ですが、見学は誰でも可能です。また、本プログラムにご登録いただくと、Google for Mobile Workshop Day のようなイベントの案内をいち早く受け取ったり、配布していない資料をオンラインで閲覧できるメンバーページにアクセスできるようになります。本プログラムへのご登録は「Google Play APP DOJO」のページから可能です。
7 月のセミナーは「事例で学ぶ アプリの品質向上と成長」をテーマに株式会社 Loco Partners 様、株式会社 LIFULL 様にご登壇いただく予定です。Android アプリの成長や品質向上に興味がある方はぜひ下記リンクから詳細をご確認いただき、お申し込みください。
昨年の I/O で、Awareness API がリリースされました。これは、ロケーション、天気情報、時刻、ユーザー アクティビティなどのシグナルを使ってユーザーの状況に即した体験を提供できるようにする、シンプルで強力な API です。
Awareness API は、Google Play サービス経由で利用でき、2 つの方法によってアプリ内で状況シグナルを活用できます。Snapshot API は、アプリからユーザーの現在の状況に関する情報をリクエストできます。また、Fence API は、ユーザーの状況が変化したときや、ある条件に該当した際にアプリを反応させることができます。たとえば、「ユーザーがヘッドフォンをさしたまま歩いているときは教えてください」というようなリクエストが可能です。
これまでも、Awareness API でタイムフェンス(時間の境界)を指定できましたが、時間を厳密に指定しなければならないという制限がありました。デベロッパーの皆さまからのフィードバックにより、タイムフェンスの作成に関連するこの API の柔軟性は、人々が時間について考えたり話したりする際に用いる高レベルの抽象化に対して対応できていないことがわかりました。「今週末」、「次の休日」、「日没後」といった表現は、日常会話で時間を表す際によく使われます。そこで本日(*原文公開当時)、この API にセマンティック タイムのサポートを追加しました。
たとえば、フィットネス アプリで毎朝のエクササイズの開始をユーザーに通知したい場合や、読書アプリで日没後にナイトモードをオンにしたい場合を考えてみましょう。今までは、ユーザーの現在地での日の出や日没の情報を 3p API に問い合わせ、その時間の値を使って Awareness フェンスを記述する必要がありました。今回の最新のアップデートでは、TIME_INSTANT_SUNRISE や TIME_INSTANT_SUNSET といった定数を使って、複雑な処理をプラットフォームに任せることができます。
// A sun-state-based fence that is TRUE only on Tuesday and Thursday during Sunrise
AwarenessFence.and(
TimeFence.aroundTimeInstant(TimeFence.TIME_INSTANT_SUNRISE,
-10 * ONE_MINUTE_MILLIS, 5 * ONE_MINUTE_MILLIS),
AwarenessFence.or(
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_TUESDAY,
0, ONE_DAY_MILLIS),
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_THURSDAY,
0, ONE_DAY_MILLIS)));
// A local-time fence that is TRUE only on public holidays in the
// device locale that fall on Fridays or Mondays.
AwarenessFence.and(
TimeFence.inTimeInterval(TimeFence.TIME_INTERVAL_HOLIDAY),
AwarenessFence.or(
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_FRIDAY,
9 * ONE_HOUR_MILLIS, 11 * ONE_HOUR_MILLIS),
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_MONDAY,
9 * ONE_HOUR_MILLIS, 11 * ONE_HOUR_MILLIS)));
どちらの例でも、Awareness API は端末の言語/地域の設定に基づいて、時間や祝日のローカライズという大変な作業を行ってくれます。
皆さまがこの強力な API を使ってどのような問題を解決するか、楽しみにしています。メーリング リストに参加すると、今回の API を含む Google の Context API についてのアップデート情報を受け取ることができます。
その後、プロダクトで利用するすべての端末にデプロイするアプリケーションの準備ができた段階で、バンドルをコンソールにアップロードします。このバンドルは ZIP ファイルで、この中にはメイン APK ファイル、APK 内でサービスとして動作するユーザー空間ドライバ、メイン APK によって起動される追加の APK が含まれています。bootanimation.zip ファイルもサポートされています。これは、起動時に表示されます。続いて、アップロードしたバンドル ZIP ファイルから完全なシステム イメージが生成され、それが端末にデプロイされます。バンドル ZIP ファイルの内容について詳しくは、ドキュメントに記載されています。
OTA アップデート
このタブでは、一連のプロダクト用端末にプッシュするシステム イメージを選択できます。デベロッパーがシステム イメージを 1 つ選択し、[Push to Devices](端末にプッシュ)を押すと処理が開始されます。アップデートはすべての端末に安全にプッシュされ、A/B パーティションのどちらかにインストールされて、端末が再起動した際にアクティブになります。何らかのエラーが検出されると、端末は以前に動作していたバージョンに自動的にロールバックされるので、アップデートをやり直すこともできます。デベロッパーは、Android Things の新しいリリースを事前にテストしてから、端末の自動アップデートの可否を決定できるようになる予定です。
フィードバック
現在の Android Things Console はプレビュー版で、さらに多くの機能やカスタマイズを追加するための作業が続けられています。Android Things デベロッパーの皆さんは、ぜひ Android Things Console を確認してフィードバックをお寄せください。バグレポートや機能リクエストからフィードバックを送信できます。質問は、どんなものでもかまいませんので、Stack Overflow にお寄せください。Android Things Console の詳細については、詳しいドキュメントもご覧ください。Google+ の Google IoT デベロッパー コミュニティにも参加できます。これは、最新情報を入手したりアイデアを話し合うことができるすばらしいリソースです。