この記事は Calder Kitagawa による Chromium Blog の記事 "Speeding up Chrome on Android Startup with Freeze Dried Tabs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


Chrome のパフォーマンスを向上するという点では、「これで十分」ということは決してありません。今回の速さと好奇心の投稿では、Android 版 Chrome の起動時間を 20% 以上高速化した方法に迫ります。これは、起動時にタブのインタラクティブなフリーズドライ プレビューを表示することで実現しました。以降では、スクリーンショットでは何が不十分なのか、なぜタブをフリーズドライすることが優れたブラウザにつながるのかについて説明します。

背景と目的

ウェブ コンテンツのレンダリングにはときに重い計算処理が必要で、ネイティブ アプリケーションよりも遅く感じられることがあります。ネットワークから動的にリソースを読み込んだり、JavaScript を実行したり、CSS やフォントなどをレンダリングしたりするには、たくさんの作業が必要です。この問題はモバイル デバイスで特に顕著で、デバイスのメモリが制約となり、Chrome が一度に少数のウェブページしか読み込めないこともよくあります。

この記事は Calder Kitagawa による Chromium Blog の記事 "Speeding up Chrome on Android Startup with Freeze Dried Tabs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


Chrome のパフォーマンスを向上するという点では、「これで十分」ということは決してありません。今回の速さと好奇心の投稿では、Android 版 Chrome の起動時間を 20% 以上高速化した方法に迫ります。これは、起動時にタブのインタラクティブなフリーズドライ プレビューを表示することで実現しました。以降では、スクリーンショットでは何が不十分なのか、なぜタブをフリーズドライすることが優れたブラウザにつながるのかについて説明します。

背景と目的

ウェブ コンテンツのレンダリングにはときに重い計算処理が必要で、ネイティブ アプリケーションよりも遅く感じられることがあります。ネットワークから動的にリソースを読み込んだり、JavaScript を実行したり、CSS やフォントなどをレンダリングしたりするには、たくさんの作業が必要です。この問題はモバイル デバイスで特に顕著で、デバイスのメモリが制約となり、Chrome が一度に少数のウェブページしか読み込めないこともよくあります。

ここから生じるのが、必要に迫られた場合(タブ スイッチャーのような一時的な UI や、たくさんのウォームアップ作業が行われる起動時など)に、ウェブ コンテンツを軽量に表現する方法はないかという疑問です。これを行う標準的な手法はスクリーンショットです。スクリーンショットは見た目を正確に表現できるので、ユーザーは何が開いているかを一目で理解できます。しかし、スクリーンショットは最後に表示したものしか表現できず、完全に静的なので、ウェブページよりも制限が強くなります。

この一時的なウェブ コンテンツのイメージがより便利でインタラクティブになり、本物のページが準備できるまで待つ間に利用できるならどうでしょうか。

ケーススタディ : コールド スタート時に高速にウェブ コンテンツを表示する

Android 版 Chrome アプリのコールド スタートは高価で、起動してからウェブページの描画を始めるまでの時間(First Contentful Paint / FCP)の中央値は 3.4 秒です。ページの HTML、CSS、JS、フォントを処理するにはたくさんの作業が必要なので、他のアプリと比べると遅く感じられるかもしれません。

しかし、起動時にインタラクティブなページのスナップショットを表示できたとしたらどうでしょうか。

このスナップショットを、フリーズドライ タブと呼びます。これは実際のウェブページからさまざまな機能を取り除いたものですが、十分な内容とインタラクティブ性を持ち合わせているため、静的なスクリーンショットよりも有用です。スクリーンショットに欠けていた重要な要素は、リンクを開いたり、ページのコンテンツをスクロールしてビューポート外の内容(iframe も含む)を見たりする機能です。

フリーズドライ タブは、このすべての機能に加えて、ほかの機能も実現できます。実際のウェブページよりも速く起動し、完全なページが準備できるまでの間にもコンテンツを利用できるように、十分な機能を提供します。ページが読み込まれると、自動的かつシームレスにそのページに切り替わります。

テストの結果、フリーズドライ タブを使うことで、起動してからページのすべてのコンテンツを描画するまでの時間の中央値が 2.8 秒まで短縮できました(通常の描画を始める場合に比べて最大 20% 高速)。すべてのコンテンツが表示され、ほとんどの場合、レイアウトのずれも起こらないので、一層速く感じられます。

フリーズドライ タブによる起動時間の分散の変化

すべての統計情報の出典 : Chrome クライアントから匿名で集計した実データ [1]


フリーズドライ タブの詳細

ウェブページをフリーズドライするため、ページの視覚的な状態を一連のベクター グラフィックとしてキャプチャします。その際に、すべてのハイパーリンクも取得します。後に、そのベクター グラフィックを単純にラスタライズし、軽量な形で「再構築」(再生)します。これにより、完全なウェブページ(ビューポートの外側のコンテンツも含む)を表示するレンダリング コストを省きつつ、ハイパーリンクをサポートできます。

この形式には、スクリーンショットよりも多くのメリットがありますが、ウェブページのすべての機能が利用できるわけではありません。そのため、私たちは、実際のページを読み込むには少し時間がかかるときに、スクリーンショットよりもインタラクティブな表示をしたい場合は、この形式で一時的な表示をするのが最適な方法であると考えています。

*Android P を実行する Pixel 2 XL をエミュレーションした推定値。

1 ユーティリティ プロセスは 30 MB のオーバーヘッド(最大平均 10 MB のコンテンツと 20 MB のビットマップ)


技術開発における主な課題

この技術を構築できたことは、興味深くやりがいのある経験でした。特に難しいのは、iframe のコンテンツを集約すること、サブフレームのスクロールをサポートすること、すべてのジオメトリを扱うことです。

しかし、最も興味深い挑戦はパフォーマンスでした。

キャプチャ

ページをキャプチャするときにコンテンツを保存するのは単純な作業です。CSS でスタイル設定した DOM のジオメトリは簡単にベクター グラフィックに変換でき、ベクター グラフィックは小さくて、保存が簡単です。

ページのイメージをこの形式で保存するのも単純ですが、高解像度のイメージはサイズが大きくて(0.1~10 MB)圧縮も O(100 ms) と遅く、MB 単位のメモリのオーバーヘッドもかかります。そのため、イメージをそのままデフォルトのエンコードで保存するのが通例ですが、イメージが大きくなると対応できない場合があります。

フォントは、内包する各グリフの描画方法を記述したファイルです。中国語のように文字の種類が多い言語や、絵文字のようにイメージで構成されている場合、フォント ファイルのサイズは特に大きくなります。英語フォントは 1 つあたり 100 kB 程度のものが多いですが、絵文字のフォントは簡単に数 MB に達します。ページには複数のフォントが埋め込まれていることが多く、そういったフォントはローカル システムに保存されないため、キャプチャするデータの一部として保存しなければなりません。初期テストでは、見た目を完全に再現できるように、ページで使われているすべてのフォントを保存しようとしました。しかし、この方法で保存すると、ページによっては 100 MB ほどのサイズになることがありました。パフォーマンスとストレージの観点から考えて、これは受け入れられません。

この難題を克服するため、フォントのサブセット化に注目しました。サブセット化とは、フォント ファイルからすべての未使用グリフを取り除くことです。これにより、ページに必要なフォントのみがデータに残ります。すると、100 MB だったページはわずか 400 kB(元のサイズの 1% 未満)になりました。


再生

もう 1 つの難題は、再生のパフォーマンスを妥当な範囲に保つことでした。ベクター グラフィックを表示するには、ラスタライズしてビットマップにしなければなりません。しかし、現在のスマートフォンの画面は 1 ピクセルあたり 32 ビットなので、コンテンツのビューポート 1 つでも容易に 10 MB を超えてしまいます。このビットマップのメモリ オーバーヘッドを減らすため、ユーザーがスクロールする際に動的にビットマップを生成するようにしました。

もう少し詳しく説明しましょう。ページのコンテンツは、ビューポートよりも小さなタイルに分割します。そして、ビューポートに現在含まれるすべてのタイルのビットマップを生成するとともに、スムーズなスクロールを実現するため、ビューポートの周囲にあるタイルをプリフェッチします。ビューポート外のビットマップを実際に表示するまで圧縮する実験をしたところ、10 MB からわずか 100 kB ほどまでメモリを節約できる可能性があることがわかりました。しかし、さらにパフォーマンス データを収集したところ、圧縮によって CPU に追加のオーバーヘッドがかかるため、ブラウザのジャンクや [FID] などが大幅に増加することがわかりました。そこで、この動作は削除し、タイルを小さくしてビューポート外のビットマップを積極的に破棄できるようにしました。

まとめ

フリーズドライ タブは、スクリーンショットに替わるものとして魅力的な選択肢です。一時的な表示や、すぐにウェブ コンテンツを準備できず、それが利用できるようになるまで待つ時間が長い場合には特に有効です。また、スクリーンショットよりも再現性に優れているほか、リンクやスクロールなど、ウェブページと同じように動作する便利なユーザー操作も可能です。

現在、Android 版の Chrome で使われているフリーズドライ タブによって、コールド スタートで 20% という体感可能な高速化が実現されています。この技術を他の場所で使うことも検討しています。



Posted by Eiji Kitamura - Developer Relations Team

今回、コミュニティ主催のイベントでは、 サーバーレス、コンテナ を中心としたラボを扱います。本プログラム参加者は、Google Cloud Skills Boost (以下、Skills Boost )を 30 日間無料で利用できます。


プログラム 概要

  • プログラム期間 : 2022 年 10 月 12 日 ~ 11 月 9 日
  • オンボーディング セッション : 2022 年 10 月 26 日(水)15:00 - 16:00
    (アーカイブでも視聴可能)※

  • お申し込み : https://cloudonair.withgoogle.com/events/try-together-1012

  • 対象 : Google Cloud を学びたい大学生以上の方

  • 費用 : 無料

  • 実施方法 : オンライン

2022 年 6 月に実施いたしましたプログラムが大変好評でしたため、第 2 弾の実施が決定いたしました。本プログラムは、学習ツール「Google Cloud Skills Boost」を使って Google Cloud をコミュニティと一緒に学ぶ、無料のプログラムです。

今回、コミュニティ主催のイベントでは、 サーバーレス、コンテナ を中心としたラボを扱います。本プログラム参加者は、Google Cloud Skills Boost (以下、Skills Boost )を 30 日間無料で利用できます。


プログラム 概要

  • プログラム期間 : 2022 年 10 月 12 日 ~ 11 月 9 日
  • オンボーディング セッション : 2022 年 10 月 26 日(水)15:00 - 16:00
    (アーカイブでも視聴可能)※

  • お申し込み : https://cloudonair.withgoogle.com/events/try-together-1012

  • 対象 : Google Cloud を学びたい大学生以上の方

  • 費用 : 無料

  • 実施方法 : オンライン


※ Skills Boost を初めてご利用いただく方にもご安心いただけるように、オンボーディング セッションとして Skills Boost 使い方説明 をオンラインで実施します。(本セッションは、アーカイブでもご覧いただけます。セッションに参加できなくても、プログラムに参加して学習することは可能です)

Skills Boost スキルバッジ獲得者特典

  1. スキルバッジを獲得した先着 1000 名様に、Google Cloud 特製トートバックをプレゼント
  2. スキルバッジを獲得した先着 200 名様に、Google Cloud 特製トートバックと PC 保護ケースをプレゼント

Google Cloud Innovators メンバー向け追加オファー

Innovators メンバーの方、もしくは期間中に Innovators メンバーにご登録いただき、本プログラムでスキルバッジを 1 つ以上獲得された方には、上記プレゼントに加え、認定資格バウチャー 1 回分(日本語試験のみ)をプレゼントいたします!

コミュニティやグループを主催する方、チューターとして参加を希望する方

こちらからご登録ください。また、本プログラムにも必ずご登録ください。

コミュニティ主催の勉強会は随時情報を更新していきます。

これから Google Cloud を学びたい方は、ぜひご参加ください。

お申し込みはこちらからお願いします。


同僚や知り合いの方にぜひシェアしてください。

#みんなで学ぼうGoogleCloud

この記事は Gina Biernacki による Google Developers Blog の記事 "New Features Available in the Google Identity Services (GIS) Library" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 ...
この記事は Gina Biernacki による Google Developers Blog の記事 "New Features Available in the Google Identity Services (GIS) Library" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google は、より安全かつ簡単な認証をデベロッパーに提供する取り組みを通じて、ユーザーがお気に入りのアプリやウェブサイトに簡単にアクセスできるようにしています。Google Identity Services(GIS)は進化を続けており、パートナーのエコシステムに計り知れない価値をもたらす認証ソリューションの開発も続いています。認証済み電話番号を認証フローに直接埋め込むなど、要望の多かった機能にも対応しています。

デベロッパー向けに重点を置いているのは、常にスムーズな操作を提供して、ユーザーがパートナーのプラットフォームを簡単に使い始めたり再訪したりできるようにすることです。同時に、デベロッパーがユーザーと確かな信頼関係を築けるようにすることにも留意しています。

新機能

以下のライブラリで利用できるいくつかの新機能についてお知らせします。

Android
  • 認証済み電話番号(Android)
  • 電話番号ヒント(Android)

ウェブ
  • Intelligent Tracking Prevention(ITP)ブラウザでの One Tap

iOS と macOS
  • macOS サポートの追加

Android

認証済み電話番号

ID プロバイダである私たちは、操作にユーザーの明確な同意を織り込みつつ、ユーザーの Google アカウントを活用して、デベロッパーに追加のユーザーデータをシームレスに提供できるようにする作業を進めています。電話番号がアカウント管理の重要な要素であることは承知しています。この点は、モバイルファーストのマーケットにあるユーザーにとっても、ID 認証や 2 要素認証の必要性が高まっているデベロッパーにとっても言えることです。

Android デバイスでは、デベロッパー側から、Google アカウントに紐付けられた認証済み電話番号を共有することを登録フローの一環としてユーザーにリクエストできるようになります。デベロッパーからは、SMS 認証でユーザーを保護するには大きなコストが必要だという声が寄せられています。今回、デベロッパーは簡単にユーザーに電話番号をリクエストできるようになります。この電話番号は Google が検証を済ませているものです。これにより、オンボーディング プロセス全体で SMS のコストを削減できます。

認証済み電話番号は、現在 Android 版 GIS で利用できます。今後、他のプラットフォームにも展開する予定です。


電話番号ヒント

デベロッパーがユーザーの電話番号をリクエストするもう 1 つの方法は、Android デバイスで新しい Phone Number Hint API を使うことです。デベロッパーが Phone Number Hint API を呼び出すと、ユーザーはデバイスの SIM カードの電話番号を共有できます。これは、登録やログインのフローとは関係なく利用できます。この API には追加のパーミッションは不要なので、ネイティブ Android API を呼び出す方法よりもお勧めです。デベロッパーは時間と作業量を減らすことができます。Phone Number Hint API は、ユーザーが Google アカウントにログインしていなくても利用できます。Google アカウントに情報が保存されることもありません。

ウェブ

ITP ブラウザの One Tap

ITP(Intelligent Tracking Prevention)ブラウザでは、サードパーティ Cookie の利用が制限されるので、ウェブでユーザーがトラッキングされることはありません。今回、iOS 版の Safari、Firefox、Chrome などの ITP ブラウザで、GIS One Tap が利用できるようになります。これにより、ユーザーとデベロッパーの両方のために、複数のプラットフォームで一貫したワンタップ操作を実現します。デベロッパーは、次のようなさまざまな理由で One Tap の利用を好んでいます。
  • ユーザーのコンバージョンの増加
  • 業界をリードするセキュリティ
  • パスワード管理に伴うリスクの削減
  • 専用のログインページや登録ページにリダイレクトせずにログインや登録を実現
  • パーソナライズしたプロンプトによる重複アカウントの削減と再訪ユーザーの自動ログイン

ITP ブラウザでの One Tap の UX は、次のようなウェルカム ページから始まります。

ユーザーが続行することを選ぶと、ポップアップ ウィンドウが開きます。ポップアップ ウィンドウの UX は、標準の One Tap ユーザー エクスペリエンスと同じです。


この新機能は、One Tap を有効にしているすべてのデベロッパーを対象に、2022 年 10 月 12 日にデフォルトとしてロールアウトされる予定です。さっそく ITP ブラウザで One Tap のサポートを始めたい方や、デフォルトのサポートをオプトアウトしたい方は、ドキュメントをご覧ください。

iOS と macOS

macOS プラットフォーム拡張

この数年間で Apple のエコシステムは拡大し、多くの異なるプラットフォーム(iOS、iPadOS、macOS、tvOS、watchOS)が含まれるようになりました。そこで、Apple エコシステムのサポート拡大に向けて、iOS と macOS 向け Google ログインの一環として、macOS サポートをリリースします。これにより、ネイティブ macOS アプリで中核的な GIS 操作(認証、認可、トークンの保存)がサポートされるようになります。

サポートの終了

サポートの終了予定

GIS ライブラリで利用できる新機能に加えて、今後のサポートの終了予定についてもお知らせします。
  • Android での Smart Lock for Passwords のサポート終了
  • ウェブサイト向け Google ログインのサポート終了 

Smart Lock for Passwords のサポート終了

Smart Lock for Passwords Android SDK のサポートが終了します。この機能は、パスワードの保存と取得、ID トークンのリクエスト、ログインヒントの取得をします。GIS ライブラリでは、Smart Lock for Passwords のすべての機能を利用できます。すべてのデベロッパーの皆さんには、新しい機能用に GIS ライブラリを使うことをお勧めします。既存の統合機能の Smart Lock for Passwords トラフィックは、デフォルトで GIS ライブラリにリダイレクトされます。デベロッパーによる変更作業は必要ありません。

ウェブサイト向け Google ログインのサポート終了

再度のお知らせになりますが、ウェブ アプリケーション向けの Google ログイン JavaScript プラットフォーム ライブラリは 2023 年 3 月 31 日に完全に提供が終了します。このサポート終了が皆さんのウェブ アプリケーションに影響しないことを確認してください。必要な場合には、移行の計画を立ててください。

以上の新機能が、デベロッパーとユーザーの両方に大きな価値を提供し続けることを期待しています。今後もデベロッパーの皆さんの ID 関連のニーズにお応えできることを楽しみにしています。詳しい使い方は、デベロッパー サイトをご覧ください。


この記事は Google Maps Platform Developer Marketing の Ahsan Ashraf による Google Cloud Blog の記事 "Test your skills in the Google Maps Platform Hackathon" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
...


この記事は Google Maps Platform Developer Marketing の Ahsan Ashraf による Google Cloud Blog の記事 "Test your skills in the Google Maps Platform Hackathon" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

デベロッパー、イノベーター、データ サイエンティスト、デザイナー、教育者、及び Google Maps Platform ファンの皆さん、Google Maps Platform を活用し、皆さんのアイデアを形にして、披露しませんか。このハッカソンの課題はシンプルです。ご自身が情熱を注いでいる分野で何かを構築または展開し、Google Maps Platform を活用して独自のエクスペリエンスを生み出してください。

このハッカソンへの応募は、11 月 14 日まで Devpost で受け付けています。受賞者は最大で大賞が 4 名、審査員特別賞が 4 名であり、賞金総額は $24,000(USD)です。

応募方法

Devpost にアクセスして、ご自分のプロジェクトを入力して送信してください。利用可能なツールやリソースをぜひご活用ください。

ここでは、知っておいていただきたい主なルールをいくつかご紹介します。

  1. GitHub プロジェクトのコード リポジトリには、オープンソース ライセンスが含まれ、少なくとも 2 つの Google Maps Platform API を使用する必要があります。
  2. ご自分のプロジェクトを短い動画(3 分以内)でアピールしてください。
  3. プロジェクトの選考を希望するカテゴリを選んでください。

参加資格をはじめとする公式ルールや必要条件は、ハッカソンのページをご確認ください。ぜひデモギャラリーもご覧ください。

ご健闘をお祈りいたします。皆さんが Google Maps Platform で何を構築されるのか、今から楽しみにしています。

Google Maps Platform に関する詳しい情報はこちらをご覧ください。ご質問やフィードバックはページ右上の「お問い合わせ」より承っております。


Posted by 丸山 智康 (Tomoyasu Maruyama) - Developer Relations Engineer 


この記事は Developer Advocate の Alex Muramoto による Google Cloud Blog の記事 "Announcing Advanced Polylines for the Maps SDKs for Android" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
...

この記事は Developer Advocate の Alex Muramoto による Google Cloud Blog の記事 "Announcing Advanced Polylines for the Maps SDKs for Android" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

デベロッパーによる Google マップの基本地図のスタイル設定とカスタマイズを可能にする継続的な取り組みの一環として、この度、Maps SDK for Android 向けの高度なポリラインのスタイル設定の提供を開始することを発表します。この機能は、現在 Google が提供しているポリライン機能の上に構築されています。デベロッパーはこの機能を使って、地図上に表示される定型の線を作成できます。こうした定型の線は、経路、パレードルート、通行止めなどの情報を表すためによく使用されます。ポリラインは、Google Maps Platform のデベロッパーが、ユーザー向けに地図をカスタマイズする際に最もよく使う機能の一つです。

高度なポリラインのスタイル設定では、マルチカラー ポリライン、グラデーションのポリライン、スタンプ型ポリラインの 3 つの新しいポリラインのカスタマイズを導入することで、ポリラインのコア機能をより豊かに、表現力のあるものにできます。

高度なポリラインのスタイル設定は、最新のレンダラを有効にしたバージョン 18.1.0 以降の Maps SDK for Android とバージョン 5.2.0 の Maps SDK for iOS において、利用可能です。

マルチカラー ポリライン

マルチカラー ポリラインを使うと、ポリラインをセグメント化し、各セグメントに異なる色を適用して情報を表現することができます。このカスタマイズは、経路上のさまざまな情報を伝える、季節のキャンペーンで企業のブランディングに合わせる、あるエリアに注目を集めるなど、さまざまなユースケースで活用できます。

マルチカラー ポリラインを使用するには、`StyleSpan` オブジェクトを作成し、`addSpan()` または `addSpans()` メソッドを `PolylineOptions` に追加します。デフォルトでは、配列の各アイテムが対応する線分の色に設定されます。次の例では、セグメントの色を設定して、緑と紫(マゼンタ)のセグメントを持つポリラインを作成しています。

 Polyline line = map.addPolyline(new PolylineOptions()

        .add(new LatLng(37.789258, -122.387819),

          new LatLng(37.786572, -122.390556),

          new LatLng(37.786140, -122.390899))

        .addSpan(new StyleSpan(Color.MAGENTA))

        .addSpan(new StyleSpan(Color.GREEN))

      );

グラデーションのポリライン

グラデーションのポリラインは、ポリライン全体に 2 色のグラデーションを適用します。交通の流れや標高の変化など、強弱の変化を表現するのに便利です。

グラデーション ポリラインを使用するには、ポリラインの開始色と終了色を設定する 2 つの 32 ビットの ARGB(alpha、red、green、blue)値を指定してグラデーションを定義し、次に `PolylineOptions.addSpan()` を呼び出して、このプロパティを図形のオプション オブジェクトに設定します。

以下は、サンフランシスコからランチョ コラール デ ティエラまでのグラデーション ポリラインを作成する例です。

 Polyline line = map.addPolyline(new PolylineOptions()

        .add(new LatLng(37.662953, -122.400542), new LatLng(37.5414277, -122.4845455))

        .addSpan(new StyleSpan(StrokeStyle.gradientBuilder(Color.GREEN, Color.RED).build())));

スタンプ型ポリライン

スタンプ型ポリラインを使うと、選択したビットマップ画像を繰り返し使ってポリラインを作成できます。これにより、図形とポリラインの外観のカスタマイズが可能になります。

スタンプ型ポリラインを使用するには、`TextureStyle` の `StampStyle` を作成して、ポリラインの外観をビットマップ テクスチャの繰り返しに設定します。このプロパティは、`PolylineOptions.addSpan()` を呼び出すことで、図形のオプション オブジェクトに設定できます。

 StampStyle stampStyle = TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.arrow)).build();

Polyline line = map.addPolyline(

new PolylineOptions()

.add(

new LatLng(37.789258, -122.387819), 

new LatLng(37.786572, -122.390556), 

new LatLng(37.786140, -122.390899))

.addSpan(new StyleSpan(StrokeStyle.colorBuilder(Color.BLUE).stamp(stampStyle).build()))

.addSpan(new StyleSpan(StrokeStyle.colorBuilder(Color.YELLOW).stamp(stampStyle).build()))

);

スタイル設定とカスタマイズ機能は、ユーザーにより良いマッピング サービスを提供し、重要な情報を伝え、独自の地図を作り上げるために、最適かつ最も簡単な方法の一つです。最近リリースしたクラウドベースのマップスタイル設定、データドリブンのスタイル設定、WebGL を活用したマップ機能などのスタイル設定やカスタマイズ機能はもちろんのこと、Google Maps Platform チームは、それぞれのニーズを満たす柔軟性を備えた素晴らしいマッピング サービスを提供するツールをお届けできるよう、取り組みを続けています。この新しい、マップ上のポリラインのカスタマイズとスタイル設定をぜひご活用ください。

Google Maps Platform に関する詳しい情報はこちらをご覧ください。ご質問やフィードバックはページ右上の「お問い合わせ」より承っております。


Posted by 丸山 智康 (Tomoyasu Maruyama) - Developer Relations Engineer 

この記事は Chrome セキュリティの Ryan Dickson、Chris Clements、Emily Stark による Chromium Blog の記事 "Announcing the Launch of the Chrome Root Program" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 ...
この記事は Chrome セキュリティの Ryan Dickson、Chris Clements、Emily Stark による Chromium Blog の記事 "Announcing the Launch of the Chrome Root Program" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

2020 年に、Chrome Root Program と Chrome Root Store の導入に向けた初期段階にあることをお知らせしました。

Chrome Root Program は、Chrome がデフォルトの状態でどのウェブサイトの証明書を信頼するかを決定し、さまざまなプラットフォームでウェブサイトの証明書検証の一貫性と信頼性を向上します。

この投稿では、この変更の最新の進捗状況とともに、それがどのように Chrome ユーザーの保護強化につながるのかについてお伝えします。

ルートストア、ルート プログラムとは

Chrome は、ユーザーの接続が安全でプライバシーが守られることを保証するために、デジタル証明書(多くの場合、「証明書」、「HTTPS 証明書」、「サーバー認証証明書」と呼ばれます)を使います。証明書にはドメイン名と公開鍵を結び付ける役割があり、Chrome はその公開鍵を使って対象のウェブサイトとやり取りするデータを暗号化します。

Chrome は、ウェブサイトとの間で安全な接続を確立する作業の一環として、証明書が「認証局」(CA)と呼ばれる信頼できる機関によって発行されたものであることを検証します。Chrome やユーザーのローカル設定が認識していない CA が発行した証明書が使われると、ユーザーに警告ページやエラーページが表示される場合があります。

ルートストアは「トラストストア」とも呼ばれ、信頼できる認証局についての情報をオペレーティング システムやアプリケーションに提供します。Chrome Root Store には一連のルート CA 証明書が含まれており、Chrome はデフォルトの状態でその一連の証明書を信頼します。

ルート プログラムは、対応するルートストアの管理に必要な要件やセキュリティ審査の機能を定めるためのガバナンス構造です。Chrome Root Program の責任者は、Chrome セキュリティ チームのメンバーです。Chrome Root Store に含める CA の最小要件を定めたプログラム ポリシーは、こちらで公開されています。

Chrome でこの変更をする理由

これまでの Chrome では、Chrome が実行されているプラットフォームが提供するルートストアと証明書検証プロセスを使っていました。しかし、Chrome Root Store に移行して、さまざまなプラットフォーム上の Chrome が信頼する CA を標準化し、Chrome Certificate Verifier を使って一貫した証明書検証を行えば、ユーザーやデベロッパーの体験の一貫性が向上します。

Chrome Root Program の導入は、Web PKI エコシステムへの参画と改善を継続的に推進する姿勢を表明することにもなります。ウェブサイトの所有者は、ACME などの技術革新のおかげで、これまで以上に簡単に HTTPS 証明書を取得できるようになっています。Certificate Transparency などのテクノロジーによって説明責任と透過性が増しているので、Chrome ユーザーのセキュリティはさらに向上しています。こういった機能強化はコミュニティの連携によってのみ実現できるものであり、それによってウェブの安全性は向上します。しかし、実現すべきことはまだあります。

私たちは CA の所有者と連携して、次世代の Web PKI の定義と運用に向かおうとしています。今後のビジョンには、信頼性が高くアジャイルな最新の目的主導型 PKI によって自動化、簡素化、安全性強化を進めることなどが含まれています。Chrome Root Program とそれに対応するポリシーは、このような目的を実現できるように構築しています。


変更のタイミング

「ロールアウト」は、新機能を徐々に公開することで行います。スムーズに実施するため、新機能をすべてのユーザーに一度に公開しない場合もあります。その場合は、予期しない互換性の問題を最低限にとどめるため、まず一部のユーザーに公開し、時間をかけながら徐々に公開する比率を増やします。Windows と macOS での Chrome Root Store と Certificate Verifier のロールアウトは、Chrome 105 から始まり、その後、他のプラットフォーム向けにロールアウトします。

Windows と macOS では、こちらの手順に従うことで、前述のロールアウトに先駆けてテストを実施できます。


変更による影響

ほとんどのユーザー、企業、CA 所有者は、Chrome Root Store と Certificate Verifier への移行をスムーズに進められるはずです。


Chrome Certificate Verifier の証明書検証プロセスでは、ローカルで管理する証明書も考慮されます。つまり、企業で(Windows Group Policy Object などを通して)ユーザーが信頼できるルート CA 証明書を配布している場合、Chrome もそれを信頼します。


トラブルシューティングの手順やその他のよくある質問は、こちらをご覧ください。

次のステップ

Web PKI の将来がどんなものになるかは、私たちにもまだ正確にはわかりません。それでも、スピード、セキュリティ、安定性、シンプルさを向上させる変更を、エコシステム全体で推進することに集中したいと考えています。


Chrome チームは、その点を念頭に置いて、以下の取り組みに関連する今後のルート プログラムのポリシー要件の導入について検討を続けています。
  • 最新インフラとアジリティの推進
  • シンプルさの重視
  • 自動化の推進
  • 誤発行の削減
  • 説明責任とエコシステムの整合性の向上
  • ドメイン検証手続きの効率化と改善
  • 量子後」の世界に向けた準備
CA/Browser Forum などの Web PKI エコシステムのメンバーとともに、インターネットを安全な場所にする取り組みを継続できることを楽しみにしています。

Google は Android 初級者と中級者向けに、コミュニティと一緒に学ぶ無料のオンライン プログラム「Compose Camp」を 2022 年 10 月 4 日(火)から 12 月 23 日(金)の期間中に開催します。

本プログラムではオンライン学習ツール Pathways を用いて、コミュニティで一緒に学ぶ、無料のオンライン プログラムです。今回は初級者向けと中級者向けの 2 トラックよりお選びいただけます。

① 初級者向け : Compose を用いた Android アプリ開発

Android アプリ作成の新しい UI ツールキットである Jetpack Compose を使用して Android アプリを作成するための基礎を学びます。コースを通してさまざまなアプリを開発し、Android デベロッパーになるための一歩を踏み出しましょう。

Google は Android 初級者と中級者向けに、コミュニティと一緒に学ぶ無料のオンライン プログラム「Compose Camp」を 2022 年 10 月 4 日(火)から 12 月 23 日(金)の期間中に開催します。

本プログラムではオンライン学習ツール Pathways を用いて、コミュニティで一緒に学ぶ、無料のオンライン プログラムです。今回は初級者向けと中級者向けの 2 トラックよりお選びいただけます。

① 初級者向け : Compose を用いた Android アプリ開発

Android アプリ作成の新しい UI ツールキットである Jetpack Compose を使用して Android アプリを作成するための基礎を学びます。コースを通してさまざまなアプリを開発し、Android デベロッパーになるための一歩を踏み出しましょう。

② 中級者向け : Android デベロッパー向けの Jetpack Compose

Jetpack Compose を使用して Android のネイティブ UI を作成する方法を学習します。Compose が、少ないコード、パワフルなツール、直感的な Kotlin API を使用して、Android での UI 開発を簡素化し、加速する方法を確認します。


お申し込みはこちら

Compose Camp の流れ :

  1. Compose Camp ウェブサイト上部の "Register" ボタンから参加登録
  2. Google Developers Profile をお持ちでない場合)Google Developers アカウントのセットアップ
    https://developers.google.com/ へアクセスし、Developer Profile を作成いただけます。
  3. 初級者向けまたは中級者向け Pathway を完了しましょう。
    ※ 10 月 4 日(火) ~ 12 月 23 日 (金)の期間内にバッジを獲得された方のみ、グッズ企画の対象となりますので、ぜひ期間中にバッジを獲得してみましょう!
  4. 期間内にクイズを受講し、バッジを獲得
  5. 先着順でグッズ企画のキャンペーンに応募


プログラム概要

プログラム期間 : 10 月 4 日(火) ~ 12 月 23 日 (金)

対象 :

  • 初級者向けコース : Android, Compose を学びたい大学生以上の方
    • Android を触ったことがない方も大歓迎
  • 中級者向けコース : Android 開発経験者
    • Kotlin を使ったプログラミング経験
    • Android Studio に精通していること

費用 : 無料

実施方法 : オンライン

参加特典 : 本プログラムに登録しプログラムを修了した参加者には、Android 限定グッズをプレゼントいたします。


コミュニティ支援

1 人ではなかなか思うように勉強が進まない方を支援することを目的とした、勉強会を開催するコミュニティを募集します。コミュニティが主催する勉強会に参加することで、1 人では解決しなかった課題などを解決しましょう。

コミュニティ主催の勉強会の情報は随時こちらのブログで更新していきます。また主催者となって勉強会を開催してくださるコミュにティのオーガナイザーの方には Google からの支援をおこないますので、こちらのフォームから申し込んでください。

皆様の参加をお待ちしております。