Quantcast
Channel: Google Developers Japan
Viewing all 2209 articles
Browse latest View live

Android Studio の dex コンパイラーが D8 に

$
0
0
この記事はソフトウェア エンジニア マネージャー、Jeffrey van Gogh による Android Developers Blog の記事 "Android Studio switching to D8 dexer" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

D8 がデフォルトの dex コンパイラーに



Android ツールチームが常に目指しているのは、アプリを高速かつスマートにコンパイルすることです。以前、次世代 dex コンパイラーである D8についてお知らせしたのはそのためです。D8 は、従来のコンパイラーである DX よりも高速に実行され、生成される .dex ファイルも小さくなります。ランタイムのパフォーマンスは同等またはそれ以上です。

先日、D8 が Android Studio 3.1 のデフォルト コンパイラーになったことをお知らせしました。まだ D8 を試していない方は、ぜひ切り替えてみてください。dex コンパイルが改善され、高速になったことを実感していただけることを期待しています。

D8 は、まずオプトイン機能として Android Studio 3.0 に搭載されました。その結果、内部での徹底したテストに加えて多種多様なアプリで優れたパフォーマンスを実現していることが確認でき、3.1 で D8 を使い始めるすべての方々にも問題なく使っていただけると確信するに至りました。ただし問題が発生した場合はいつでも、プロジェクトの gradle.properties ファイルに以下のように設定することで、差し当たり DX に戻すことができます。
android.enableD8=false


D8 の無効化が必要になるような状況に遭遇した方は、ぜひお知らせください

次のステップ



私たちが目指すのは、誰もが高速で正確な dex コンパイラーにアクセスできるようにすることです。そこで、ユーザーの皆さんがリグレッションを起こすことがないように、DX のサポートは 3 段階に分けて終了します。

第 1 段階は、DX の早急なサポート終了を猶予するための期間です。この期間は、Studio から DX を利用することができます。重要な問題の修正は行いますが、新機能の追加は行いません。この段階は、少なくとも 6 か月間継続されます。この期間に対応が完了していないすべての D8 のバグを評価し、ユーザーが DX から D8 に移行することを妨げているリグレッションがないかを判断します。第 1 段階は、移行を妨げる問題への対処が完全に終わるまで終了しません。この期間は、とりわけバグトラッカーに注意を払いますので、何らかのリグレッションに遭遇した方はぜひ問題を送信してください

DX から D8 に移行するにあたり、大きなリグレッションがなく 6 か月が経過すると、第 2 段階に入ります。この段階は、複雑なプロジェクトでも十分な移行時間を確保できるようにすることが目的で、1 年間続きます。この期間、DX を利用することはできますが、いかなる問題も修正されず、完全に非推奨という扱いになります。

最終の第 3 段階では、Android Studio から DX が削除されます。この時点で、以前のバージョンの Android Gradle Plugin を使わない限り、DX によるビルドを継続できなくなります。


Reviewed by Yuichi Araki - Developer Relations Team

Android P で TLS のデフォルト化によるユーザー保護

$
0
0
この記事は Android セキュリティ シニア ソフトウェア エンジニア、Chad Brubaker による Android Developers Blog の記事 "Protecting users with TLS by default in Android P" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Android は、ユーザー、端末、データを安全な状態に保つことに力を注いでいます。データを安全な状態に保つ方法の 1 つとして、Android 端末が送受信するすべての通信データを Transport Layer Security(TLS)で保護することがあげられます。Android P デベロッパー プレビューでお知らせしたように、Android P をターゲットとするアプリでは、この保護がさらに強化され、暗号化されていない接続がデフォルトで許可されなくなっています。

これは、Android ユーザーの保護を強化するためにここ数年の間に行ってきたさまざまな変更の一貫です。Android Marshmallow では、意図せず暗号化されていない接続が使われることがないように、android:usesCleartextTrafficマニフェスト属性が導入されました。Android Nougat ではこの属性が拡張され、アプリが暗号化しないネットワーク トラフィックを送信する意図がないことを宣言できるネットワーク セキュリティ構成機能が追加されています。Android Nougat と Oreo では、まだクリアテキスト接続が許可されています。

アプリをアップデートする方法は?


アプリのすべての接続で TLS を使っている場合は、何もする必要はありません。そうでない場合は、TLS を使ってすべての接続を暗号化するようにアプリをアップデートしてください。まだクリアテキスト接続を行う必要がある方は、ベスト プラクティスをお読みください。

TLS を使うべき理由は?


Android は、すべてのネットワークに悪意が潜んでいる可能性があると見なしています。そのため、すべての接続に対して常に暗号化したトラフィックを使う必要があります。コーヒー ショップの Wi-Fi など、さまざまなネットワークに定期的に接続しているモバイル端末は特に危険です。

コンテンツにかかわらず、すべてのトラフィックを暗号化する必要があります。接続が暗号化されていないと、コンテンツの注入による改ざんに使われたり、脆弱性を含む可能性があるクライアント コードに対する攻撃対象領域が増加したり、ユーザーがトラッキングされたりする可能性があります。詳細については、今までのブログ投稿Developer Summit のセッションをご覧ください。

TLS によって遅くなりませんか?


遅くなることはありません

アプリで TLS を使う方法は?


サーバーが TLS をサポートするようになったら、アプリの URL とサーバーのレスポンスを http:// から https:// に変更するだけです。特に何もしなくても、HTTP スタックが TLS handshake を処理してくれます。

独自にソケットを作成している方は、SocketFactoryの代わりに SSLSocketFactoryを使います。SSLSocketはホスト名の検証を行わないので、特に注意してソケットを正しく使用するようにしてください。ホスト名の検証は、アプリで独自に行う必要があります。想定されるホスト名を使って getDefaultHostnameVerifier()を呼び出すとよいでしょう。また、HostnameVerifier.verify()は、エラーが発生しても例外をスローしません。ブール型の結果が返されます。この結果を明示的に確認する必要がありますので注意してください。

クリアテキスト トラフィックを使う必要がある場合


すべての接続で TLS を使うべきではありますが、サーバーへの接続など、従来の用途でクリアテキスト トラフィックを使わなければならない場合もあるでしょう。その場合は、アプリのネットワーク セキュリティ構成を変更して、クリアテキスト接続を許可するようにします。

いくつかのサンプル構成を示します。詳しくは、ネットワーク セキュリティ構成のドキュメントをご覧ください。

特定のドメインに対するクリアテキスト接続を許可


特定のドメインや複数のドメインに対する接続を許可しなければならない場合は、次の構成を参考にしてください。
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">insecure.example.com</domain>
<domain includeSubdomains="true">insecure.cdn.example.com</domain>
</domain-config>
</network-security-config>

安全でない任意のドメインへの接続を許可


安全でない接続によって URL から任意のコンテンツを開く操作をサポートするアプリでは、皆さん独自のサービスに対するクリアテキスト接続を無効にしつつ、任意のホストに対するクリアテキスト接続をサポートする必要があります。安全でない接続を通して受信したデータは、転送中に改ざんされるおそれがあるので、十分注意する必要があります。
<network-security-config>
<domain-config cleartextTrafficPermitted="false">
<domain includeSubdomains="true">example.com</domain>
<domain includeSubdomains="true">cdn.example2.com</domain>
</domain-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>

ライブラリをアップデートする方法は?


ライブラリで直接安全な接続や安全でない接続を確立している場合は、isCleartextTrafficPermittedを確認してアプリのクリアテキスト設定に従うようにします。これは、クリアテキスト接続をオープンする に行う必要があります。


Reviewed by Takeshi Hagikura - Developer Relations Team

Google Ads Developer Blog: IMA SDK で Flash の提供が終了

$
0
0
この記事は IMA SDK チーム、Shawn Busolits による Google Ads Developer Blogの記事 "Sunsetting Flash in the IMA SDKs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

2018 年 5 月 15 日に IMA SDK での Flash のサポートを終了します。この変更は、すべての Flash IMA SDK ユーザーと、ごく一部の HTML5 IMA SDK ユーザーに影響があります。

Flash SDK の変更点

2018 年 5 月 15 日以降に Flash IMA SDK を読み込もうとすると、AdsLoader で AdErrorEvent.AD_ERROR が発生します。Flash SDK の実行時に読み込まれる部分が変更されるため、本番環境のすべての Flash SDK 実装に影響します。実装のベスト プラクティスに従っている場合、このエラーのハンドラはコンテンツ動画を再生します。


private function initAdsLoader():void {
  ...
  adsLoader.addEventListener(AdErrorEvent.AD_ERROR, adsLoadErrorHandler);
}

private function adsLoadErrorHandler(event:AdErrorEvent):void {
  trace("warning", "Ads load error: " + event.error.errorMessage);
  videoPlayer.play();
}


まだ Flash SDK を使っているすべてのサイトオーナーの皆さんには、HTML5 SDKへ移行することを強くお勧めします。提供終了の一環として、Flash SDK ドキュメントが developers.google.com から、Flash のサンプルが GitHub から削除されます。

HTML5 SDK の変更点

2018 年 5 月 15 日より、HTML5 IMA SDK はすべての Flash 広告のサポートを終了します。これには、リニア広告、ノンリニア広告、コンパニオン広告が含まれます。VAST レスポンスに Flash メディア ファイルのみを含めている場合、リニア広告ではエラー 403 - VAST_LINEAR_ASSET_MISMATCHが、ノンリニア広告ではエラー 503 - VAST_NONLINEAR_ASSET_MISMATCHが IMA SDK から投げられます。Flash のコンパニオン広告は、エラーが投げられなく失敗します。HTML5 SDK は、昨年 6 月の Flash IMA SDK のサポート終了に伴い、Flash VPAID 広告のサポートを終了しています。


ご質問がありましたら、いつものようにサポート フォーラムからご連絡ください。


Reviewed by Thanet Knack Praneenararat - Ads Developer Relations

セーフ ブラウジングで WebView を保護

$
0
0
この記事は ソフトウェア エンジニア、Nate Fischer による Chromium Blog の記事 "Protecting WebView with Safe Browsing" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

 Google セーフ ブラウジングは、2007 年よりあらゆるウェブのユーザーをフィッシングや不正なソフトウェアから守り続けています。この機能は、PC やモバイル プラットフォームでますます増加している脅威のほか、望ましくないソフトウェアからも 30 億台以上の端末を保護しています。2018 年 4 月の WebView 66 のリリースより、Google Play プロテクトによってデフォルトで WebView にセーフ ブラウジングが適用されることをお知らせします。

WebView を使っている Android アプリのデベロッパーは、何も変更しなくてもこの保護を受けられます。WebView のセーフ ブラウジングでは Android 版 Chromeと同じ基盤テクノロジーが使われており、Android 8.0(API レベル 26)以降で利用できます。セーフ ブラウジングがトリガーされると、アプリには警告が表示され、ネットワーク エラーが返されます。API レベル 27 以降でビルドされたアプリは、新しいセーフ ブラウジング用 APIを使ってこの動作をカスタマイズできます。

セーフ ブラウジングによって危険なサイトが検知された際に表示される警告の例。警告のスタイルや内容は、WebView のサイズによって異なります。

セーフ ブラウジングのカスタマイズや制御の詳細については、Android API ドキュメントをご覧ください。最新のベータ版 WebView を使ってセーフ ブラウジング テスト URL(chrome://safe-browsing/match?type=malware)にアクセスすると、すぐにアプリをテストできます。



Reviewed by Eiji Kitamura - Developer Relations Team

Android Jetpack を使用してアプリの開発を加速

$
0
0
この記事は Android デベロッパー ツール プロダクト マネージメント担当者、Chris Sells、 Benjamin Poiesz、Karen Ng による Android Developers Blog の記事 "Use Android Jetpack to Accelerate Your App Development" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

先週の Google I/O 2018 で、Android アプリの開発を加速させる次世代のコンポーネント、ツール、アーキテクチャ ガイダンスである Android Jetpack を発表しました。



Android Jetpack は、下位互換性を維持しながら Android の新しい機能を簡単に活用できるようにする一連のコンポーネントである Support Library から着想を得ています。現在、Support Library は Google Play ストア内の 99% のアプリで使用されています。Support Library の成功に続き、アプリのライフサイクルで発生する変更や複雑な問題に簡単に対処できるように設計された Architecture Componentsを導入しました。ちょうど 1 年前にこれらのコンポーネントを I/O で発表して以来、圧倒的な数のデベロッパーがこれらのコンポーネントを採用しています。LinkedIn、Zillow、iHeartRadio などの企業は、バグを減らし、テスタビリティを向上させ、アプリの独自性を高める取り組みにさらに多くの時間を費やせるようになりました。

Android デベロッパー コミュニティでは、デベロッパーがこれらのコンポーネントの機能に満足されていると同時に、さらにより良いものを求めていることを知っています。そこで、今回 Android Jetpack を発表します。

Android Jetpack とは


Android Jetpack は、優れた Android アプリを作成するための一連のコンポーネントやツールでありガイダンスです。Android Jetpack コンポーネントは、既存の Support Library と Architecture Components を統合して 4 つのカテゴリに分類されています。



Android Jetpack コンポーネントは、基盤となる Android プラットフォームの一部ではなく、「バンドルされていない」ライブラリとして提供されます。つまり、デベロッパーは自分のペースとタイミングで各コンポーネントを導入することができます。Android Jetpack の新機能がリリースされたら、(すばやく行えば)1 日でその機能をアプリに追加して、アプリを Play ストアにデプロイし、ユーザーに新機能を提供することができます。バンドルされていない Android Jetpack ライブラリはすべて新しい androidx.* namespace に移動されています(詳細は、この投稿をご覧ください)。

また、Android Jetpack コンポーネントは特定のバージョンに左右されずに機能を提供するように構築されているため、さまざまなバージョンのプラットフォームでアプリを実行できます。つまり、下方互換性が確保されています。

さらに、Android Jetpack は、考慮事項やテスタビリティのほか、Kotlin 統合などの生産性に関する機能の分離など、最新の設計プラクティスに従って構築されています。その結果、より少ないコードではるかに簡単に堅牢かつ高品質のアプリをビルドすることが可能になりました。Android Jetpack のコンポーネント(たとえば、ライフサイクル認識やライブデータ)は連携して動作するように構築されていますが、すべてのコンポーネントを使用する必要はありません。問題の解決につながる Android Jetpack の一部を統合すると同時に、アプリで適切に動作している部分を維持することができます。

これらのメリットがデベロッパーの皆さんにとって重要であることを裏付ける、次のようなフィードバックが寄せられています。

「コードベースで MVVM を試してみようと考えていました。Android Architecture Components は、MVVM を簡単に実装できるテンプレートを備えています。MVVM によりコードのテストがしやすくなりました。ViewModel のユニットテストを実行できるため、コードの堅牢性が確実に向上しました」
-- Zillow、シニア エンジニア、Sumiran Pradhan

企業がどのように Android Jetpack を使用しているかをもっと知りたい方は、Android デベロッパー サイトのデベロッパー ストーリーをご覧ください。

最後に、上記の Android Jetpack の図に示すように、本日(*原文公開当時)、新しいコンポーネントも発表します。

新着情報


Android Jetpack には 5 つの新しいコンポーネントが付属しています。
  • WorkManager(アルファ版リリース)
  • Navigation(アルファ版リリース)
  • Paging(安定版リリース)
  • Slices(アルファ版リリース)
  • Android KTX(Kotlin 拡張機能、アルファ版リリース)


WorkManager


WorkMananager コンポーネントは、確実な実行が必要な制約ベースのバックグラウンド ジョブのワンストップ ソリューションを提供する強力な新しいライブラリであり、このコンポーネントにより、ジョブや SyncAdapters などを使用する必要がなくなります。WorkManager は簡素化された最新の API を提供し、Google Play サービスを使用するかどうかに関係なく、端末の操作や、業務のグラフの作成、業務の状態の照会を実現します。初期のフィードバックをお寄せいただけると助かりますが、ユースケースもお知らせくださるようお願いいたします。WorkManager コンポーネントでこれまでに開発された機能を確認し、アルファ版に関するフィードバックをお寄せください。

Navigation


アクティビティはアプリの UI のエントリ ポイントとしてシステムによって提供されますが、データの相互共有や遷移の際の柔軟性が欠けているため、アプリ内のナビゲーションをビルドするときの理想的なアーキテクチャとは言えませんでした。そこで先週、アプリ内 UI を構造化するためのフレームワークとして Navigation コンポーネントを発表しました。このコンポーネントでは、単一アクティビティのアプリを優先アーキテクチャにすることに重点を置いています。Fragments のすぐに使えるサポートにより、ライフサイクルや ViewModel など、Architecture Components のすべてのメリットを活用できるほか、Navigation で FragmentTransaction の複雑さに対応できるようになりました。さらに、Navigation コンポーネントを使用すると、処理される遷移を宣言し、Up ボタンと「戻る」ボタンの正しい動作を自動的にビルドし、ディープリンクの完全なサポートを含めることができるほか、ナビゲーション ドロワーやボトム ナビゲーションなどの適切な UI ウィジェットに Navigation を接続するためのヘルパーを提供できます。しかし、それだけではありません。Android Studio 3.2の Navigation Editor を使用すれば、ナビゲーション プロパティを視覚的に表示および管理できます。



Navigation コンポーネントもアルファ版ですので、ぜひフィードバックをお寄せください。

Paging


アプリに提供されるデータが大量で、読み込みに負荷がかかる場合があるため、過剰なデータを一度にダウンロード、作成、または表示しないことが重要です。Paging コンポーネントバージョン 1.0.0 は、大量のデータセットを簡単に読み込んで表示できるようにするほか、RecyclerView で高速の無限スクロールが可能になります。このコンポーネントにより、ローカル ストレージとネットワークの一方または両方からページングされたデータを読み込み、コンテンツを読み込む方法を定義できるようになります。また、Room、LiveData、および RxJava とそのまま併用することができます。

Slices


最後に、Android Jetpack に導入された一連の新しい機能の締めくくりとして Slices コンポーネントを紹介します。「スライス」は、Google アシスタント内で、アプリの UI を検索の結果として表示する方法を提供します。



Android デベロッパー ウェブサイトでは、Slices コンポーネントの詳細に加えて、Slices コンポーネントをアプリに組み込む方法を説明しています。

Android KTX


最後になりましたが、Android Jetpack の目標の 1 つは、生産性を向上させる Kotlin 言語機能を活用することです。例えば以下のようなコードを見てみましょう。

view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
});

Android KTX を使えば、上記のコードは以下のように変換できます。

view.doOnPreDraw { actionToBeTriggered() }


このような変換は、Kotlin のサポートを Android Jetpack コンポーネントに組み込む最初のステップに過ぎません。目標は、Kotlin のデベロッパー向けに(もちろん、Java のデベロッパーに対しても)、最高の Android Jetpack を提供することです。Android KTX の詳細については、Android デベロッパー ウェブサイトをご覧ください。

スタートガイド


Android Jetpack の利用を開始するには、developer.android.com/jetpackをご覧ください。Android Jetpack に関するドキュメントや動画をご覧ください。また、Android Jetpack コンポーネントの新機能を確認し、コミュニティに参加してフィードバックをお寄せください。Android Jetpack 専用の YouTube プレイリストも作成していますので、Android Jetpack のコンポーネント、ツール、ベスト プラクティスに関する情報にご注目ください。

Android Jetpack のスタートガイドでは、既存のアプリに Android Jetpack コンポーネントを組み込み、新しい Android Jetpack アプリの使用を開始する方法について説明します。Android Studio 3.2 では、Android Jetpack 向けツールのサポートが強化されています。新しいアプリをビルドするには、Android Studio で [File]、[New]、[New Project] の順に選択して、[Activity & Fragment+ViewData] アクティビティを使用してください。




次のステップ


Android Jetpack では、Support Library と Architecture Components のメリットを活用し、新しいコンポーネント、Android Studio との統合、Kotlin のサポートを通じて機能をさらに向上させています。Android Jetpack は Android での開発を加速させる次世代のコンポーネント、ツール、ガイダンスを提供しますが、今後はさらに多くの機能を追加する予定であり、デベロッパーの皆様からの支援が必要です。developer.android.com/jetpackにアクセスして、Android アプリをビルドする際に何が役立つかをお知らせください。


Reviewed by Yuichi Araki - Developer Relations Team

Google I/O 2018:Android の新機能

$
0
0
この記事は Android プロダクト マネジメント ディレクター、Stephanie Cuthbertson による Android Developers Blog の記事 "Google I/O 2018: What’s new in Android" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Android がこの10 年間で飛躍的な成長を遂げるとともに、デベロッパー コミュニティも大きく成長しています。中国、インド、ブラジルなどの国では、わずか 2 年間で Google の IDE を使用するデベロッパーが約 3 倍に増えました。このような成長を受け、Google ではデベロッパーのエクスペリエンス向上に対する責任を今まで以上に強く感じています。デベロッパーからの意見を参考に、Google ではモバイル開発をより速く簡単にすること、アプリを大幅に軽量化してユーザー数を増やすこと、エンゲージメントを高めてユーザーをつなぎとめることに注力しています。また、Android Things 1.0 を発表し、デベロッパーの皆さんが主要なユーザー端末から最新の遠隔操作車両まであらゆるものを開発できる新しい機会を提供できることを嬉しく思います。Google I/O をキックオフした Day 1 では、デベロッパー基調講演にてこれらの主要なテーマについて詳細に紹介しました。

開発: モバイル開発をより速く、より簡単に

  • Android Jetpack— 米国太平洋標準時の 5 月 8 日、Google はアプリの開発をより迅速にする Android Jetpackを発表しました。Android Jetpack は、次世代の Android コンポーネントです。Support Library のメリットである下位互換性と即時更新をより多くのコンポーネントにもたらし、堅牢で高品質のアプリを迅速かつ簡単に開発できるようにします。Android Jetpack により、バックグラウンド タスク、ナビゲーション、ライフサイクル管理などのアクティビティが管理されるため、ボイラープレート コードを排除することができ、アプリの品質向上に集中できます。Android Jetpack は、Kotlin を使用できるように設計されているため、Android KTX を使用してコードを簡素化できます。WorkManager、Paging、Navigation、Slices を含むこの新しい Android Jetpack コンポーネントも、同日リリースしました。




  • Kotlin— 昨年 Kotlin のサポートを発表して以来、デベロッパー コミュニティではこの言語が活用されてきました。最も注目すべき点は、95% のデベロッパーが Android 開発における Kotlin の使用に非常に満足していることです。また、この言語を使用するデベロッパーが増えるほど、この満足度が向上しています。昨年、Kotlin を使用した Google Play ストアのアプリの数は 6 倍に増加しています。35% のデベロッパーがこの言語を使用しており、この割合は毎月増加しています。Google では、ライブラリ、ツール、ランタイム、ドキュメント、トレーニングのすべてにおいて Kotlin デベロッパーのエクスペリエンスの向上に継続的に取り組んでいます。そして先週、Android Jetpack の一環として Kotlin デベロッパーのエクスペリエンスを最適化する Android KTXをリリースしました。Android Studio、Lint のサポート、R8 の最適化によってツールも改善を続けています。Kotlin で作成されたアプリの実行を速くするため、Android P の Android ランタイム(ART)についても調整しました。Kotlin コードの各種スニペットを公式のドキュメントで公開済みであり、また、API リファレンス ドキュメントの Kotlin バージョンを公開しました。I/O 開始前の先週前半には、Udacity の Kotlin ブートキャンプを新しくリリースしました。これは、Kotlin を初めて使うデベロッパーに最適なリソースです。最後に、Kotlin に特化した Google Developers Experts プログラムを策定しました。Kotlin をまだ使用していなければ、ぜひお試しください。
  • Android Studio 3.2 Canary Android Studio 3.2には、視覚的な Navigation Editor や新しいコード リファクタリング ツールを含む Android Jetpack のツールが搭載されています。Canary リリースには、新しい Android アプリ バンドル フォーマットを作成するためのビルド ツール、Android Emulator を高速起動するためのスナップショット、ダウンロードとインストールをするアプリのコードサイズを小さくする新しい R8 オプティマイザ、アプリのバッテリー寿命への影響を計測する新しい Energy Profiler なども含まれます。最新バージョンの Android Studio 3.2 は、Canary チャンネル ダウンロード ページからダウンロードできます。


配信: アプリを大幅に軽量化

  • Android App Bundleと Google Play ダイナミック配信— Android の新しいアプリモデルが導入されました。新しい公開フォーマットの Android App Bundleによって、アプリのサイズが劇的に削減されます。Android Studio では、すべての言語、すべての端末画面サイズ、すべてのハードウェア アーキテクチャが含まれるアプリバンドルをビルドできるようになり、アプリがあらゆる端末に対応できるようになりました。ユーザーがアプリをダウンロードするときに、Google Play の新しいダイナミック配信により、 ユーザーの端末に一致する コードとリソースのみが配信されます。Google Play ストアではユーザーに小さなインストール サイズが表示され、より短時間でアプリをダウンロードでき、端末上のスペースを節約できます。

(左)従来の APK で端末に配信されるすべてのリソースの例 
(右)端末に必要なものだけが提供されるダイナミック配信の例
  • Android App Bundle による動的機能— Android App Bundle ではモジュール化が可能であるため、インストール時ではなくオンデマンドで機能を配信できます。動的な機能モジュールは、最新の Android Studio Canary リリースでビルドできます。ベータ版プログラムに参加して、Google Play に公開してください。
  • Google Play ConsolePlay Consoleの新しい機能とレポートは、アプリのパフォーマンス向上に役立ち、ビジネスを成長させます。ダッシュボード、統計、Android Vitals、リリース前レポート、獲得レポート、定期購入ダッシュボードの改善に関する記事をお読みください。また、新しい公開フォーマットの Android App Bundle を使用して、アプリのアップロード、テスト、公開を行うことができます。
  • Google Play Instant — GDC でのベータ版のリリースを経て、 Google は、すべてのゲーム デベロッパーがインスタント アプリを作成可能であることを発表しました。私たちは、Candy Crush Sagaを迎え入れることを嬉しく思います。Google Play Instant は、現在全世界の 10 億を超える端末で利用可能です。Play ストア、検索結果、ソーシャルやほとんどの場所からリンクをタップしてご利用いただけます。インスタント アプリの作成を簡単にするために、Google は今週 Unity プラグインと Cocos クリエータとのベータ版統合をリリースします。先日、Google Play Instant と AdWords の互換性のテストを開始しました。この互換性により、ユニバーサル アプリ キャンペーンでリーチしたすべてのチャンネルで広告から直接ゲームを楽しむことができます。

エンゲージメント: ユーザーのリピート率を高める

  • SlicesSlicesは、アプリに豊富に含まれる動的でインタラクティブなコンテンツを Android や Google サーフェス内に表示する UI テンプレートです。Slices には、ライブデータ、スクロール コンテンツ、インライン アクション、アプリへのディープリンクを含めることができるため、ユーザーは音楽の再生から予約の最新情報の確認まであらゆる操作が可能です。Slices には、切り替えやスライダーなどのインタラクティブなコントロールを含めることもできます。Slices の構築は今すぐ始められます。そして、すぐにユーザーに表示されます。

Check reservations with Slices.Control music with Slices.Call a Lyft using Slices.


  • アクション— アクションは、アプリの機能とコンテンツにアクセスしやすくして、ユーザーが適切なタイミングでこれらにアクセスできるようにするための新しい方法です。アプリ アクションは、Google 検索アプリ、Play ストア、Google アシスタント、ランチャーなど、Google および Android の複数のサーフェスの使用状況や関連性に応じてユーザーに表示されます。すべてのデベロッパーは、アプリ アクションを間もなくお試しいただけます。通知を受けたい場合は、こちらからお申し込みください。また、アプリのコンパニオン エクスペリエンスとして会話アクションを作成することもできます。これは、スピーカーやスマート ディスプレイなどのさまざまなアシスタント対応端末で動作します。両方のタイプのアクションでは、インテントの新しい共通カタログを使用します。



スマート端末: IoT デバイスの強力なプラットフォーム

  • Android Things 1.0 Android Thingsは、Google が管理する OS です。これにより、デベロッパーは再規模な IoT 端末を構築および維持できます。今年の CES で、Google は Lenovo、Harman、LG、JBL、iHome が Android Things を使ったアシスタント対応製品を開発していることを発表しました。100,000 件を超える SDK ダウンロードによるデベロッパー プレビューと 10,000 件を超えるデベロッパーからのフィードバックを経て、Google は今週 Android Things 1.0を発表しました。4 つの新しいシステム オン モジュール(SoM)がプラットフォーム上でサポートされ、3 年間の長期サポートが保証されます。また、延長サポートの追加オプションもあり、試作品から本生産への移行も容易です。製品開発をシームレスにするために、付属する Android Things Console も製品生産に対応します。これにより、デベロッパーはデバイスの管理と更新が容易になり、Google が提供する最新の安定性修正やセキュリティ アップデートを適用できます。

Android Things を使用するには、デベロッパー サイトと新しいコミュニティ ハブにアクセスして、キット、サンプルコード、コミュニティ プロジェクトをチェックしてください。また、Google's IoT Developers Communityに参加して、常に最新の情報をご確認ください。Google は、Android Things チームのパートナーに対してテクニカル ガイダンスの限定プログラムを導入し、製品の開発をサポートしています。関心がある方は、OEM パートナー プログラムにご登録ください。

Google は、これらの新しい開発だけでなく、140 以上の国で、Women Techmakersや Google Developer Groups(GDGs)などのプログラムを通じて、デベロッパー コミュニティを育み、拡大しています。Google Developers Certification(Google Developers 認定)などのトレーニング プログラムに投資し、Udacity やその他のパートナーを通じてさまざまなコースを構築しています。これにより、デベロッパーは技術的な能力をさらに深めることができます。現在、15 か国 50 社から参加した 225 人の Google Developers Agency Program メンバーが、Android 認定を取得しています。Google Developers Experts プログラムの一環として、現在 Google は全世界に 90 人を超える Android Developer Expertsを擁し、デベロッパー、スタートアップおよび企業に対して革新的なアプリの開発とリリースを積極的にサポートしています。

また、上位のアプリやゲームのデベロッパーの優れた功績を継続して表彰しています。今年で 3 回目となる年次の Google Play Awards を開催しました。候補者は、Android で可能な最高のエクスペリエンスを体現し、全体的な品質、アピール力のあるデザイン、技術的なパフォーマンス、革新を実現しています。受賞者と候補者をご確認ください。

Google I/O期間中は、48 の Android と Play のブレークアウト セッションが参加者と視聴者に用意され、これらについて深く学べる機会が提供されました。素晴らしいフィードバックに感謝いたします。今後 Google が向かう先について、引き続きフィードバックをお寄せください。

Reviewed by Takeshi Hagikura - Developer Relations Team

AMP ページでユーザー制御を実現する新しいツール

$
0
0
この記事は AMP プロダクト マネージャー、Rudy Galfi による Accelerated Mobile Pages Project の記事 "New tools for building user controls in AMP pages" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

数週間前、サイト運営者や技術ベンダーが適切なユーザー制御を AMP ページに実装できるツールの計画についてお知らせしました。(日本語訳版)本日は、そのツールが初めて公開されたことをお知らせします。

AMP に、新しく <amp-consent> コンポーネントが導入されます。この新しいツールを使うと、サイト運営者がユーザー制御を実装できるようになります。このコンポーネントは、主に次の 3 つのことを実現します。
  • ユーザーに対してユーザー制御の選択肢を表示するかどうかを決定する。
  • ユーザーの応答(許可か拒否のどちらか)を取得し、現在のページのライフサイクルおよび今後のページ読み込みの際に再利用できるように記憶する。
  • ユーザーの設定を AMP ページ上の要素に反映し、ページの動作を変更できるようにする。

ユーザーに対してユーザー制御を表示するかどうかを決定する

ユーザー制御は特定のユーザーや状況のみで利用し、それ以外では使わない可能性もあります。サイト運営者がリモート URL を指定すると、その URL から返される内容によって選択肢を提示するかどうかが決まり、ユーザー制御を設定できます。選択肢を提示する場合、ページ内で完全にカスタマイズできる UI コンテナがユーザーに表示され、結果が取得されます。

ユーザーの応答を取得する

現在のユーザー制御は、「許可」または「拒否」の意味を持つ操作に対応しています。サイト運営者は、それぞれの選択肢に対応するボタンを指定できます。さらに、どちらの状態も設定されず、ユーザー制御を未解決のままにする「キャンセル」操作も実装できます。

要素の動作を変更する

サイト運営者は、ユーザーの応答後、選択肢に応じたページの動作を指定できます。AMP 要素にシンプルな HTML 属性を追加すると、ユーザー設定が行われていないときや否定状態(つまり、ユーザーが拒否したとき)のときに、読み込みが行われなくなります。たとえば、ユーザーが同意した場合のみ広告やアナリティクスを読み込むことができるようになります。また、ベンダーがさらに要素をカスタマイズして、ユーザーの設定に応じた高度な動作を実現することもできます。
amp-consent の実装方法や設定方法については、ドキュメントをご覧ください。AMP by Example でも、サンプル実装が公開されています。

<amp-consent> には、これからも機能が追加される予定です。すでに計画されているアイデアのいくつかは、GitHubからご覧いただけます。新しいアイデアがある方は、ぜひ Issue を送信してください。ユーザー制御に基づく AMP 拡張機能の動作をカスタマイズしたいベンダーの方は、貢献ガイドラインに従い、関連するトピックを扱っているこちらのドキュメントにも目を通してください。


Reviewed by Yoshifumi Yamaguchi - Developer Relations Team

Android Things 1.0 をリリース

$
0
0
この記事は IoT デベロッパー アドボケート、Dave Smithによる Android Developers Blog の記事 "Say Hello to Android Things 1.0" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Android Things は、モノのインターネット(Internet of Things)端末の構築と管理を可能にする Google が提供する OS です。認定ハードウェア、豊富なデベロッパー向け API、Google のバックエンド インフラを使用した安全なソフトウェアアップデートといった手間のかかる部分を堅牢なプラットフォーム Android Things 1.0 が担うため、皆さんは製品の構築に専念することができます。

SDK が 10 万回以上ダウンロードされたデベロッパー プレビューを経て、製品端末向けの長期サポートが付いた Android Things 1.0 をリリースしました。1.0 をリリースするまでの道のりにおいて、デベロッパーの皆さんのフィードバックや協力は欠かせないものでした。Issue Tracker やワークショップ、Google+ コミュニティを通してフィードバックをくださった、1 万人以上のデベロッパーの皆さんに感謝いたします。

強力な製品ハードウェア

NXP i.MX8M、Qualcomm SDA212、Qualcomm SDA624、MediaTek MT8516 の各ハードウェア プラットフォームをベースとした、新たな System-on-Module(SoM)のサポートについても先週発表しました。これらは、製品へ利用できるモジュールとして認定されており、3 年間の長期サポートが保証され、プロトタイプをより簡単に市場に出すことができます。これらの SoM の開発用ハードウェアやリファレンス設計は、今後数か月以内に提供を開始する予定です。
  
NXP、Qualcomm、MediaTek の新たな SoM

Raspberry Pi 3 Model B と NXP i.MX7D 端末は、プロトタイプや製品アイデアをテストするためのデベロッパー ハードウェアとして、引き続きサポートされ、NXP i.MX6UL 端末のサポートは終了します。製品用ハードウェアとプロトタイプ ハードウェアの違いについての詳細は、最新のサポート対象プラットフォームのページをご覧ください。

セキュアなソフトウェア アップデート

Android Things の中核となる考えの 1 つは、端末が長期間にわたって安全性を保ち続けることに力を注ぐことです。それには、タイムリーに OTA(無線)でソフトウェア アップデートを提供することが欠かせません。製品用ハードウェア プラットフォームでは、安定性に関わる修正やセキュリティ パッチがサポートされます。また、すべての端末において、デフォルトで自動アップデートが有効になっています。それぞれの長期サポート バージョンに対して、Google は、安定性の修正とセキュリティ パッチを 3 年間無料で提供します。追加オプションとして、延長サポートも提供しています。アプリのアップデートは、正式なサポート期間が終了しても配信を続けることができます。ソフトウェア アップデートのサポートに関する詳細は、プログラム ポリシーをご覧ください。

Android Things Console を用いたソフトウェア アップデートは、非商用のアクティブな端末 100 台までと制限されています。Android Things を搭載した商用製品を提供されたいデベロッパーは、Google との販売 / 配布契約にサインし、この制限を解除する必要があります。最新の Android Things SDK License AgreementConsole 利用規約の条項も合わせてご確認ください。

ハードウェア設定

Android Things Consoleには、ハードウェア周辺機器を設定するための新たなインターフェースが追加されています。これにより、利用できる Peripheral I/O接続や、GPIO レジスタおよび I2C バス速度などの端末プロパティを構築時に管理できるようになっています。この機能は、今後のリリースでも継続的に拡張され、さらに多くの周辺ハードウェアの設定ができるようになる予定です。




リリース予定の製品

この数か月間、私たちは、Android Things を用いて構築した製品を市場に出すため、パートナーと密に連携してきました。その中には、LGiHomeのスマート スピーカー、Lenovo、LG、JBL のスマート ディスプレイなどがあります。こうした製品は Google アシスタントや Google Cast のような強力な機能を搭載しており、米国ではこの夏から順次販売が開始される予定です。

スタートアップ企業や代理店も、Android Things を使ってさまざまなユースケースで革新的なアイデアを試すプロトタイプを作っています。私たちがわくわくしている、いくつかの例をいくつか紹介します。
  • Byteflies: ウェアラブル端末のヘルスデータを安全にクラウドへ転送するドッキング ステーション
  • Mirego: モントリオールの繁華街に設置された公衆写真ボックスと連動する大型フォト ディスプレイのネットワーク
Android Things を使って新しい製品を作りたいと思っている皆さんと、私たちはご一緒したいと思っています!そこで、Android Things チームによる技術指導やプロダクトの開発サポートを提供する特別限定プログラムをご紹介します。枠が限られているため、すべての方にご参加いただくことはできませんが、興味をお持ちのデベロッパーやスタートアップ、企業の方は、こちらからお知らせください。

参考資料

Android Things 1.0 のリリースノート全文をご覧ください。また、Android Things Consoleを開いて、お使いの端末に本番環境向けの 1.0 システム イメージを搭載できるかをご確認ください。プラットフォームの詳細を確認したい方は、デベロッパー サイトをご覧ください。キット、サンプルコード、コミュニティ プロジェクトを使ってみたい方は、androidthings.withgoogle.comをご覧ください。ぜひ Google+ の Google's IoT Developers Communityに参加して、皆さんが Android Things で開発しているものについて教えてください。



Posted by Takeshi Hagikura - Developer Relations Team

I/O 2018 で発表された Firebase の新機能

$
0
0
この記事は Francis Ma、プロダクト責任者による The Firebase Blog の記事 "What’s new in Firebase at I/O 2018" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


I/O 2016 で Firebase をバックエンド サービスの集合体から完全なアプリ開発プラットフォームへと拡張してから、まだ 2 年しか経過していないことが信じられません。それ以来、Firebase がデベロッパー コミュニティに受け入れられているのを見て嬉しく思っています。現在、毎月 120 万個のアプリで Firebase が積極的に使われています。

Google がどれだけ成長しても、Google のミッションは変わりません。つまり、Google は、モバイルアプリ チームがアプリを実装してからその品質を改善し、ビジネスを拡大させるまでに至る開発サイクルのすべてのステージで、成功を収められるよう支援します。

そのようなすばらしいデベロッパー コミュニティの存在は、大いなる名誉であると同時に、非常に重い責任も感じています。Google を信頼してアプリを開発していただき、ありがとうございます。皆さんが Firebase を使って作ったアプリに関するストーリーを聞くことは私たちの励みであり、皆さんの成功が日々仕事をする原動力になっています。




本日は、Firebase に加えられる多くの改善点を紹介します。以下をご覧ください。

公開ベータ版の ML Kit の紹介


モバイル デベロッパーにとって、機械学習がさらに使いやすくなりました。本日発表(*原文公開当時、以下同)する ML Kit は Firebase SDK に追加されました。ML Kit を使用すると、経験豊富な ML デベロッパーでも初心者でも、Android と iOS の両方でアプリに強力な機械学習機能を組み込むことができます。



ML Kit には、テキストの認識、顔の検出、バーコードのスキャン、画像のラベル付け、ランドマークの認識といった一般的なユースケースですぐに使える一連の API が含まれています。これらの API は、機能に応じて、端末上またはクラウドで実行されます。端末上の API はデータをすばやく処理し、ネットワーク接続がない場合でも動作します。クラウドベースの API は Google Cloud Platformの機械学習テクノロジーの能力を活用して、より高い精度を実現します。高度なユースケースで独自の TensorFlow Liteモデルを使用することもできます。モデルのホスティングや配信は ML Kit に任せることができるため、アプリの機能開発に集中できるようになります。

これらの 5 つの API は最初のステップに過ぎません。今後、さらに多くの API をリリースする予定です。早期テスターとして API を試してみたい方は、お申し込みフォームにアクセスして、ウエイティング リストに登録してください

Android アプリと iOS アプリのどちらでも、機械学習を活用してユーザー エクスペリエンスを改善することができます。ML Kit によって、あらゆる経験レベルのデベロッパーがすぐに機械学習に取りかかれるようになることを願っています。詳細は、こちらのドキュメントをご覧ください。

Performance Monitoring の改善


昨年の I/O では、アプリのパフォーマンスを分析して、アプリを高速かつレスポンシブに保つことを支援するベータ版の Performance Monitoringを発表しました。それ以来、多数のアプリで採用されています。Flipkart、Ola、Swiggy など、世界最大規模のいくつかのアプリで Performance Monitoring が使われるようになり、現在 Google では、1,000 億のパフォーマンス指標を毎日提供し、デベロッパーがアプリの品質を高め、そのユーザーを満足させることを支援しています。

SDK がテストで十分な実績を残したため、Performance Monitoring はベータ版を卒業することになりました。この変更に伴う改善点が、本日コンソールに反映されています。

まず、Performance Monitoring のダッシュボード上部に問題点のフィードが追加されました。このフィードにより、アプリの各部分で発生したパフォーマンスの問題をひと目ですばやく把握できるほか、Firebase が判定した問題の重大度が示されます。




次に、動作がぎこちない、またはフリーズしているアプリの部分を簡単に特定できるようになりました。Performance Monitoring によってレンダリング問題が特定され、アプリで画面ごとにドロップされるフレームの数が示されるので、問題をすばやくトラブルシューティングできます。Play ストアにアプリを公開していれば、追加のコードを記述しなくても、Android Vitalsで報告されるレンダリング問題の詳細を簡単に取得できます。Performance Monitoring をすぐに使うには、こちらのドキュメントをご覧ください。

より優れた分析およびアクセス管理コントロール


Firebase 向け Google アナリティクスを使用すると、プロジェクトの各アプリの分析をいつでも確認できます。昨年、StreamView および DebugView レポートを追加したことにより、データをリアルタイムで表示できるようになりました。また、アナリティクスのレポート全体にリアルタイム カードが追加され、ユーザー行動をリアルタイムでより詳しく把握できるようになりました。




アナリティクスについては、さらに 2 つのアップグレードが予定されており、プロジェクト レベルのレポートと柔軟なフィルタが追加されます。プロジェクト レベルのレポートでは、プロジェクトのすべてのアプリで発生していることを確認できるため、アプリビジネスをより包括的に把握できます。また、柔軟なフィルタを使用すると、データをより適切に細分化できるため、重要なインサイトが得られます。これらのアップデートは、数週間以内にリリースされます。

本日、もう 1 つのアップデートを Firebase コンソールにリリースします。このアップデートには、改善された ID およびアクセス管理が含まれています。これにより、他のデベロッパーを簡単に招待してプロジェクトで共同作業したり、これらのデベロッパーのアクセス権をコントロールできるようになり、すべて Firebase コンソールから行えます。



Firebase Test Lab の iOS への拡張


Firebase では、Android と iOS の両方に対応するプロダクトを作ることが常に最重要課題でした。そのため、Test Lab が Android に加えて iOS にも対応することを発表できるのは、特に大きな喜びです。

Test Lab では、用意された実機と仮想端末でテストを実行して、実際の使用環境をシミュレートできます。Test Lab for iOS の追加により、アプリのリリース前でも、Android と iOS の両方でアプリの品質を高めることが容易になります。

Test Lab for iOS は、数か月以内にリリースされます。このプロダクトの早めに試したい方は、すぐにこちらのフォームからお申し込みいただき、ウエイティング リストに登録してください。

まだ始まったばかり


これまで、Firebase はすばらしいプロセスをたどってきましたが、まだ最初のステップに過ぎません。引き続き Google Cloud Platform との統合を推し進めることにより、デベロッパーが Google の途方もないスケールのインフラストラクチャを簡単に活用できるようにしたいと考えています。また、皆さんのようなデベロッパーを支援するにあたり、機械学習がもたらす可能性に大いに期待しています。Predictions と ML Kit は最初の 2 つのステップですが、今後さらに多くのプロダクトを追加したいと考えています。

いつもご協力いただき、ありがとうございます。多くの発表の詳細については、Google I/O での発表をすべて録画した YouTube プレイリストをご覧ください。Firebase Alpha プログラムにまだ参加していない方は、ぜひプログラムに参加して、このプラットフォームの未来を形作る一員になってください。皆さんが次にビルドするアプリを見るのを楽しみにしています。


Reviewed by Khanh LeViet - Developer Relations Team

Chrome 67 ベータ版: WebXR オリジン トライアル、汎用センサーなど

$
0
0
この記事は Chromium Blog の記事 "Chrome 67 Beta: WebXR Origin Trial, Generic Sensors" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

特に記載のない限り、下記の変更は Android、Chrome OS、Linux、macOS、Windows 向けの最新の Chrome ベータ版に適用されます。Chrome 67 の完全な機能リストについては、ChromeStatus.comを参照してください。

汎用センサー

センサーのデータは、多くのネイティブ アプリケーションで使われ、臨場感のあるゲーム、フィットネス トラッキング、拡張現実や仮想現実などを実現しています。Generic Sensor APIを使うと、センサーのデータをウェブ アプリケーションでも利用できるようになります。この API は、基本となる Sensor インターフェースと、それを利用する一連の具象センサークラスで構成されています。以下に、センサーの仕様へのリンクと使用例を示します。

加速度計: 端末の動きを検知することで、3D 動画内を動き回る。

ジャイロスコープ: 端末の傾きや姿勢を検知する迷路盤

オリエンテーション センサー: いわゆる フュージョン センサーと呼ばれるもので、2 つ以上のセンサーから読み取った値を組み合わせる。この場合、加速度計とジャイロスコープを組み合わせる。ジャイロスコープのみで実装した迷路は、位置マーカーを 2 次元で動かすことしかできないかもしれない。一方、オリエンテーション センサーで実装した迷路では、ユーザーが物理的に端末を回転させることで角を曲がるようにすることができる。

モーション センサー: 加速度計、ジャイロスコープに加えて磁力計も利用するフュージョン センサー。もっともわかりやすいユースケースは、仮想コンパス。

加速度計の値は、x、y、z 座標における端末の移動速度を表します。

Intel が、ダウンロード可能なサンプルコードを付属したセンサー API のデモサイトを公開しています。オリジン トライアルの開始時に公開された記事も更新されています。

WebXR Device API オリジン トライアル

WebXR Device API を使うと、モバイル端末や PC で仮想現実や拡張現実アプリを作成できます。これにより、AR 対応のモバイル端末、Google Daydream View や Samsung Gear VR などのモバイルベースの VR ヘッドセット、Oculus Rift、HTC Vive、Windows Mixed Reality Headset などの PC をホストとするヘッドセットで、同じ体験を提供できるようになります。

新しい API は、オリジン トライアルとして利用できます(説明申し込みフォーム)。サンプルドキュメントは、Immersive Web Community Group GitHub レポジトリにあります。WebVR 1.1 対応ブラウザ、非対応ブラウザ、およびモバイル端末の「Magic Window」をサポートする polyfill もあります

仮想現実で動画を視聴

この API で実現できる仮想現実や拡張現実には、ゲームのほか、以下のような「ロングテール」アプリがあります。
  • 臨場感のある 360° 動画
  • 臨場感のある環境に表示される従来型の 2D(または 3D)動画
  • データ視覚化
  • ホーム ショッピング
  • アート
注:バージョン 62 以降の Chrome で利用できる WebVR オリジン トライアルに参加している方は、既存のトークンを WebXR オリジン トライアルで使うことはできません。WebVR オリジン トライアル(古いもの)は、2018 年 7 月 24 日に終了します。

今回のリリースに追加されたその他の機能

SVG

SVG2 の <foreignObject>は、スタッキング コンテキストである必要があります。<foreignObject>をスタッキング コンテキストにすることで、デベロッパーは <foreignObject>の下に確実に HTML コンテンツを配置できるようになります。

DOM

DOM 仕様が更新され、DOMTokenList.replace()は置換が発生したかどうかを示す boolean を返すようになりました。置換の有無によって異なる処理を実行するコードでは、contains()を使った余分な条件が不要になるため便利です。Chrome はこの仕様に従うようになります

HTML > CustomElement

ネイティブの組み込み要素の意味を継承したカスタム要素を作成できるようになります。これにより、ユーザー補助機能、セマンティクス、JavaScript のメソッドやプロパティなどの組み込み機能を再実装する手間が省けます。

入力

5 つ以上のボタンがあるマウスの、戻るおよび進むボタンのマウスイベント(mousedownauxclickmouseup)をウェブページで処理できるようになります。これにより、マウスの戻るおよび進むボタンをオーバーライドしたいゲームなどのアプリケーションで、これらの動作を阻止できるようになります。

Windows では、多くのヨーロッパ言語のレイアウトなどで、右側の Alt キーが AltGraph(ISO-Level-3-Shift)として動作します。これは、表示可能な文字の種類を増やすためです。このキーは、内部的に Ctrl+Alt 修飾子を生成します。Chrome はこのキーが押された場合のフラグとして、Control、Alt、AltGraph のすべてを報告します。他のプラットフォームとの間でこれらの修飾子の整合性をとるため、今回の変更で Windows の Chrome は AltGraph と Ctrl+Alt を区別するようになります

デベロッパーにとっては、キーボード イベントの修飾子ハンドリングにおけるエッジケースがなくなります。アプリで keydown/keypress/keyup を処理してショートカットを実装する場合、一部(主にヨーロッパ)のキーボード レイアウトに対応するための回避策が不要になります。たとえば、アプリで(GMail のように)Ctrl+# をショートカットとして使用する場合、以前は Ctrl と AltGraph の両方をチェックする必要がありました。そうしないと、フランスのユーザーはこのショートカットを使用できませんでした。
この変更は、Windows にのみ適用されます。

JavaScript

JavaScript に、任意の精度の整数をサポートする数値プリミティブが導入されました。これまで、JavaScript の数値は倍精度浮動小数点数として表現されており、精度に制限がありました。数値リテラルに BigInt()関数や 'n'接尾語を付けることにより、安全な整数の制限値を超えた場合でも、大きな整数を安全に格納および演算できるようになります。

レイアウト

フォーマット コンテキストは、配置される際に float と厳密に同じ動作をするようになります。つまり、位置決めのために float の shape-outsideプロパティを参照することはなくなり、マージン ボックスに従って位置が決まります。この新しい動作は、こちらの例flexクラスの高さを変えることによって確認できます。これは、新しいフォーマット コンテキストのサイズや位置にも影響します。

ローダ

クライアント ヒントは、オリジンが HTTP リクエスト ヘッダーを通して端末固有のプリファレンスを受け取れるようにするものです。Accept-CH-Lifetimeは、指定された期間、オリジンがオプトインしたポリシーを永続化できるようにするクライアント ヒントを追加します。これにより、ナビゲーション リクエストの際にオリジンがクライアント ヒントを受信できるようになります。また、この機能によって、最初のページが読み込まれる際にページのすべてのサブリソース用のヒントが提供されます。

ネットワーク > Streams API

Streams API の一部である TransformStream を使用すると、データ ストリームを作成、構成、消費できます。また、ストリーム形式のデータを変換できます。通常は、ReadableStreamWritableStreamを結ぶパイプとして使われます。次の例では、ストリームから受信するレスポンス本文のテキストを TransformStream を使ってデコードしています。

function textDecodeTransform() {
const decoder = new TextDecoder();
return new TransformStream({
transform(chunk, controller) {
controller.enqueue(decoder.decode(chunk, { stream: true }));
}
});
}

fetch(url).then(response => {
// response.body is a stream of Uint8Array chunks.
// But if we want chunks of text:
const stream = response.body.pipeThrough(textDecodeTransform());
// …
});

Shadow DOM

<slot>要素を フラット レイアウト ツリーに含められるようになります。UA スタイルは、display: contentsです。この変更が行われる前は、<slot>要素に CSS セレクタを適用しても何も起きませんでした。この問題が修正されるのに加え、セレクタが <slot>要素に適用されると、子要素にスタイルが継承されるようになります。

サポートの終了と相互運用性の改善

Chrome では、他のブラウザとの相互運用性を高めるために、機能のサポート終了、削除、変更を行う場合があります。このバージョンの Chrome では、以下の変更が行われています。

HTTP ベースの Public Key Pinning のサポート終了

HTTP ベースの Public Key Pinning(HPKP)は、ウェブサイトの証明書チェーンに存在する 1 つまたは複数の公開鍵と関連付けた HTTP ヘッダーを送信できるようにすることが目的でした。これはほとんど採用されておらず、また証明書の不正発行に対するセキュリティを提供する機能であるにもかかわらず、サービス拒否や悪意のある関連付けが行われるリスクを生み出しています。

ウェブ デベロッパーは、証明書の不正発行に対する防衛策として、Expect-CTヘッダーとその報告機能を使う必要があります。Expect-CTは、エラーから復旧させる際のサイト運用者の柔軟性が高い点や、多くの CA で組み込みサポートが提供されている点で、HPKP よりも安全です。

HPKP は、Chrome 69 で削除される予定です。

安全でないコンテキストでの AppCache のサポート終了

HTTPS での AppCache が非推奨になります。AppCache は、オフラインでも常にオリジンにアクセスできるようにする強力な機能です。安全でないコンテキストで AppCache を利用できると、クロスサイト スクリプティング攻撃につながる攻撃ベクトルができることになります。
この機能の削除は、Chrome 69 で行われる予定です。

レイアウト

今回のリリースでは、いくつかの Webkit 接頭辞が付いた CSS プロパティが削除されます。

-webkit-box-flex-group: 安定版の UseCounter によると、このプロパティはごくわずかしか使用されていません。

-webkit-line-clamp の % 値: この数値のユースケースを解決する標準的なソリューションを見つけ出すことには関心が寄せられていますが、% ベースの値への需要はありません。

-webkit-box-lines: このプロパティは、完全に実装されることはありませんでした。元々、「垂直」/「水平」の -webkit-boxに複数の行/列を持たせるためのものでした。


Reviewed by Eiji Kitamura - Developer Relations Team

AdWords でのクリック測定の変更

$
0
0
この記事は AdWords API チーム、Anash P. Oommen による の記事 "Click measurement changes in AdWords" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

追加(5/17):2018 年 10 月 30 日からすべての AdWords アカウントで並行トラッキングの使用が必須となります。詳しくは AdWords 公式ブログ(英語)をご確認ください。

AdWords では、フロントエンドと API からすべての広告主に対して並行トラッキングを行えるようになりました。広告をクリックしたユーザーはランディング ページに直接誘導されますが、このとき、ブラウザのバックグラウンドでクリック測定リクエストが同時に処理されます。この処理により、ユーザーが広告をクリックしたがトラッキング URL からのリダイレクトが完了する前に離脱したため、ユーザーにランディング ページが表示されなかった場合に発生するアクセスの損失を減らすことができます。

サードパーティのクリック測定を使用しているすべての広告については、後日、並行トラッキングの使用が可能になりますが、互換性に関する開発をできるだけ早く開始して、移行に十分な時間を確保する必要があります。独自のクリック測定サーバーを実装したり、このサービスをユーザーに提供したりする場合は、実装に役立つ新しく公開されたガイドをご覧ください。サードパーティの測定ソリューションを使用している広告主は、サービス プロバイダに連絡して、切り替えの準備をしてください。

追加のサポートが必要な場合は、ads-clicktracking-support@google.comまでメールでご連絡ください。


Reviewed by Thanet Knack Praneenararat - Ads Developer Relations

AndroidX の紹介

$
0
0
この記事は Alan Viverette(/u/alanviverette)、Kathy Kam(@kathykam)、Lukas Bergstrom(@lukasb) による Android Developers Blog の記事 "Hello World, AndroidX" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

今月、Support Library の新時代の幕開けとなる、新しい Android 拡張機能ライブラリ(AndroidX)の初期プレビューをリリースしました。変更点をプレビューして、フィードバックをお寄せください。このライブラリは初期プレビューであり、既知の問題がいくつかあるため、本番プロジェクトで試用することはおすすめしません。

Support Library は、フレームワーク API に下位互換性を提供するために 7 年以上前に開始されました。これまでこのライブラリには、端末固有の UX、デバッグ、テスト、その他のユーティリティが含まれるようになりました。Support Library の導入状況は驚異的で、現在、ほとんどの Android アプリで Support Library が使用されています。Google はこの領域への投資を拡大したいと考えており、強固な基盤を築くことがきわめて重要になります。

その取り組みの一環として、一歩離れて、多くのデベロッパーと意見を交わしてきました。その際に一貫して同じフィードバックが寄せられました。つまり、このライブラリの成長が混乱をもたらしているということです。現在、サポートされる最小 SDK レベルは 14 ですが、「v7」という名前が付いたコンポーネントやパッケージが引き続き存在しています。どれがプラットフォームにバンドルされている API で、どれが Android のさまざまなバージョンで動作するアプリ デベロッパー用静的ライブラリなのかを明確に区別できるようにしたいと考えています。

上記のことを念頭に置いて、「AndroidX」を紹介します。以前、Android KTX を発表したときに説明したように、このパッケージには新たな機能が追加されているほか、既存のいくつかの機能がアップデートされています。

android.*androidx.*の名前空間

Android アプリを作成する場合、次の 2 種類のクラスに依存する必要があります。
  • PackageManagerなどのクラス。これらのクラスは、オペレーティング システムに バンドルされており、Android バージョンごとに API や動作が異なる場合があります。
  • AppCompatActivityViewModelなどのクラス。これらのクラスは、オペレーティング システムに バンドルされておらず、APK に含まれています。これらのライブラリは、すべての Android バージョンで可能な限り一貫して動作する単一の API サーフェスを提供するように記述されています。

多くの場合、バンドルされていないライブラリは、さまざまな Android バージョンに単一の API サーフェスを提供するため、より適切な選択になることがあります。このリファクタリングにより、すべての Support Library および Architecture Componentsを含む、バンドルされていないライブラリが AndroidX パッケージに移行されるため、含める依存関係を明確に区別できるようになります。

パッケージと Maven アーティファクトの命名規則の変更

パッケージの構造を再設計して、Proguard や Multidex を使用しないアプリおよびテストへの負荷を軽減する、小さく、焦点を絞ったライブラリを推奨しています。Maven の groupId と artifactId がアップデートされ、ライブラリ コンテンツをより適切に反映するようになっています。また、ライブラリ パッケージにプレフィックスとして groupId を付けて、使用しているクラスと Maven アーティファクト(クラスの派生元)の間に明確なリンクを作成しています。

一般的に、古いパッケージから新しいパッケージへのマッピングは次のようになる予定です。
android.support.**androidx.@
android.databinding.**androidx.databinding.@
android.design.**com.google.android.material.@
android.support.test.**(将来のリリース)androidx.test.@

Architecture Components ライブラリも androidxの下に移動され、ライブラリのパッケージ名が簡素化されて、コアライブラリとの統合が反映されました。これらのライブラリの変更サンプルは次のとおりです。
android.arch.**androidx.@
android.arch.persistence.room.**androidx.room.@
android.arch.persistence.**androidx.sqlite.@

さらに、Android のマテリアル コンポーネントの 28.0.0-alpha1 では、Design ライブラリを簡単に代替できる Design パッケージが導入されましたが、その後、新しい方向性を反映するように Design パッケージをリファクタリングしています。

28.0.0-alpha1(android.support)から 1.0.0-alpha1(androidx)へのマッピングの全リストについては、完全な AndroidX リファクタリング マップをご覧ください。アルファ版の段階で、このマップに若干の変更が加えられる可能性がありますので、ご注意ください。

アーティファクトごとの厳密なセマンティック バージョニング

AndroidX リファクタリング以降では、ライブラリ バージョンが 28.0.0 から 1.0.0 にリセットされています。今後のアップデートは、メジャー バージョンによってバイナリの互換性が示される厳密なセマンティック バージョニング ルールに従って、ライブラリごとにバージョニングされます。したがって、たとえば RecyclerView に機能が追加され、それをアプリで使用する場合、アプリで使用されている他のすべてのライブラリをアップデートする必要はありません。また、androidxに依存しているライブラリは、AndroidX の将来のリリースとのバイナリ互換性について妥当な保証を提供できます。つまり、1.5.0 リビジョンの依存関係は、1.7.0 に対して実行する場合は引き続き機能しますが、2.0.0 に対しては機能しない可能性が高くなります。

28.0.0-alpha1 からの移行

アプリを android.supportから androidxのパッケージ化された依存関係に移行するには、主に、ソースのリファクタリングと依存関係の変換という 2 つの対応が必要です。


ソースのリファクタリングにより、Java コード、XML リソース、Gradle 設定がアップデートされ、リファクタリングされたクラスと Maven アーティファクトを参照するようになります。この機能は、Android P を対象とするアプリ向けの Android Studio Canary 14で利用できます。

古い Support Library を参照するライブラリに依存している場合、Android Studio を使用すると、依存関係の変換を介して、ライブラリが androidxを参照するようにアップデートすることができます。依存関係の変換は、Android Gradle プラグイン 3.2.0-alpha14 によって自動的に適用されます。このプラグインにより、androidxにパッケージ化された新しいクラスとアーティファクトを参照するように JAR と AAR の依存関係(および、推移的な依存関係)のバイトコードとリソースが書き換えられます。また、スタンドアロンの変換ツールを JAR 形式で提供する予定です。

次のステップ

AndroidX の導入は、既存のプロジェクトとコードベースに対する大きな変更であることを理解しています。Google の目的は、持続可能な成長、より高いモジュール性、より小さなコードサイズの実現に向けて Android ライブラリ プロジェクトをセットアップするための強固な基盤を提供することです。

これらの変更により、デベロッパーの皆さんが簡単に機能を見つけて、高品質のアプリをより短時間で実装できるようになることを願っていますが、移行には時間がかかり、すべてのデベロッパーの作成スケジュールに適合しない場合があることも理解しています。そのため、P Preview SDK の期間中は、android.supportにパッケージ化されたライブラリ セットへのアップデートを引き続き並行して提供します。これらのアップデートでは、2018 年 3 月にリリースされた 28.0.0-alpha1以降の 28.0.0 バージョニング スキームが継続されるとともに、android.supportパッケージに依存している既存のプロジェクトとのソース互換性が引き続き確保されます。

28.0.0 の安定版リリースは、android.supportとしてパッケージされた最終版の機能リリースになる予定です。以降のすべての機能リリースは、androidxにパッケージ化されたアーティファクトとしてのみ利用可能になります。

このすばらしい未来に向けた取り組みを繰り返す中で、皆さんからご意見をお待ちしております。以下にコメントを入力して、フィードバックをお寄せください。また、AOSP で遭遇したバグについてもお知らせください

Android ライブラリの新時代を楽しみにしています。


Reviewed by Yuichi Araki - Developer Relations Team

地理的ロケーションに応じた動的なパーソナライズ

$
0
0
この記事は AMP プロダクト マネージャー、Eric Lindley による Accelerated Mobile Pages Project の記事 "Dynamic geo-personalization" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

多くの場合、AMP ドキュメントはサードパーティのキャッシュから配信されます。つまり、動的なコンテンツやパーソナライズされたコンテンツをサポートする方法が明確ではない場合があります。こうした多くのユースケースをサポートするさまざまなコンポーネント(amp-listamp-stateamp-formamp-iframeなど)とテクニックがありますが、AMP チームは、いくつかの一般的なケースをより簡単にサポートできるようにしました。

特に企業は、多くの場合、ユーザーの地理的ロケーションに応じてコンテンツを変更する必要があります。異なる言語のページに対してコンテンツを変更する最適な方法は、hreflang 属性を使用することですが、特定の言語 / 地域向けにプロモーションする場合など、地理的ロケーションに依存したバリエーションが少ないページに対しては、この属性の使用は最適なソリューションではありません。そのため、amp-geo コンポーネントを作成しました。このコンポーネントはすぐにテストすることができ、来週、フルリリースされる予定です。


amp-geo


amp-geoを使用すると、ISO 国コードのレベルに類似した、ユーザーの国レベルのおおよそのロケーションに基づいて、ウェブ コンテンツのわずかな部分を簡単に変更できます。デベロッパーの皆さんは、この変更を数ステップで行うことができます。

1. amp-geo スクリプトを含めます。
1
2
3
In the document <head>:
<scriptasync custom-element="amp-geo"src="https://cdn.ampproject.org/v0/amp-geo-0.1.js"></script>

2. amp-geo タグを含めます。
1
2
3
In the document <body>:
<amp-geolayout=”nodisplay”></amp-geo>

3. ドキュメントを CSS でマークアップし、ユーザーのおおよそのロケーションに基づいてコンテンツを変更します。
1
2
3
4
5
6
7
8
9
10
11
12
In the <styleamp-custom> tag:
/* defaults */
.flag { background-image: "./starsandstripes.png"; }
/* override */
.amp-iso-country-ca .flag { background-image: "./mapleleaf.png"; }
In the document <body>:
<divheight=”300” width=”500” layout=”responsive” class=”flag”>
</div>


amp-geo のグループ


次に、少し高度なケースを紹介します。ここでは、amp-geo のグループ化機能を活用して、地理的ロケーションに応じて英語の方言的要素を変更しています。




1. 上記のように、ドキュメントに amp-geo スクリプトを含めます。

2. 空の amp-geo タグを含める代わりに、ISOCountryGroups を設定すると、複数の言語 / 地域に対して動作を指定するために記述する必要があったコード量を削減できます。

1
2
3
4
5
6
7
8
9
10
11
12
In the document <body>:
<amp-geolayout=”nodisplay”>
  <scripttype="application/json">
  {
    “ISOCountryGroups”: {
      "soccer": [ "au", "ca", "ie", "nz", "us", "za" ],
      "football": [ "unknown" ]
    }
  }
  </script>
</amp-geo>


3. 上記の例と同じように、ドキュメントを CSS でマークアップし、ユーザーのおおよそのロケーションに基づいてコンテンツを変更します。

1
2
3
4
5
6
7
8
9
10
11
12
13
In the <styleamp-custom> tag:
/* defaults */
.football:after { content: 'football';}
/* override */
.amp-geo-group-soccer .football:after { content: 'soccer' }
In the document <body>:
<div>
The game is called <spanclass='football'></span>!
</div>

「サッカー」と設定されている言語 / 地域にユーザーが存在する場合、テキストは、「この競技はサッカーと呼ばれます!」と表示されます。そうでない場合、テキストは、「この競技はフットボールと呼ばれます!」と表示されます。

もっと複雑な他の例については、AMP by Exampleをご覧ください。また、公式ドキュメントでは、この機能の詳細が解説されています。たとえば、変数置換を通じて amp-geo とアナリティクスを統合したり、amp-bind を介したより複雑なインタラクションで amp-geo を使用したりできます。


試してみる


amp-geo の完全な製品版は来週リリースされる予定ですが、現時点で、デベロッパーの皆さんは自分のサイトで amp-geo をテストできますので、ぜひご意見をお聞かせください。Github でバグやリクエストについてお知らせいただいたり、Slack にアクセスして自由にチャットできます。皆様からのフィードバックをお待ちしています。




Reviewed by Yoshifumi Yamaguchi - Developer Relations Team

AMP ページでユーザーによる選択を管理する新しい機能

$
0
0
この記事は AMP Project プロダクト マネージャー、Vamsee Jasti による Accelerated Mobile Pages Project の記事 "New functionality to help manage user choice in AMP pages" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

この数週間の間に、サイトオーナーがユーザーの同意を簡単に収集できるようにする複数のツールをリリースしました。本日は、サイトオーナーが AMP ページで簡単にユーザーの同意を収集できるようにするいくつかの新しい機能について、最新情報を紹介します。


広告ネットワークと <amp-consent> コンポーネントの統合


<amp-ad> の DoubleClick および AdSense の実装で、パーソナライズされていない広告の配信を含めて、<amp-consent> がサポートされるようになりました。DoubleClick および AdSense からパーソナライズされていない広告を配信するタイミングと方法については、この詳細なドキュメントをご覧ください。また、こちらから使用可能状況をご確認いただけます。

また、広告ベンダーやアナリティクス ベンダーの方は、こちらから <amp-consent> と統合する方法の詳細をご覧いただけます。



<amp-consent> に対する <amp-ima-video> のサポート


サイトオーナーが <amp-ima-video> コンポーネントを使用してユーザーの同意を収集できるようになりました。こちらから使用可能日をご確認いただけます。



<amp-consent> の位置情報に基づいた設定での <amp-geo> の使用


AMP では、checkConsentHrefフィールドを使用することにより、リモート呼び出しで <amp-consent> を設定する方法が提供されます。<amp-consent> 向けに位置情報に基づいたロジックを組み込む場合は、サーバー側で位置情報を解決し、それに応じて checkConsentHref レスポンスをカスタマイズする必要がありました。これまでは、位置情報に基づいたロジックを組み込むには、リモート サーバーのセットアップが必須でした。

<amp-geo> コンポーネントが最近リリースされ、ISO 国コード レベルで、ユーザーのおおよそのロケーションに基づいてコンテンツのバリエーションを表示できるようになりました。現在、この機能を <amp-consent> と組み合わせて使用できます。つまり、設定で位置情報以外を必要としない場合、checkConsentHref の実装をスキップすることもできます。ampbyexample.comの <amp-geo> のサンプルや <amp-consent>のドキュメントをご覧ください。

AMP ストーリーでの <amp-consent> のサポート


間もなく、<amp-story> で <amp-consent> が使用できるようになります。<amp-story> のユースケースに限り、ほとんどの UI が事前に設定されるものの、サイトオーナーはテキスト コンテンツの完全なコントロールに加えてルック アンド フィールを指定することができます。また、AMP ストーリーでは、<amp-consent> のすべての UI がブロッキング UI になります(つまり、同意 UI にはオプションの閉じるボタンがありません)。こちらから使用可能日をご確認いただけます。


<amp-consent> の新しい機能


キーと値のペアに対する checkConsentHref のサポート: この機能により、checkConsentHref エンドポイントは、広告ネットワークの実装によって伝播および消費されるキーと値のペアで応答できるようになります。この機能は、追加の設定情報を広告ネットワークに通知して適切な広告を配信する必要のあるサイトオーナーにとって有用です。この情報は、<amp-consent> の解決を待機している AMP コンポーネントで利用可能です。詳細はこちらをご覧ください。

<amp-consent> のタイムアウト: サイトオーナーはこの機能を使用して、特定のタイムアウト後にユーザーの同意を待機しているコンポーネントをブロック解除できます。また、この機能を使用すると、ユーザーの同意によってブロックされた AMP コンポーネントが取得する同意状態を設定することもできます。詳細はこちらをご覧ください。



使用可能状況


これらの機能はすべて、2018 年 5 月中にそれぞれ異なるタイミングでリリースされます。以下に使用可能状況の概要を示しています。使用可能状況に関する最新情報は、こちらで確認してください。

機能製品版の使用可能状況ドキュメントテスト使用の可否
DoubleClick と AdSense05/10/18LinkYes
AMP IMA Video の統合05/15/18No
AMP Geo05/10/18LinkYes
AMP ストーリー05/15/18No

次のステップ


外部の同意フローその他の機能のサポートなど、<amp-consent> には今後多数の機能が追加される予定です。まだ取り上げられていない機能にお気付きの場合は、 GitHubの issueページにコメントをお寄せください。

AMP By Example で amp-consent の使用例を忘れずにご確認ください。

いつものように、皆さんのサポートに感謝します。ご質問がありましたら、GitHub の issueを登録してお知らせください。

Reviewed by Yoshifumi Yamaguchi - Developer Relations Team


I/O で発表された Actions on Google: エンゲージメントを向上させ、没入感のある質の高いエクスペリエンスを構築するさまざまな方法

$
0
0
この記事は Actions on Google 担当グループ プロダクト マネージャー、Brad Abrams による Google Developers Blog の記事 "Actions on Google at I/O: More ways to drive engagement and create rich, immersive experiences" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google アシスタントの会話エクスペリエンスと視覚的要素がさらに改善されたため、ユーザーは簡単に用事を片付け、時間を節約して、他のことに専念できます。この改善は、皆さんのようなデベロッパーの貢献に負うところが大きく、そのおかげで、5 億台以上の端末で使用される Google アシスタントがさらに便利になります。Starbucks、Disney、Zyrtec、Singapore Airlines などの多くの企業は、ビルドしたアクションを通じてユーザーとの関係を築いています。Google アシスタントは、Google やデベロッパーの皆さんがビルドした合計 100 万個以上のアクションを利用してユーザーを支援する準備ができています。

Actions on Google をリリースして以来、Google のミッションは常に、魅力的なアクションを作成して人々の日常生活の一部にするためのツールをデベロッパーに提供することでした。過去 6 か月にわたってプラットフォームを大幅にアップグレードしてきたため、その展望の実現にさらに近づきました。アクションを見つけやすくするための改善を加え、より多くの言語で Actions on Google を使えるようにし、アクションをより創造的かつ視覚的に魅力のあるものにするためにいくつかの対策を講じました。新しい会話設計サイトを公開したほか、先週、Google アシスタントのエコシステムを推進するため、新興企業に投資する新しいプログラムを発表しました。

本日は、アプリ デベロッパーやウェブ デベロッパーが Google アシスタントを使った開発を簡単に進められるようにする方法を紹介します。

ようこそ、Android デベロッパーとウェブ デベロッパーの皆さん


多くの優れた Android デベロッパーがモバイルアプリを補完するアクションをビルドしていることを知っています。デベロッパーは既に、Android アプリに加えて、Google アシスタント用にビルドするアクション向けに、パーソナルな接続されたエクスペリエンスを構築することができます。現在、さらに多くの方法で Android アプリのエクスペリエンスを Google アシスタントに拡張できるようにしています。

Google アシスタント向けのアクションは、ユーザーが自宅や外出先でスマートフォン、スマート スピーカー、TV、車、時計、ヘッドフォン、近日中にリリースされる予定のスマート ディスプレイを使ってアクセスできるアプリのコンパニオン エクスペリエンスであると考えてください。Android アプリのいくつかのエクスペリエンスをパーソナライズする必要がある場合、アカウントのリンク機能を使用すると、ユーザーがアプリを使用しているか、またはアクションを操作しているかどうかに関係なく、ユーザーに一貫したエクスペリエンスを提供することができます。

Google Play からのシームレスなデジタル コンテンツ サブスクリプション


シームレスなデジタル サブスクリプションのサポートが追加されたため、ユーザーは、Google アシスタントのアクションを使って、Google Play ストアで購入したコンテンツやデジタル製品を楽しむことができます。たとえば、現在、Economist のアプリのプレミアム定期購入者は、Google アシスタント対応端末でプレミアム コンテンツを閲覧できます。


ユーザーによる物理的な商品のトランザクション実行は既に支援できますが、間もなく、アクションからデジタル製品やサブスクリプションを直接提供できるようになります。

ディスプレイ サーフェスの完全にカスタマイズ可能な視覚的要素


Google アシスタントでは、スマートフォン、スマート ディスプレイ、TV のために、会話と豊富な視覚的操作が組み合わされています。そのため、特別な操作を行わなくても、これらの視覚的サーフェスでアクションが既に機能するようになっています。

本日より、背景画像の制御、書体の定義、アクションで使用されるカラーテーマの設定などを行うことにより、こうした手法をさらに推し進めて、視覚的サーフェスのためにアクションの外観をより適切にカスタマイズすることができます。すぐに Actions Console を開いて、変更を加え、シミュレータでテストしてください。これらの変更は、スマートフォン、TV、スマート ディスプレイ(リリース後)で利用できるようになります。

デモ アクションのスクリーンショット例を次に示します。


また、Volley は、ゲーム「King for a Day」のフルスクリーン表示される没入的なエクスペリエンスを以下のように作成しています。デベロッパー向けに、画面いっぱいに広がるカスタマイズ可能な視覚的要素を作成する機能が今後数か月以内にリリースされます。


アプリ アクションの紹介


本日(*原文公開当時)の Android 基調講演で、アプリ アクションと呼ばれる新しい機能を発表しました。アプリ アクションは、ユーザーがタスクを開始したときに Android アプリの視認性を引き上げる新しい方法です。別のチャンネルを作成して、Google アシスタントでアプリ アクションを使用するユーザーをより多く獲得したいと考えています。

すべてのデベロッパーは、アプリ アクションを間もなくお試しいただけます。通知を受けたい場合は、こちらからお申し込みください。


新しいユーザーを見つけて、リピート率を高める


Google アシスタント向けのアクションをビルドしたら、多くのユーザーに実際に使用してもらいたいと思うでしょう。スマートフォンで Action Notificationsに登録するようユーザーを促すこと既に可能ですが、間もなくサポートが拡張されるため、ユーザーはスマート スピーカーや
スマート ディスプレイで通知を受け取れるようになります。本日、より多くのユーザーがアクションを見つけて、ユーザーに日常的にアクションを使用してもらうことを目指して 3 つのアップデートを発表します。


組み込みのインテントを使用してアクションをユーザーのクエリにマッピングする

Google は 20 年以上にわたって、整理およびランク付けを行い、最も関連性の高いエクスペリエンスをユーザーに提供することにより、ユーザーが探している情報、サービス、およびコンテンツをユーザーに結び付けることを支援してきました。組み込みのインテントを使用して、この専門知識を Google アシスタントで利用できるようにします。

ユーザーは、「ねえGoogle、地図クイズをしよう」と言ったときに、Google アシスタントが地理に関連するゲームを提案すると期待します。正しく提案できるようにするには、ユーザーの根本的な意図を理解する必要がありますが、場合によっては、この判断は困難を極めます。ユーザーがゲームについて尋ねる方法は数千通りあることを考えてみてください。

Google では、この複雑さに対処するために、ユーザーが何かを尋ねるすべての方法を組み込みのインテントの分類にマッピングすることを開始しています。本日、これらのインテントの最初のセットが利用可能になったため、デベロッパーは、アクションで実行できることに関して、より詳しい情報を Google アシスタントに提供することができます。その結果、Google アシスタントはアクションをより深く理解し、ユーザーの意図に適合したアクションを提案できるようになります。数か月以内に数百個の組み込みのインテントを公開する予定です。

現在、アクションに組み込みのインテントを実装して、シミュレーターでテストすることが可能です。間もなく、本番環境でこれらのインテントを使用できるようになります。

リンクが機能するあらゆるところからアクションをプロモートする

アクション リンクを使ってトラフィックをアクションに簡単に誘導できるようにしています。この誘導は、ウェブサイト、メール、ブログのほか、Facebook や Twitter などのソーシャル メディア チャンネルで使用できるハイパーリンクを通じて行われ、アクションに直接ディープリンクされます。

現在、Headspace などのデベロッパーは新しい試みを行っており、アクションの使用を促進して、ウェブからアクションに直接誘導できるようにしています。ユーザーはスマートフォンやスマート ディスプレイでリンクをクリックして、アクションのエクスペリエンスにアクセスできます。PC 上でアクション リンクをクリックした場合は、スマート スピーカーや TV など、使用する Google アシスタント対応端末を選択することができます。Headspace のウェブサイトで例をご覧いただくか、こちらから Headspace のアクション リンクをお試しください。

アクションを既にビルドしていて、アクションの使用を促進したい方は、本日より、Actions Console にアクセスしてアクション リンクを見つけ、操作を開始することができます。

ユーザーの日々のルーチンの一部になる

ユーザーのリピート率を一貫して向上させるには、ユーザーの日常的な行動習慣の中で使用してもらう必要があります。Google アシスタントのユーザーは既にルーチンを使用して、単一のコマンドで複数のアクションを実行しています。これらのアクションは、ユーザーが朝目覚めたとき、出勤するとき、寝る用意をするときのほか、1 日を通して行うその他の多くのタスクに最適です。

現在、Routine Suggestionsを使用すると、ユーザーがアクションを使用した後、ほんの数回のタップでアクションをルーチンに追加できることを提示できます。
つまり、ユーザーは毎朝出勤するときに、Google アシスタントを通じてスターバックスのアメリカーノを注文し、Economist のプレミアム コンテンツを再生することができます。
Actions Console で Routine Suggestions 用のアクションを有効にすることができます。間もなく本番環境でも使用できるようになります。

その他...

アクション リンクを設定してソーシャル メディアのすべてのフォロアーとの共有を開始する前に、次にご紹介する、I/O でのその他の発表をご確認ください。
  • 適切なテスト: アクションの品質を高めるには、実際のユーザーにテストしてもらうことが最適な方法です。本日から、リリース前のアルファ版またはベータ版環境で限定された数のユーザーに対してアクションをデプロイしたり、アクションにアップデートを追加したりできるようになりました。
  • スマート スピーカーでの音声トランザクション:本日から、米国のユーザーは Google Home などの音声起動スピーカーを介して商品を購入できるようになりました。今後数週間以内に、英国、オーストラリア、カナダ、フランス、ドイツ、日本でも、この方法で商品の購入が可能になります。
  • 再設計された Actions Console:新しいオンボーディング エクスペリエンスが導入され、いくつかのカテゴリから選択して、ワークフローを調整できるようになりました。新しい UI により、デベロッパーのワークフロー ステージがガイドされるため、アクションをすばやく簡単にビルドできます。
  • ディレクトリの改善: ユーザーがログイン中にアクションに関するレビューを書き込むことができるため、デベロッパーには、称賛や貴重なフィードバックが提供され、徐々にアクションを微調整することが可能になります。また、[Explore] タブに新しい動的なセクション [Popular]、[You Might Like]、[Editorial Picks] が導入されたため、ユーザーにアクションを見つけてもらう新しい方法を提供できます。
  • 端末向けの Google Assistant SDK: 14 の言語 / 地域のサポートに加えて、カードの可視化とメディア(ニュースやポッドキャスト)のサポートを提供します。いくつかの機能の使用例については、Deeplocal を使った新しいポスター製作機の実験をご覧いただくか、I/O の Google アシスタント デモ展示にお立ち寄りください。
  • 音声を介したアカウントのリンク: Google アシスタント向け Google ログインのデベロッパー プレビューをリリースします。間もなくユーザーは音声だけを使ってアカウントとアクションを結びつけたり、アクションに対応したアカウントを作成できるようになるため、デベロッパーがユーザーのためにアカウント リンク システムをセットアップする必要がなくなります。
  • Dialogflowを使用している 50 万人のデベロッパー:チームは、会話型エクスペリエンスをビルドしている 50 万人以上のデベロッパーと連携して大きな成果を上げました。デベロッパーの新しいリリースにより、迅速な導入、スマートなデバッグ、自然言語を認識する精度の向上、Google アシスタントの新しいサーフェスのビルドが容易になります。


エクスペリエンスを Google アシスタントに拡張する

会話型コンピューティングの新たな時代が到来した中、多くのデベロッパーの皆さんがテストに参加し始めていることを嬉しく思います。モバイルアプリやウェブアプリはビルドしているけれども、Google アシスタント向けの会話型アクションのビルドはまだ始めていないという方は、ビルドを始める絶好のタイミングは今しかありません。Google アシスタントにふさわしいコンパニオン エクスペリエンスついて、早速検討してみましょう。わかりやすいガイドに加えて、報償と Google Cloud クレジットが提供されるコミュニティ プログラムを用意していますので、すぐに開発を始められます。デベロッパーの皆さんがビルドするアクションを楽しみにしています。



Reviewed by Yoshifumi Yamaguchi - Developer Relations Team

Google Cloud Platform トレーニング イベント | Cloud OnBoard - 名古屋 6 月 19 日(火)開催

$
0
0
Cloud OnBoard お申し込みページ : https://goo.gl/29Myem

Cloud OnBoard は、GCP 認定トレーナーによる Google Cloud Platform(GCP)トレーニングの入門編です。

トレーニングでは、認定トレーナーによるわかりやすいプレゼンテーションとデモンストレーションを駆使し、GCP の利点、特徴、ユースケースを理解してもらい、GCP の主要サービス(Compute Engine, Google App Engine, Kubernetes Engine, Cloud SQL, Cloud Datastore, BigQuery, Machine learning)について解説していきます。

Cloud OnBoard は、IT マネージャー、 システムエンジニア、ソリューション デベロッパー、ソリューション アーキテクト、オペレーター、ビジネスリーダーまたは Google Cloud Platform に初めて触れる方々のために構成されたトレーニングです。 イベントでは、GCP の使い方を業界別トリックやポイント、事例などを交えて解説し、さらに GCP エキスパートが皆さまの疑問にお答えします。全てのモジュールを受講された皆さまには、認定の証として参加証の配布をいたします。

ぜひ、この機会に皆さまお誘い合わせの上ご参加ください。

また、名古屋では初の開催となるため満席が予想されます。お早めのお申し込みをお願いいたします。


お申し込みはこちら


セミナー概要
Cloud OnBoard - 名古屋
日時:2018 年 6 月 19 日(火)13 時-18 時
会場:名古屋コンベンションホール
  〒453-6102 愛知県名古屋市中村区平池町 4-60-12
  グローバルゲート 3F メインホール
参加費 : 無料



Posted by Takuo Suzuki - Developer Relations Team

Swift For TensorFlow がオープンソースで公開

$
0
0
この記事は Google の Swift for TensorFlow チームによる Medium の記事 "Introducing Swift For TensorFlow" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

3 月の TensorFlow Developer Summit では、Swift for TensorFlow プロジェクトの発表とデモが行われました。そして、Swift for TensorFlowがオープンソース プロジェクトとして GitHub で公開されます。

Swift for TensorFlow は、新たなプログラミング モデルを提供します。そこでは、あらゆるスタックのレベルにおけるユーザビリティの改善が重視されており、グラフのパフォーマンスと、Eager Execution の柔軟性や表現力の高さが共存しています。Swift for TensorFlow は、Swift で書かれた単なる TensorFlow API ラッパーではありません。Swift にコンパイラと言語拡張を追加することによって、機械学習のデベロッパーにファーストクラスのユーザー エクスペリエンスを提供するものです。


私たちは、今までとは違う新たな方法で TensorFlow を使うというアプローチをとっており、それによって、新しい設計を導入する機会と、既存の問題を解決する新たな方法が開かれています。プロジェクトはまだ開発の初期段階ですが、オープンソース化して、設計についての議論を公開メーリング リストで行うことが決まっています。そのため、プロジェクトに興味のある方は、誰でも参画できます。

設計ドキュメント


私たちは、このアプローチの概要や動作の仕組みを詳しく解説したドキュメントを作成しました。プロジェクトの READMEから、すべてのドキュメントにアクセスできます。まずは、Swift for TensorFlow Design Overview(Swift for TensorFlow の設計概要)から読み始めることをお勧めします。プロジェクトの主要コンポーネントや、それらがどのように連携しているかが説明されています。

次は、プロジェクトの重要な箇所を解説したドキュメントをご覧ください。設計の基礎となっているのは、Graph Program Extraction(グラフ プログラム抽出)と呼んでいるアルゴリズムです。これにより、グラフのメリットをすべて維持しながら、Eager Execution スタイルのプログラミング モデルを記述できます。この設計には、高度な自動微分のサポートを Swift に直接組み込むことも含まれています。また、Python と Swift の統合も深く考慮されており、Swift コードから直接任意の Python API を使用できます。

最後になりますが、Graph Program Extraction というアプローチをとったことで、実装にいくつかの技術的制約が課されることになりました。Swift をホスト言語として選択することになったのは、そのためです。トレードオフや、その選択に至った決定プロセスについては、Why *Swift* for TensorFlow?(なぜ Swift for TensorFlow なのか)で詳しく説明しています。

参加をお待ちしています


Swift for TensorFlow を使ってディープ ラーニング モデルを書き直すにはまだ少し早すぎますが、ML や言語、コンパイラに興味がある方は、さまざまな方法でプロジェクトに参加して貢献することができます。すぐに試せる macOS と Linux 向けのビルド済みパッケージが公開されており、シンプルな MNIST モデルも付属しています。さらに、ソースからビルドするための手順も掲載されています。プロジェクトのこのフェーズでは、既知の問題が数多く存在します。問題が発生した場合は、メーリング リストでご連絡ください。

ユーザーの皆さんに愛される、美しい TensorFlow インターフェースを新たに構築できることは私たちの喜びです。ぜひ、プロジェクトに対する皆さんの意見をお聞かせください。


Reviewed by Takuo Suzuki - Developer Relations Team

app ドメインが一般登録可能になりました

$
0
0
この記事は Google Registry、Christina Chiou Yeh による Google Developers Blog の記事 ".app is now open for general registration" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

5 月 1 日に Google Registryの最新トップレベル ドメイン(TLD)となる .app についてお知らせしました。このたび、.app の一般登録が可能になりました。必要な .app ドメイン名をすぐに登録できます。すでに世界中の様々なサービスで.app ドメインが利用されています。

 sitata.app は旅行先でのデモや交通ストなどに関するリアルタイムの旅行情報を提供してくれるサービスです。旅行の安全を確認して、例えばカリブ海地域を訪れたいと思った場合、thelocal.appを使って探索を始めることができます。太陽の光を十分に浴びた後、飛行機でオランダに行きます。空腹を感じたら、幸運なことに picnic.appを使って、ホテルまで食料品を直接配達してもらえます。満腹になったら、インドに向かいます。インドでは、myra.appを使って、スーツケースに入れ忘れた医薬品、衛生用品、ベビー用品などを注文できます。この旅行が出張旅行だったことを言い忘れていました。嬉しいことに lola.appを使えば、そうした煩雑な旅行でストレスを感じることがなくなるでしょう。いよいよ帰国日になったので、ov.appで買ったパーカーを着て、帰路を満喫してください。

デベロッパーの皆さんがこれらのアプリから刺激を受け、.app で自分のホームを見つけることを願っています。get.appにアクセスして、レジストラ パートナーを選択し、ドメイン名を登録してください。



Reviewed by Takuo Suzuki - Developer Relations Team

Chrome Tech Talk Night #11 を開催します

$
0
0
2018 年 6 月 13 日(水)、Web Developer Relations Lead の Paul Kinlan の来日に合わせ、Chrome Tech Talk Night #11 を開催します。



  • IPC on the web with Comlink - Paul Kinlan (@Paul_Kinlan), Google
  • TBD - Jxck (@Jxck_), Google Developer Expert
  • TBD - Masataka Yakura (@myakura), Google Developer Expert
なお、今回のイベントに通訳は付きません。一部講演は英語であることを予めご了承の上ご参加下さい。

イベント概要


名称:Chrome Tech Talk Night #11
日時:2018 年 6 月 13 日(水) 19:00 - 21:00 (受付 18:30 〜 19:30)
   ※ 終了後、懇親会(軽食付き)を行う予定です。
場所:グーグル株式会社 六本木オフィス
   東京都港区六本木 6-10-1 六本木ヒルズ 森タワー
会費:無料
定員:100 名
主催:グーグル合同会社
ハッシュタグ: #chromejp

申し込み方法


参加を希望される方はこちらのページよりお申込みをお願いします。

プログラム

18:30 受付開始
19:00 - 21:00 セッション
21:00 - 22:00 懇親会

内容は変更になる可能性がございます。予めご了承ください。
皆様のご参加をお待ちしております。


Posted by Eiji Kitamura - Developer Relations Team

Google Play サービスと Firebase の 新しい SDK バージョニング スキームのお知らせ

$
0
0
この記事は デベロッパー アドボケート、Doug Stevenson による Android Developers Blog の記事 "Announcing new SDK versioning in Google Play services and Firebase" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

本日(*原文公開当時)から、Google Play サービスと Firebase の Android SDK で新しいビルドおよびバージョニング スキームが使用されます。これにより、Android アプリをビルドする方法の一部に変更が発生する場合があるため、このドキュメントをよく読んで、すべての詳細を把握してください。

これらの SDK の新機能の概要を次に示します。
  • すべての依存関係でセマンティック バージョニングが使用されるようになりました。
  • 各依存関係を個別にアップデートできるようになったため、アプリですべての依存関係を同時にアップグレードする必要がなくなりました。
  • 各依存関係に対してバグの修正と新機能の追加がより頻繁に行われます。

すべての Play サービスおよび Firebase ライブラリのバージョン 15 以降では、バージョン番号がセマンティック バージョニングスキームに従います。ご存じのとおり、semver はソフトウェア コンポーネントのバージョニングを行う業界基準であり、各ライブラリのバージョン番号の変更により、ライブラリに加えられた変更の量が示されます。

com.google.android.gms:play-services-*com.google.firebase:firebase-*の Maven 依存関係マッチングで、同じバージョン番号でなくても、ビルド時および実行時に適切に機能するようになりました。各依存関係をそれぞれ個別にアップグレードすることができます。そのため、Gradle ビルドの Play および Firebase 依存関係の共通バージョン番号を指定する従来のやり方は想定どおりに機能しなくなりました。このパターン(現在はアンチパターン)は、次のようです。
buildscript {
ext {
play_version = '15.0.0'
}
}

dependencies {
// DON'T DO THIS!!
// The following use of the above buildscript property is no longer valid.
implementation "com.google.android.gms:play-services-auth:${play_version}"
implementation "com.google.firebase:firebase-auth:${play_version}"
implementation "com.google.firebase:firebase-firestore:${play_version}"
}

上記の Gradle 設定では、Play および Firebase SDK のバージョンで play_versionというビルドスクリプト プロパティを定義し、それを使って依存関係を宣言しています。このパターンは、すべての依存関係バージョンを 1 つに揃える(以前は必要だった)のに役立っていましたが、各ライブラリのバージョン 15 以降では、このパターンは適用されなくなりました。現在は、異なるバージョンの依存関係を使用できるようになりました。個々のライブラリ アップデートが同時にリリースされずに、個別にアップデートされる場合があることを想定しておいてください。

バージョニングに関するこの変更をサポートするために、Play サービスの Gradle プラグインがアップデートされています。このプラグインを使用している場合は、アプリ モジュールの build.gradleの下部に次のように表示されます。
apply plugin: 'com.google.gms.google-services'

このプラグインの変更点は次のとおりです。
  • Play および Firebase ライブラリの互換性のあるバージョンをチェックします。これは、failOnVersionConflict()ResolutionStrategyを有効にすることに似ています。
  • ライセンス情報が個々のビルド アーティファクトに埋め込まれます。oss-licenses プラグインを使用してライセンス要件を管理する場合、このプラグインを最新バージョンにアップデートする必要があります。

このプラグインの場合、新しいバージョニング システムと連動する最初のバージョンは 3.3.0 です。新しいバージョンの Play および Firebase ライブラリと併用する場合は、次のように、このプラグインをビルドスクリプトのクラスパス依存関係に追加する必要があります。
classpath 'com.google.gms:google-services:3.3.0'

このプラグインを使用せず、依存関係の厳密なバージョン チェックが必要な場合は、次の新しい Gradle プラグインを適用することができます。
apply plugin: 'com.google.android.gms.strict-version-matcher-plugin'

上記のプラグインを使用するには、Google の Maven レポジトリから取得できる次のライブラリをビルドスクリプト クラスパスに追加する必要もあります。
classpath 'com.google.android.gms:strict-version-matcher-plugin:1.0.0'

アプリを開発するときに Android Studio 3.1 を使用していない場合は、IDE 内で適切なバージョン チェック動作を行うために、Android Studio をアップグレードする必要があります。こちらから Android Studio の最新バージョンを入手できます。

これらの変更が追加されたため、さまざまな SDK の新しいバージョンをより自由に導入できるようになり、すべてを同時にアップデートする必要がなくなりました。また、各 SDK の開発チームは修正と機能強化をより迅速に配布できるようになりました。今後は、Play サービス SDKFirebase SDKのリリースをそれぞれのリンク先で確認できるようになります。


Reviewed by Khanh LeViet - Developer Relations Team
Viewing all 2209 articles
Browse latest View live