デベロッパー向けの Actions on Google ウェブサイトにアクセスすると、すぐに開発を始めることができます。スムーズで直感的な開発を実現するため、Google は会話インタラクション開発ツールの API.AI や Gupshup、アナリティクス ツールの DashBot や VoiceLabs、コンサルティング会社の Assist、Notify.IO、Witlingo、Spoken Layer など、さまざまな開発パートナーと連携してきました。また、一連のサンプルや音声ユーザー インターフェース(VUI)リソースも作成しています。今後数週間でリリースされる予定のアーリーアクセス パートナーによる統合アプリを試すこともできます。

Wayne Piekarski による会話アクションの紹介


近日公開: Pixel や Allo 向けのアクション、購入や予約への対応

この取り組みはまだ始まったばかりで、みなさんが開発される Google Assistant 向けアプリを見るのを楽しみにしています。今後も、プラットフォーム機能の追加は継続され、Pixel スマートフォンや Google Allo など、各種アシスタントで利用できる統合アプリを作れるようになります。購入や予約にも対応するだけでなく、業界を問わず、複雑なアシスタントとも連携していく予定です。今後公開されるこのような機能を利用してアクションを作ってみたいデベロッパーのみなさんは、ぜひアーリーアクセス パートナー プログラムに登録してください。ともにこのプラットフォームの将来を作り上げてゆきましょう。
さまざまな開発を試して、Actions on Google を使ってみた感想をお聞かせください。最新情報を入手するには、ニュースレターに登録し、Google+ コミュニティに参加してください。StackOverflow での質問には、「actions-on-google」タグをご利用ください。


Posted by Takuo Suzuki - Developer Relations Team


スペイン語と日本語のデベロッパー コミュニティの皆さんがネイティブ広告を実装する際に、この e ブックをご活用頂ければと思います。ネイティブ広告は、ユーザー エクスペリエンスを維持しつつ効率的な収益化を実現する広告フォーマットで、アプリ内のコンテンツに調和する外観や操作性を備えています。2018 年には、ネイティブ広告への投資額が 210 億ドルまで拡大するとみられており、アプリのオーナーにとって、ユーザー エクスペリエンスを向上させつつ新しい収益源を得る絶好の機会と言えます。

このガイドでは、次のことを学習できます。
  • ネイティブ広告のよりよい実装に役立つデザイン原理 
  • ネイティブ広告を実装するための実用的な推奨事項、ベスト プラクティス、サンプル 
  • ネイティブ広告で A/B テストを適切に設定し、テストを始める方法 
  • AdMob を利用してネイティブ広告を実装する方法 

早速、スペイン語版や日本語版の無償のネイティブ広告実践ガイドをダウンロードし、アプリでネイティブ広告を実装する実用的な推奨事項やベスト プラクティスについて学習しましょう。

TwitterLinkedInGoogle+ でお届けする AdMob 情報もご覧ください。


Posted by Rikako Katayama - AdMob Team

ContentProvider の構築方法を学ぶ際は、To Do アプリを構築してタスクを追加します。



コースには、Google の Android エキスパートである Dan Galpin や Reto Meier、Udacity の Lyla Fujiwara が登場します。さらに、Google と Udacity から新たな講師も迎えています。

早速、https://www.udacity.com/course/ud851 で学習を始めてみてください。


Developing Android Apps コースと Associate Android Developer Certification 試験を組み合わせたパッケージ

アップデートされたコースでは、Associate Android Developer Certification(アソシエイト Android デベロッパー認定)試験に出題される内容も学習できます。Udacity は、アップデートされた Developing Android Apps コースと Associate Android Developer Certification 試験のバウチャーを組み合わせたパッケージも提供しています。試験に合格すれば Associate Android Developer Certification 資格を取得できるので、初心者レベルの Android デベロッパーが一般的に実行するタスクを十分こなせることを資格を通じてアピールする事も可能です。https://www.udacity.com/course/nd818 から Udacity の Fast Track に登録し、Associate Android Developer Certification 試験を受ける準備を始めましょう。





Posted by Takuo Suzuki - Developer Relations Team



Doug Stevenson
Developer Advocate



Firebase Crash Reporting は、Google I/O 2016 でベータ版が公開されてから、急速に採用が拡大しています。Firebase Crash Reporting はこれまでに数億回のエラーを検出し、デベロッパーが優れたユーザー エクスペリエンスを実現するために役立っています。このたび正式に公開された Firebase Crash Reporting にはさまざまな新機能や機能強化が搭載されているため、iOS や Android のモバイルアプリのユーザーに影響を与えるクラッシュをより適切に診断し、対応できるようになります。この投稿では新機能を紹介しますので、ぜひご確認ください。

問題解決

とても多く寄せられたリクエストとして、ダッシュボードでエラークラスタを「クローズ」する機能があります。これは、その問題が修正済みで、次のリリースでは同じ種類のクラッシュは発生しないはずだということを識別するための機能です。将来のバージョンでクラッシュが再発した場合、クラッシュ クラスタが同じ状況に対して自動的に再オープンされます。



報告にかかる時間の短縮

クラッシュが報告されてコンソールに表示されるまでに約 20 分かかっていましたが、その時間が大幅に短縮され、1 分以内に表示されるようになりました。この改善のほか、メール アラートにより、エラー発生時の診断能力の向上が期待できます。

メール アラート

Firebase プロジェクトにアクセスできるデベロッパーは、新しいエラークラスタが検出されたり、クローズされたエラーが再発した場合に、メール アラートを受信するように設定できます。この情報を元にしてすばやくエラーに優先順位を付けて対応し、ユーザーへの影響を最小限に抑えることができます。



クラッシュログのアナリティクス イベント

クラッシュログに Firebase Analytics のイベントが追加されるようになりました。これによって、アプリがクラッシュに至った状況がわかりやすくなっています。詳しい状況が追加されたため、収益や重要なコンバージョン イベントにクラッシュがどのように影響するのかも確認できます。



モバイル フレンドリーなコンソール

モバイル端末でも使いやすいように、Crash Reporting のコンソールが改善されています。新たにレスポンシブ デザインが導入され、デスクトップ パソコンのそばにいなくても、簡単にアプリの状態をチェックできます。



Android SDK の互換性

Android SDK の最初のリリースには、Application クラスを宣言している一部のアプリでうまく動作しないという制限がありました。その制限が解消され、Firebase Crash Reporting はすべての Android アプリで問題なく動作するようになりました。

iOS の Swift サポートのアップデート

Swift 2 および 3 で書かれたアプリのシンボルが表示されるようにアップデートされています。

フィードバックをお待ちしています

Firebase Crash Reporting を試した方は、ぜひ感想をお聞かせください。Crash Reporting などの Firebase 機能について質問がある方は、firebase-talk フォーラムを利用できます。プログラミングに関する質問は、Stack Overflow に firebase タグを付けてお問い合わせください。


Posted by Khanh LeViet - Developer Relations Team


そのため、ファイルごとのパッチは、圧縮されていないデータで検出された差分に基づきます。パッチの生成にあたって、まず古いファイルと新しいファイルの両方を解凍し、差分を計算します(ここでは、まだ bsdiff を利用しています)。次に、パッチを適用するため、古いファイルを解凍して圧縮されていないコンテンツに差分を適用し、新しいファイルを再圧縮します。その際に、端末上の APK が Play Store 上の APK とバイト単位で完全に一致していることを確認する必要があります(この理由については、APK 署名スキーマ v2 をご覧ください)。

新しいファイルの再圧縮には、2 つの問題があります。1 つ目の問題は、Deflate の設定によって Deflate の出力が色々と変わることです。そもそも、圧縮の際にどのような設定が使われたのかはわかりません。2 つ目は、Deflate には多くのバージョンが存在しており、ユーザーの端末上にある Deflate が適切なバージョンか確認する必要があります。

幸運にも、Play Store のアプリを分析したところ、Play Store のほぼすべての Deflate コンテンツで、zlib(もっとも普及している Deflate ライブラリ)に基づいた、互換性がある最近のバージョンの Deflate が使われていることがわかりました。さらに、実質的に使われている設定は、デフォルト(level=6)と最大(level=9)の圧縮設定だけでした。

以上のことを踏まえると、元々の Deflate 設定を検出して再現できると言えます。つまり、データを解凍し、パッチを適用してデータを再圧縮し、元々アップロードされたものと まったく同じバイト列 を作ることができます。

ただしこの方式には、端末側で必要な処理能力が高くなるという欠点もあります。最近(たとえば、2015 年以降)の端末では、再圧縮には 1 メガバイトあたり 1 秒少しかかり、古い端末や能力が低い端末はさらに時間がかかります。現時点の分析によると、平均で、パッチのサイズが半分になるとパッチの適用(再圧縮を含めたファイルごとのパッチ適用)にかかる時間は倍になります。

今のところ、この新しいパッチ テクノロジーの利用は自動アップデートのみに制限しています。これは通常、夜間にスマートフォンが電源に接続され、ユーザーが使用していない可能性が高いときにバックグラウンドで行われるアップデートです。これによって、ユーザーが手動でアプリをアップデートする際に、いつもより長く待たなければならないという事態を回避しています。

ファイルごとのパッチ適用の効率性

以下に、すでにファイルごとのパッチ適用を使っているアプリのアップデートの例を示します。

アプリ
元のサイズ
以前の(bsdiff)パッチサイズ
(元のサイズに対する割合)
ファイルごとのパッチによるサイズ(元のサイズに対する割合)
71.1 MB
13.4 MB(-81%)
8.0 MB(-89%)
32.7 MB
17.5 MB(-46%)
9.6 MB(-71%)
17.8 MB
7.6 MB(-57%)
7.3 MB(-59%)
18.9 MB
17.2 MB(-9%)
13.1 MB(-31%)
52.4 MB
19.1 MB(-64%)
8.4 MB(-84%)
16.2 MB
7.7 MB(-52%)
1.2 MB(-92%)


免責事項: 現在、ファイルごとのパッチはバックグラウンドでのみ利用されており、インタラクティブなアップデートには利用されていないため、手動で「アップデート」を押した際に表示されるパッチサイズとは異なる場合があります。

データを節約してユーザー(そしてデベロッパー)をハッピーに

以上の変更は、10 億人以上の Android ユーザー コミュニティが、最小限のデータ量でアプリの定期アップデートを行えるように設計されています。一番の長所は、デベロッパーは何もする必要がないことです。このアップデートのサイズ削減は、無償で行われます。

技術的な詳細など、ファイルごとのパッチ適用についてさらに詳しく知りたい方は、Archive Patcher GitHub プロジェクトをご覧ください。ソースコードを含む情報を閲覧できます。ファイルごとのパッチ適用は、完全なオープンソースです。

APK サイズをさらに削減したいデベロッパーの方は、APK サイズ削減のための一般的な推奨事項もご覧ください。


Posted by Khanh LeViet - Developer Relations Team
Share on Twitter Share on Facebook

var requests = [
   {"createTable": {
       "elementProperties":
           {"pageObjectId": slideID},
       "rows":8,
       "columns":4
   }},
   {"createSheetsChart": {
       "spreadsheetId": sheetID,
       "chartId": chartID,
       "linkingMode":"LINKED",
       "elementProperties": {
           "pageObjectId": slideID,
           "size": {
               "height": { ... },
               "width": { ... }
           },
           "transform": { ... }
       }
   }}
];
少なくとも 1 つのリクエストを格納した変数(ここでは、上の例に合わせてrequestsとします)があり、その中にスプレッドシートのsheetIDchartID、さらにプレゼンテーション ページのslideID が含まれているものとします。これを API に渡し、presentations().batchUpdate() コマンドを 1 回呼び出します。この処理は、API のサービス エンドポイントが SLIDES である場合、Python で次のように書くことができます。
SLIDES.presentations().batchUpdate(presentationId=slideID,
       body=requests).execute()
表の作成はとても単純です。グラフの作成では、魔法のような機能を使うことができます。その 1 つが、linkingMode です。これに「LINKED」という値を設定しておくと、スプレッドシートのデータが変更された際に(スプレッドシート内のグラフが変わる場合)プレゼンテーションのスライドでもグラフが更新され、最新のイメージが表示されます。この更新は、API またはスライドのユーザー インターフェースによって行われます。linkingMode の値に「NOT_LINKED_IMAGE」を選択すると、データに応じて変更されることのない、旧来の静的なイメージになります。この機能の詳細については、グラフの作成に関するドキュメントや、両方の値を使った API リクエストの動作を紹介した動画をご覧ください。

動画で取り上げたコードサンプルの 全容 については、さらに詳しく取り上げている投稿をご覧ください。両方の API を駆使したアプリの登場を楽しみにしています。

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

先週、Nougat のアップデートを公開しました。Pixel および Pixel XL 端末と、サポート対象となるすべての Nexus 端末向けの Android 7.1.1 です。また、端末メーカーが最新版の Android を入手できるように、Android 7.1.1 のソースコードが Android Open Source Project(AOSP)に登録されます。

Android 7.1.1 がユーザーに向けて公式にリリースされるこのタイミングで、ぜひアプリの対応を行ってください。

Android 7.1.1 の機能

Android 7.1.1 は、Pixel および Pixel XL 端末ですでに利用できるようになっている機能を土台として、ユーザー向けのさまざまな新機能の追加や、基盤となる Android 7.1 プラットフォーム(API レベル 25)に対する最適化やバグの修正が行われている増分リリースです。

デベロッパー機能の詳細については、アプリ ショートカット円形アイコン リソース、イメージ キーボードのサポートなどをご覧ください。デベロッパー機能の完全なリストは、こちらで確認できます。API レベル 25 の詳細については、API の差分API リファレンスをご覧ください。

Android 7.0 Nougat の主な動作変更の詳細やデベロッパー機能など、すべての Nougat デベロッパー リソースの概要はこちらから参照できます。

ユーザー端末にも順次展開

Android 7.1.1 は本日より公開され、今後数週間ですべての対象端末で利用できるようになる予定です。Pixel および Pixel XL 端末に加え、Nexus 5X、Nexus 6P、Nexus 6、Nexus 9、Nexus Player、Pixel C、General Mobile 4G(Android One)の各端末に、Over-the-air(OTA)アップデートが配信されます。Android ベータ版プログラムに登録している端末にも、この最終版が配信されます。通常どおり、このアップデートを手動でダウンロードして端末に書き込むこともできます。

また、数か月後にパートナーの端末メーカーが自社の端末を Android 7.1.1 にアップデートできるよう、その準備も進めています。

アプリを確実に対応させる

この機会にアプリの互換性をテストし、円形アイコンアプリ ショートカットなどを追加して Android 7.1.1 でのアプリの外観を最適化してください。アプリは API 25 でコンパイルすることをお勧めします。できれば、ターゲットも API 25 に設定します。詳細については、最近の投稿をご覧ください。

最終版プラットフォームでは、Android Studio のプラットフォーム ツールやビルドツール、API レベル 25 エミュレータ システム イメージもアップデートされています。最新版のサポート ライブラリ(25.0.1)もリリースされ、API レベル 25 以前を実行している端末に、イメージ キーボードのサポートボトム ナビゲーションなどの機能を追加できます。

Pixel および Nexus 端末の最終テストをサポートするため、Nexus Images ページでダウンロード可能なファクトリー イメージや OTA イメージも提供しています。テスト対象端末を拡大するため、ぜひ Firebase Test Lab for Android を活用し、クラウドでテストを実行してください。12 月末までテストが無料になります。

最終テストの終了後には、Google Play Developer Console でアプリをアルファ版、ベータ版、さらに製品版のチャンネルに公開できます。

次のステップ

Developer Preview ビルドに対して報告されたバグのうち、未対応のものについてはまもなく対応が完了する予定ですが、フィードバックは今後も大歓迎です。Preview Tracker に記録した問題がまだ解消されていないという方は、AOSP Issue Tracker で Android 7.1 に対して新しく問題を送信してください。デベロッパー コミュニティでも、引き続きフィードバックや質問をお寄せいただけます。

8 月にお知らせしたように Android Nougat は定期メンテナンス サイクルに移っており、次の増分アップデートに向けた微調整やバグの修正作業もすでに始まっています。現在、対象端末をお持ちで Android ベータ版プログラムに登録している場合、その端末は次の Android Nougat リリースのプレビュー アップデートが利用可能になり次第、自動的に受信します。アップデートを自動で受信したくない場合は、ベータ版サイトで端末を登録解除してください。

デベロッパー プレビューに参加いただき、どうもありがとうございます。アンケートに回答し、今年のプレビューが皆さんのニーズをどの程度満たしていたかをお知らせください。いただいたフィードバックは、将来のリリース計画に反映いたします。



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


Windows での TensorFlow のネイティブ サポートは、TensorFlow をオープンソース化した後、最初に寄せられたリクエストの 1 つでした。Windows ユーザーの中には、Docker コンテナで TensorFlow を実行している方もいます。しかし私たちはそれよりもっと完全に近い、たとえば GPU のサポートも含む機能を提供したいと考えていました。

今回の TensorFlow r0.12 のリリースに合わせて、Windows 7、10、Server 2016 向けのネイティブ TensorFlow パッケージを提供いたします。このリリースでは、CUDA 8 対応の GPU で TensorFlow トレーニングを高速化できます。

この最新リリースは、PyPI の pip パッケージ として公開されていますので、次のコマンド 1 つで TensorFlow をインストールできます。

     C:\> pip install tensorflow

GPU サポートは、次のコマンドでインストールできます。

     C:\> pip install tensorflow-gpu

Windows サポートの詳細を含む r0.12 の新機能の詳細については、リリースノートをご覧ください。

多くの方に TF を最高速でご利用いただけるようになりました。今後のリリース情報をいち早く受け取れるように、ぜひ Twitter で @tensorflow をフォローしてください。

謝辞

このリリースは、たくさんの方の貢献によって実現できました。とりわけ、Windows のサポートに大きく貢献してくださった Microsoft の Guenther Schmuelling 氏と Vit Stepanovs 氏に感謝いたします。


Posted by Kazunori Sato - Google Cloud Platform
Share on Twitter Share on Facebook