ConversionAction
include_in_conversions_metric
FieldError.IMMUTABLE_FIELD
primary_for_goal
include_in_conversions_metrics
conversion_action.include_in_conversions_metric
# Kubernetes SPDX ソース ドキュメントをダウンロードする
$ curl -L https://sbom.k8s.io/v1.21.3/source > k8s-1.21.3-source.spdx
# SPDX SBOM 情報を受け取り、それを OSV 脆弱性にマッピングする spdx-to-osv ツールを実行する
$ java -jar ./target/spdx-to-osv-0.0.4-SNAPSHOT-jar-with-dependencies.jar -I k8s-1.21.3-source.spdx -O out-k8s.1.21.3.json
# 出力された spdx-to-osv ツールの OSV 脆弱性を表示する
$ cat out-k8s.1.21.3.json
…
{
"id": "GHSA-w73w-5m7g-f7qc",
"published": "2021-05-18T21:08:21Z",
"modified": "2021-06-28T21:32:34Z",
"aliases": [
"CVE-2020-26160"
],
"summary": "Authorization bypass in github.com/dgrijalva/jwt-go",
"details": "jwt-go allows attackers to bypass intended access restrictions in situations with []string{} for m[\"aud\"] (which is allowed by the specification). Because the type assertion fails, \"\" is the value of aud. This is a security problem if the JWT token is presented to a service that lacks its own audience check. There is no patch available and users of jwt-go are advised to migrate to [golang-jwt](https://github.com/golang-jwt/jwt) at version 3.2.1",
"affected": [
"package": {
"name": "github.com/dgrijalva/jwt-go",
"ecosystem": "Go",
"purl": "pkg:golang/github.com/dgrijalva/jwt-go"
},
Campaign.performance_max_upgrade
UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation
SmartCampaignSetting.business_location_id
SmartCampaignSetting.business_profile_location
ManualCpa
MaximizeConversions
AssetSource
Asset
CustomerAsset
CampaignAsset
AdGroupAsset
DateSpecificRuleUserListInfo
RuleBasedUserListInfo
MaximizeConversions.target_cpa
MaximizeConversions.target_cpa_micros
AccessibleBiddingStrategy
target_cpa_micros
特に記載のない限り、下記の変更は Android、Chrome OS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能の詳細については、リンクまたは ChromeStatus.com の一覧でご確認ください。2022 年 6 月 23 日の時点で Chrome 104 はベータ版です。PC 向けの最新版は Google.com で、Android では Google Play ストアでダウンロードできます。
PC 版の Chrome で、セルフキャプチャした動画トラックをトリミングできるようになります。ウェブアプリでは、getDisplayMedia() を使ってタブを動画でキャプチャすることができます。ウェブアプリでリージョン キャプチャを使うと、トラックをトリミングしてコンテンツの一部を削除できます。通常、この機能は、リモートに共有する前に利用します。
getDisplayMedia()
たとえば、ビデオ会議が組み込まれた生産性向上ウェブアプリがあるとします。ウェブアプリのビデオ会議で画面の一部(下の図の赤線部分)をトリミングすることで、映像がループする現象を回避できます。詳細については、リージョン キャプチャでタブ共有を改善するをご覧ください。
メディアクエリを使うとレスポンシブ デザインを実現できます。また、ビューポートの最小サイズや最大サイズを確認できるレンジ機能は、メディアクエリを使っているサイトの約 80% で利用されています。
メディアクエリ レベル 4 仕様には、このレンジ クエリの新構文が含まれており、通常の算術比較演算子を使って範囲を記述できるようになっています。また、論理演算子 or および not、ネスト、"unknown" の評価機能もサポートされます。たとえば、これまでのメディアクエリは次のように記述されていました。
or
not
@media (min-width: 400px) { … }
これを、次のように記述できるようになります。
@media (width >= 400px) { … }
詳細については、Chrome 104 のレンジ メディアクエリの新構文をご覧ください。
このバージョンの Chromium では、以下のオリジン トライアルがサポートされます。オリジン トライアルとして新機能を試して、ユーザビリティ、実用性、有効性についてのフィードバックをウェブ標準コミュニティに提供することができます。以下の項目を含め、現在 Chromium でサポートされているオリジン トライアルに登録するには、Chrome オリジン トライアル ダッシュボードをご覧ください。Chrome のオリジン トライアルの詳細については、ウェブ デベロッパーのためのオリジン トライアル ガイドをご覧ください。Microsoft Edge は、Chrome とは別に独自のオリジン トライアルを行っています。詳細については、Microsoft Edge オリジン トライアル デベロッパー コンソールをご覧ください。
focusgroup CSS プロパティを使うと、キーボードの矢印キーを使ってフォーカス可能な要素間でフォーカスを移動する操作を改善できます。ブラウザにこの機能を追加することで、整合性、ユーザー補助、相互運用性に欠けるカスタム ソリューションを使うことなく、フォーカス操作を制御できるようになります。Microsoft Edge のオリジン トライアルにはこちらから登録できます。このトライアルは、107 まで行われる予定です。
focusgroup
Secure Payment Confirmation において、今後の購入を簡単にするためにクレジット カードのデータを保存する機能をオプトアウトできるようになります。この新機能を使うには、PaymentRequest() コンストラクタの最初のパラメータとして渡す methodData.data で、showOptOut を true に設定します。次に例を示します。
PaymentRequest()
methodData.data
showOptOut
true
const methodata = [{ … data: { … showOptOut: true … } }]; const request = new PaymentRequest(methodData, details);
実際の例は、デモでご覧いただけます。このオリジン トライアルにはこちらから登録できます。このトライアルは、Chrome 106 まで行われる予定です。
Shared Element Transition を使うと、シングルページ アプリケーション(SPA)で洗練された画面遷移を作成できます。見栄えのよい画面遷移を最小限の開発作業で作成でき、デフォルトのアニメーション プロパティを使うことも、独自の遷移効果をカスタマイズして希望どおりの画面遷移を実現することもできます。画面遷移は CSS プロパティを使って宣言的に設定します。詳細については、Shared Element Transition をご覧ください。オリジン トライアルへの登録は、ダッシュボードから行うことができます。
Chrome で以前にオリジン トライアルが行われていた以下の機能は、現在デフォルトで有効化されています。
推測ルールは、ウェブ コンテンツで特定の URL のプリフェッチまたはプリレンダリングを許可する仕組みを提供します。次に例を示します。
<script type="speculationrules"> { "prefetch": [ {"source": "list", "urls": ["/weather/kitchener", "/weather/seattle", "/weather/tokyo"]} ] } </script>
ウェブバンドルによるサブリソースの読み込みは、多数のリソースを効率的に読み込む方法です。この機能を使うには、特定のリソースが特定の URL でウェブバンドルから提供されることをウェブページで宣言します。次に例を示します。
<script type="webbundle"> { "source": "https://example.com/dir/subresources.wbn", "resources": ["https://example.com/dir/a.js", "https://example.com/dir/b.js", "https://example.com/dir/c.png"] } </script>
ウェブバンドルの詳しい作成方法については、ウェブバンドルを使ってみるをご覧ください。ウェブバンドルによるサブリソースの読み込みの詳細については、ウェブバンドルによるサブリソースの読み込みのオリジン トライアルをご覧ください。
PC でウェブアプリのクライアント領域を拡張し、タイトルバー領域を含むウィンドウ全体を覆うことができるようになりました。その場合、ウィンドウ コントロール ボタン(閉じる、最大化 / 復元、最小化)はクライアント領域の上に重なって表示されます。ウェブアプリのデベロッパーは、ウィンドウ コントロール オーバーレイを除くウィンドウ全体の描画と入力ハンドリングをする必要があります。この機能を使うと、デベロッパーはインストールされた PC ウェブアプリをプラットフォームのアプリのように見せることができます。
明示的に Expires / Max-Age 属性を指定して Cookie を設定する場合、400 日を超える日付は設定できなくなります。これまでは制限がなかったので、有効期限が数千年の Cookie も可能でした。これは、仕様の変更に従ったものです。400 日は、13 か月に近いきりのいい数であることから選ばれました。これだけの期間があれば、ほぼ 1 年に 1 度しかアクセスしないサイト(健康保険の給付金を選ぶサイトなど)も問題なく動作します。
object-view-box プロパティを使うと、イメージの一部を指定して、置換対象となる要素のコンテンツ ボックスに描画できます。これにより、CSS シャドウのような適切な ink-overflow 動作を維持しながら、カスタムのグローやシャドウを適用したイメージを作成できるようになります。詳細については、CSS object-view-box プロパティの紹介をご覧ください。
object-view-box
ink-overflow
全画面表示機能の委譲をすると、ある Window から別の信頼する Window に requestFullscreen() を呼び出す機能を移管することができます。これは、送信元の Window がユーザーによって一時的にアクティブ化され、それが解除された後に行われます。この機能は、Chrome 100 に含まれる汎用委譲メカニズムに基づいています。
requestFullscreen()
全画面表示コンパニオン ウィンドウを使うと、ユーザーが 1 度アクティブ化するだけで、全画面表示コンテンツとポップアップ ウィンドウを別の画面に配置できます。デモが公開されており、ソースコードは GitHub にあります。
Web Bluetooth をパーミッション ポリシーで制御できるようになります。トークンの名前は "bluetooth" で、デフォルトの許可リストは 'self' です。
"bluetooth"
'self'
overflow-clip-margin プロパティは、要素のコンテンツがクリッピングされずに描画できる範囲を指定します。この機能により、visual-box 値を使って参照ボックスを設定できるようになります。この参照ボックスが、コンテンツをクリッピングするオーバーフロー クリップのエッジを定義します。
overflow-clip-margin
visual-box
ウェブ カスタム フォーマット機能により、標準化されたウェブ カスタム フォーマットを使って、サニタイズされていない任意のペイロードを読み書きできるようになります。また、一部の限定された OS 固有のフォーマットを読み書きすることもできます(以前のアプリをサポートするため)。コンテンツがウェブからのものであることを示すため、ブラウザはクリップボードのフォーマットの名前を標準化された方法で難読化します。そのため、プラットフォームのアプリケーションは、サニタイズされていないコンテンツを受け入れるかどうかを選択できます。
オペレーティング システムのクリップボードを通してウェブとプラットフォーム アプリケーションの間でデータ ペイロードを交換したいウェブアプリ デベロッパーもいるかもしれません。Clipboard API は、特によく使われる標準データタイプ(テキスト、イメージ、リッチテキスト)をすべてのプラットフォームでサポートしています。ただし、この API はロングテールな特殊フォーマットまでは対応していません。特に、現在のウェブ プラットフォームでは、カスタム フォーマット、TIFF(大型イメージ フォーマット)などの非ウェブ標準フォーマット、docx(ドキュメント フォーマット)などの独自フォーマットはサポートされません。
docx
仕様に従い、Chromium の WebGL 実装で以下の指定ができるようになります。
以前のバージョンの Chrome では、両方とも既定の sRGB となっていました。現在のバージョンより、"display-p3" も利用できるようになります。
このバージョンの Chrome では、以下のサポートの終了と機能の削除が行われます。現在サポートが終了している機能と以前に削除された機能のリストは、ChromeStatus.com をご覧ください。
iframe はファイルシステム URL に移動することができなくなります。トップフレームのファイルシステム URL への移動は、Chrome 68 で削除されています。
4 つのクライアント ヒント(dpr、width、viewport-width、device-memory)にはデフォルトの許可リスト self がありますが、Android では仕様とは異なり、デフォルトの許可リスト * があるかのように動作します。この点が修正され、これらのヒントで明示的な委譲が必須となるため、Android でのプライバシーが改善されます。
dpr
width
viewport-width
device-memory
self
*
Chrome で以前にセキュリティ鍵を操作するために使われていた U2F API のサポートが終了します。U2F セキュリティ鍵自体は非推奨ではなく、今後も動作し続けます。
影響を受けるサイトは、Web Authentication API に移行する必要があります。もともと U2F API で登録された認証情報は、ウェブ認証経由でチャレンジできます。U2F API でサポートされる USB セキュリティ鍵も、Web Authentication API のサポート対象です。
U2F は Chrome オリジナルのセキュリティ鍵 API で、フィッシングに強い 2 要素認証システムを構築するために、サイトから USB セキュリティ鍵に公開鍵認証情報を登録して、チャレンジできるようにします。U2F はオープンなウェブ標準になることはなく、Web Authentication API(Chrome 67 でリリース)に取り込まれました。Chrome は FIDO U2F JavaScript API を直接サポートすることはありませんでしたが、同等の機能を持つ chrome.runtime.sendMessage() メソッドを提供する Cryptotoken と呼ばれるコンポーネント拡張機能を公開しました。U2F と Cryptotoken は確実にメンテナンス モードに入っており、ここ 2 年間にわたって Web Authentication API への移行が推奨されています。
chrome.runtime.sendMessage()
先月グローバル アクセシビリティ アウェアネス デーを迎えたことにちなみ、昨年の取り組みからの進捗状況と、Maps JavaScript API と Maps Embed API のユーザー補助機能の向上に関する最近の更新情報についてお知らせします。
Google Cloud は昨年より Embed API の根本的な改善に焦点を絞り、「タブ」の順序、キーボードとスクリーン リーダーのインタラクティブな機能、ユーザー補助ラベルの追加、各種マップ コントロールのカラー コントラストの強調といった改善に取り組んできました。このような改善により、目の不自由な方に加え、スクリーン リーダーやキーボード ナビゲーションを使うすべての方に、よりインクルーシブなマップをご利用いただけるようになります。この記事では、これまでに実現できた改善点の詳細をいくつかご紹介します。
ハイ コントラスト モードのマップも改善し、一部のボタンとチェックボックスを見やすく、認識しやすくしました。このために、マップがハイ コントラストの設定に合うようにコードベースの CSS に変更を加えました。
また、マップで特に使用される UI コンポーネントである情報ウィンドウ(InfoWindow)のさらなる改善にも引き続き取り組みました。デベロッパーはユーザー補助ラベルを指定して、情報ウィンドウが表示されているときにフォーカスするようプログラムで設定できるようになりました。
const infoWindow = new google.maps.InfoWindow({
ariaLabel: 'Hello Accessibility',
content: '<h2>Hello Accessibility!</h2>',
});
infoWindow.addListener('visible', () => {
infoWindow.focus();
infoWindow.open({
anchor: marker,
shouldFocus: false,
最後に、キーボードでのマーカー操作を支援するためにスクリーン リーダー向けの使用手順を追加しました。この機能は、初めて利用するユーザーで、キーボードを使ってインタラクティブなマーカー(登録したクリック イベント リスナーがある場合)を移動する方法についてご存知ない方に特に便利です。マーカーをより使いやすくする方法について詳しくは、「マーカーをアクセス可能にする」ガイドと「マーカーのユーザー補助機能」コードサンプルをご覧ください。
新たに改善した機能をお試しいただき、変更点に関するフィードバックや新しいバグの報告にご協力いただけますと幸いです。それらを参考にして、最も影響が大きい領域に優先して対応してまいります。皆様のウェブサイトに影響する既存のバグに [+1] で投票するか、新しいバグレポートを提出してください。
ユーザー補助機能は、さまざまなユーザーやコミュニティに多様な影響を与える複雑なトピックです。お客様のフィードバックは、Google Maps Platform の機能を誰でも利用できるようにする取り組みの指針として活用されます。Maps JavaScript API と Maps Embed API のユーザー補助機能や改善点の最新情報もご確認ください。
ウェブでは毎日、世界中の何百万人ものユーザーが Maps JavaScript API によって提供される Google マップの基本地図を利用しています。Google の目標は、多くのユーザーに受け入れられる主題図を容易に作成するために必要となるツールをデベロッパーに提供することです。
Google Maps Platform チームは、Maps JavaScript と Maps Embed の UI と API のユーザー補助機能の向上に向けて、まだまだできることがあると認識しています。詳細については、Maps JavaScript API と Maps Embed API の更新状況は、リリースノート ページでご確認ください。
Google Maps Platform に関する詳しい情報はこちらをご覧ください。ご質問やフィードバックはページ右上の「お問い合わせ」より承っております。
Google I/O 2022 にて、Firebase で行ってきたアップデートについてお知らせできるのが楽しみです。過去数年間で、アプリは私たちの日々の生活に欠かせないものになりました。なぜなら、毎日のタスクがシンプルになるだけでなく、アプリは私たちに情報を提供し、娯楽を与え、つながりをもたらしてくれるからです。だからこそ私たちは、皆さんに必要なツールとリソースを提供することで、ユーザーに愛用してもらえる必携のアプリを構築、拡大できるようにしています。
スタートアップ企業から大企業まで、300 万人以上のデベロッパーが Firebase を使って数十億人のユーザーにリーチし、魅力的なサービスを提供しています。Google は、Firebase を開発者の皆さんのニーズに適したプラットフォームに進化しようとしています。その原動力になっているのは、皆さんから寄せられる信頼です。今年の Google I/O では、アプリ開発を加速し、安心してアプリを運営できるように、Firebase とよく使われる Google デベロッパー プロダクトとの統合を強化し、このプラットフォームとオープンなツールのエコシステムとの連携を改善します。Google の目標は、皆さんにシームレスで安全な体験を提供し、ユーザーやビジネスにとってできる限り最適なアプリを集中して作れるようにすることです。本記事では新機能について説明しますが、テクニカル セッションや Codelab も漏らさずにご確認ください。また、Firebase のバーチャル Adventure ドームに立ち寄ることもできます!
時間がない方は、特定のセクションにジャンプできます。そうでない方は、ぜひ記事全体をお読みください。
自信を持ってアプリを運営し、充実したエクスペリエンスを提供する
Firebase はフルマネージドなインフラストラクチャを提供するので、皆さんは一番重要なことに集中し、短時間で安全かつ効率的にアプリを開発、運営できます。
カスタマイズの幅を広げる新しい拡張機能
Firebase Extensions は、コードのバンドルをあらかじめパッケージ化したものです。さまざまなサードパーティ API を学ばなくても、簡単に最低限のコードで、皆さんが信頼する Google などの企業が提供するコア機能をアプリに追加できます。今回、拡張機能の導入をお知らせします。この機能を利用すると、拡張機能のランタイムに独自のコードをプラグインし、機能を拡張できます。拡張機能によって、統合機能を土台として、その上にカスタムのユースケースやビジネス ワークフローを構築できるようになります。たとえば、サブスクリプションの課金に Run Payments with Stripe 拡張機能を使っている場合、独自のカスタムコードを記述して、お客様が支払いをキャンセルしたときに割引を提示することができます。
さらに、マーケティング、検索、決済処理を行うサードパーティ拡張機能のリリースについてもお知らせします。Snap による 2 つの新しい拡張機能を使うと、Snap にログインして、Snap のストーリーでプロダクトを宣伝できます。新しい Stream 拡張機能を使うと、アプリ内でチャットを実装し、リアルタイムでユーザーに応答できます。RevenueCat は、アプリ内サブスクリプションの管理に便利です。また、Typesense は、Cloud Firestore のインデックス作成や検索をオープンソースで実装したい場合に選択肢となります。
パートナーが作成した新しい拡張機能。はるかに短い時間で、アプリにマーケティング、検索、決済処理を追加できる
さらに、すべての拡張機能がエミュレータ スイートで利用できるようになっています。そのため、安全なローカル環境でテストしたり、機能の理解を深めたり、容易に調整したりできます。拡張機能をインストールするには、Google のウェブサイトか Firebase コンソールで Extensions ページを開いてください!
多くの開発者は、パフォーマンスがよく、スケーラブルで見栄えのよいウェブアプリを開発してデプロイするために、React、Angular、Vue、Next.js、Nuxt などのウェブ フレームワークを使っています。皆さんからは、Firebase でこういったアプリをもっと簡単にデプロイできるようにしてもらいたいというフィードバックが寄せられていました。そこで、firebase deploy コマンド 1 つで最新のウェブアプリをデプロイできるようにしました。これにより、バックエンドの詳細を気にする時間を減らし、ウェブアプリの機能開発にかける時間を増やせるようになります。Firebase Hosting にウェブアプリをデプロイすれば、世界規模の高速な CDN、すぐに利用できるセキュリティ、このプラットフォームならではの従来からの使いやすさをフル活用できるからです。最新の Firebase CLI をダウンロードすると、さっそく今日から Next.js と Angular Universal のデベロッパー プレビュー版を試すことができます。対応フレームワークは、今後さらに増える予定です。
Flutter は Google のオープンソース フレームワークであり、1 つのコードベースから、ネイティブ コンパイルが可能な美しいマルチプラットフォーム アプリを構築できます。これは、クロスプラットフォーム バックエンド サービスである Firebase にとって自然な補完です。Flutter のすべての Firebase プラグインは、一般提供版になっています。また、安心して Flutter と Firebase を併用できるように、公式 Flutter ドキュメント、スニペット、カスタマー サポートも追加しています。
さらに、Flutter アプリの Crashlytics サポートを強化して安定性の問題をすばやく追跡、監視、修正できるように、3 つの大きなアップデートを行いました。
アプリに最新バージョンの "Crashlytics for Flutter" プラグインを追加すると、以上のアップデートを利用できます。詳しくは、ドキュメントをご覧ください。
最新の Swift 言語をすべて利用できるように Firebase をアップデートしています。そのため、Apple デベロッパーが Firebase プラットフォームで最新の Swift 機能を利用できるようになります。たとえば、Codable を使って安全でコンパクトなコードにしたり、Firebase の async/await API を使ってエラーにつながりやすいコールバック ブロックのネストを解消したりできます。次の例では、20 行のコードがわずか 4 行になっています。
SwiftUI を使っている方は、カスタムの View Modifier を使ってアナリティクス用にビューを識別したり、FirestoreQuery プロパティ ラッパーを使ってビューを Firestore のデータに簡単にバインドし、リアルタイムで更新したりできます。コミュニティからのありがたい貢献のおかげで、Firebase 8 SDK リリースの Swift サポートのロールアウトはもう始まっています。Firebase 9 SDK リリースのサポートも、今年を通して拡大を続ける予定です。プロジェクトにライブラリをインストールする方法を知りたい方は、GitHub リポジトリをご覧ください。
Firebase App Check は、不正課金、フィッシング、アプリの偽装、データの盗難や汚染といった脅威からバックエンド インフラストラクチャを守ります。これは、着信するトラフィックが正規のデバイスにインストールされたアプリから来ていることを証明し、有効な認証情報を持たないトラフィックをブロックすることで実現しています。この度、App Check が Android デバイスの最も高度なアプリの最新構成証明プロバイダである Play Integrity API と連携するようになり、不正使用防止シグナルがさらに増加したことをお知らせします。さらに、App Check はベータ版を卒業して一般提供版になり、主要なコンプライアンスやセキュリティ標準の認証を取得しています。Firebase コンソールで App Check にアプリを登録し、アプリやリソースを保護しましょう。App Check の詳細については、ドキュメントをご覧ください。
一般提供版になった App Check。Play Integrity API と連携し、Android デバイスに追加のセキュリティを提供する
Firebase では、実用的な知見と使いやすいツールが提供されるので、リリース時もその後も、アプリのエクスペリエンスを最適化する判断を自信を持って行うことができます。
見逃していたバグがユーザーに発見され、アプリストアに否定的なレビューが掲載されないようにするには、一般公開リリースの前にアプリをテストすることが重要です。Firebase App Distribution は、リリース前バージョンのアプリを信頼できるテスターに配布し、リリース前に貴重なフィードバックを得る際に役立ちます。App Distribution は、ベータ版を卒業して一般提供版になっています。また、テスト ワークフローがさらに効率化され、ニーズに合わせてカスタマイズできる新機能も搭載されています。具体的には、コンソールと新しい一般公開 API の両方に、シンプルになったグループ アクセス、リリースの自動削除、一括テスター管理を追加しています。新しい Android SDK では、新しいバージョンが利用できるようになったことをアプリ内から直接テスターに通知できるので、テスターは常に最新版を使い、最も重要なバージョンのフィードバックを提供できます。使ってみるには、Android と iOS のドキュメントをご覧ください。
Firebase Performance Monitoring はアプリのパフォーマンスについてのデータを収集して提示してくれるので、アプリで厳密に何が起きているのかや、アプリが遅いとユーザーが感じたタイミングをユーザー視点で把握することができます。数か月前には、アプリの起動時間に影響する可能性があるレイテンシの問題についてお知らせできるように、パフォーマンス アラートをリリースしました。この機能の一部がベータ版を卒業して一般提供版になるにあたり、アプリの重要な部分の大半で、カスタムコードのトレース、ネットワーク リクエスト、画面レンダリング、ウェブトレースの新規アラートを設定し、そのしきい値をカスタマイズできるようになります。パフォーマンス アラートを使うと、ユーザーに問題が発生したときに最初に知ることができるので、安心してアプリをリリースできます。さっそくドキュメントの手順に従ってアラートを設定してみてください。
Performance Monitoring のリアルタイム アラートを使うと、設定したしきい値に基づき、パフォーマンスやレイテンシの問題について通知を受け取ることができる
Firebase Crashlytics を使うと、アプリの安定性を把握できるので、バグがたくさんのユーザーに影響を与える前に、バグの追跡や優先順位付け、修正ができます。ただし、リアルタイムの詳細な障害レポートがあっても、トラブルシューティングをする場合は、Crashlytics コンソールと IDE を行き来してエラーを見つけ、デバッグしなければならないのが一般的です。これがストレスのたまる操作であることは承知しています。ブラウザでスタック トレースを確認し、コードをあちこち移動して、ブレークポイントを設定すべき場所を探すのは難しいことです。そこで、Android Studio に新しい App Quality Insights ウィンドウを導入します。これを使うと、ローカル Android Studio プロジェクトのコンテキストから Crashlytics で報告された問題を見つけ、調査して再現できます。さらに、障害レポートに登場した問題のある行のコードを強調してくれるので、機能を開発しながら問題を修正できます。
この機能を一足先に Adobe に紹介したところ、次のような反応でした。
「この新しい IDE 連携はもう手放せません。とても悩ましかった問題の 1 つを直接解消してくれます。余計な時間を費やして、コンソールからクラッシュを検索してコードベースと結びつける必要はもうありません」- Adobe Acrobat
「この新しい IDE 連携はもう手放せません。とても悩ましかった問題の 1 つを直接解消してくれます。余計な時間を費やして、コンソールからクラッシュを検索してコードベースと結びつける必要はもうありません」
- Adobe Acrobat
最新の Android Studio Electric Eel のカナリア版をダウンロードして、さっそくこの機能をお試しください。
この機能をベースに、Crashlytics と Google Play を連携させ、Crashlytics の障害レポートを Play トラックでフィルタリングできるようにしています。これにより、クラッシュ イベントが内部テスト、オープンテスト、本番環境のどれによるものかを簡単に識別できます。この機能を使うには、Crashlytics ダッシュボードを開いてアプリを Google Play にリンクします。
私たちは、最短距離で成功に向かうシームレスで安全なエンドツーエンドの開発エクスペリエンスを提供したいと考えています。それを実現するため、Firebase と Google でとりわけ人気のあるデベロッパー プロダクトとの統合を強化し、このプラットフォームとオープンなツールのエコシステムとの連携を改善することに注力しています。皆さんが開発のどのステージにあっても、Firebase がアプリ開発の困難な部分に対応してくれるので、皆さんは最高のアプリを作ることに集中できます。以上でお知らせした内容についてもっと詳しく知りたい方は、Google I/O 2022 のテクニカル セッションや Codelab、デモをご覧ください。次にリリースされる予定の機能を一足先に見てみたい方は、アルファ版プログラムにご参加ください。
そしていつものように、YouTube チャンネルに登録したり、ブログや Twitter をフォローしたりすると、すべての Firebase プロダクトの使用に関する最新ニュースやベスト プラクティスを受け取ることができます。
Google I/O 基調講演の一環として、Flutter 3 のリリースについて発表いたします。Flutter 3 では、macOS と Linux デスクトップ アプリのサポート提供、Firebase インテグレーションへの改善、生産性とパフォーマンスの新たな特長、Apple Silicon サポートなど、モバイル中心からマルチプラットフォームのフレームワークへのロードマップが継続しています。
Flutter は、ウェブの開発手法と、これまでは主にゲームに使われていたハードウェア アクセラレーションによるグラフィック レンダリングとピクセルレベルのコントロールを組み合わせることで、アプリ開発を向上する目的で作られました。Flutter 1.0 ベータ版以降からのこの 4 年間でこれらの基盤上への構築を徐々に進め、新しいフレームワーク機能やウィジェット、基盤となるプラットフォームとの緊密なインテグレーション、パッケージの豊富なライブラリや、さまざまなパフォーマンス、ツールの改善を追加してきました。
Flutter の成長に伴い、多数のアプリ開発者が Flutter でアプリを構築するようになりました。現時点で、Flutter を使用して公開されたアプリは 500,000 を超えています。data.ai などの調査会社による分析や一般の評価では、Flutter はさまざまな分野で幅広いお客様に利用されており、その用途は WeChat のようなソーシャル アプリから Betterment や Nubank などの金融・バンキング アプリ、SHEIN や trip.com などの商用アプリから Fastic や Tabcorp などのライフスタイル アプリ、My BMW などのコンパニオン アプリからブラジル政府などの公的機関に及びます。
開発者の皆様からは、Flutter は多数のプラットフォームで優れたアプリの迅速な構築に役立つとのフィードバックをいただいています。最新のユーザーの調査によると、
Sonos による最新のブログ投稿では、Sonos がこの 2 つ目で強調している、セットアップ エクスペリエンスの刷新について述べています。
「これまで当社のチームが提供してきたものとは違い、Flutter が「プレミアム」のレベルを大幅に高めたといっても過言ではありません。デザイナーにとって最も重要なことは、新しい UI を簡単に構築できることです。それにより、ダメな仕様を却下することに時間を取られることなく、取り組みの繰り返しに時間をかけられます。それに価値があると認められたので、Flutter を試してみたのです。」
この度、Flutter のサポート対象のプラットフォームを拡充した Flutter 3 を紹介します。Flutter 3 では 1 つのコードベースから 6 つのプラットフォームに対応したアプリが構築きるので、開発リソースが少ないスタートアップ企業であってもアイデアをより多くのユーザーに届けることができます。
前回のリリースでは、iOS と Android にウェブと Windows サポートを追加しましたが、Flutter 3 では macOS と Linux アプリの安定サポートを追加します。プラットフォーム サポートの追加には、ピクセルのレンダリング以上のものが必要です。例えば、入力とインタラクションの新しいモデル、コンパイルとビルドのサポート、ユーザービリティと国際化、プラットフォーム特有のインテグレーションなどがあります。今回のリリースの目標は、基盤となるオペレーティング システムを最大限活用しつつ柔軟性をもたらすこと、またできる限り多数の UI とロジックを共有することです。
macOS に関しては、Google は Universal Binary を利用し、Intel と Apple シリコンの両方のサポートに投資しています。Universal Binary サポートにより、アプリを両方のアーキテクチャでネイティブに実行される実行可能ファイルにパッケージ化できます。Linux では、Canonical と Google が協力して、高度に統合された、最善の開発オプションを提供しています。
Flutter が優れたデスクトップ エクスペリエンスを実現する例として、今回、ベータ版としてリリースする Superlist があります。Superlist は、新しいタスク一覧と個人の計画にリスト、タスク、フリーフォームのコンテンツを組み込んだ新しいアプリによってコラボレーションを加速します。Superlist チームは、迅速かつ信頼できるデスクトップ エクスペリエンスを実現できる点から Flutter を選択しました。そして、チームの今日までの実績から、この選択が有意義であったことが証明されています。
Flutter 3 は、パフォーマンスの向上、Material You のサポート、生産性の向上など、基盤にもさまざまな改善が行われています。
このバージョンの Flutter では前述の取り組みに加え、開発用として Apple シリコンに完全にネイティブ対応しています。Flutter は M1 対応の Apple デバイスのリリース時点から互換性がありますが、現在では、Dart の Apple シリコン サポートを活用して、M1 対応のデバイスでのコンパイルのスピードをアップし、macOS アプリの Universal Binary をサポートしています。
このリリースでは、マテリアル デザイン 3 対応もほぼ完成しており、デベロッパーは適応性の高いクロスプラットフォームのデザイン システムによってダイナミックなカラーパターンや最新のビジュアル コンポーネントを活用できます。
詳細な技術情報のブログ投稿では、この他にも Flutter 3 のさまざまな新しい特長について触れています。
Flutter は、生産性が高く、移植可能なマルチプラットフォーム開発向けの言語である Dart を利用しています。今回の Dart での作業には、ボイラープレートを減少して可読性を高める新しい言語機能、試験運用版 RISC-V のサポート、アップグレード版の linter、および新しいドキュメントが含まれます。Dart 2.17 での新たな改善点について詳しくは、詳細に関するブログをご覧ください。
もちろん、アプリの構築には UI フレームワーク以上のことが含まれます。アプリのパブリッシャーは、認証、データ ストレージ、クラウド機能、デバイステストなどのサービスをはじめとする、アプリの構築、リリース、運用に役立つさまざまなツールを必要としています。Flutter をサポートするサービスは Sentry、AppWrite、AWS Amplify など多数あります。
Google のアプリサービス用には Firebase があり、SlashData によるデベロッパー ベンチマーク調査によると、Flutter デベロッパーの 63% がアプリに Firebase を使用しているとのことです。そのため、最近の数リリースでは Firebase を利用して、最大級のインテグレーションとして Flutter を拡張および統合しています。たとえば、Flutter の Firebase プラグインの 1.0 までには、ドキュメントやツールを改善し、FlutterFire UI など認証やプロファイル画面で再利用できる UI を備えた新しいウィジェットを追加しました。
また、Firebase でよく利用されるリアルタイムの障害レポート サービス Crashlytics による Flutter アプリのサポートも大幅に改善しました。Flutter Crashlytics プラグインが更新されたことにより、重大なエラーをリアルタイムで追跡し、他の iOS や Android デベロッパーが利用しているものと同じ機能を活用できます。これには重要なアラートや「クラッシュしていないユーザー」などの指標があり、アプリの安定性を常に把握できます。Crashlytics の分析パイプラインがアップグレードされ、Flutter クラッシュのクラスタ化が改善され、問題のトリアージ、優先順位付け、解決の速度が向上しました。また、プラグインのセットアップ プロセスもスムーズになったため、Crashlytics を Dart コードから直接、わずか数ステップで起動して実行できるようになりました。
ほとんどのデベロッパーにとって、Flutter はアプリのフレームワークです。しかし、現在はカジュアル ゲーム開発のコミュニティも拡大しつつあり、Flutter のハードウェア アクセラレーションによるグラフィックのサポートや、Flame などのオープンソースのゲームエンジンが活用されています。カジュアル ゲーム デベロッパーの皆様に簡単に始めていただくため、今年の I/O では、テンプレートのスターター キットとベスト プラクティスに広告のクレジットとクラウド サービスを加えたカジュアル ゲーム ツールキットを発表します。
Flutter は高負荷の 3D アクション ゲーム向けに設計されているわけではありませんが、数億ものユーザーが利用している PUBG Mobile などの人気のあるゲームでは、ゲーム以外の UI には Flutter を利用しています。そして I/O では、Firebase と Flutter のウェブサポートを利用するピンボール ゲームを制作し、技術の進歩を紹介します。I/O ピンボールでは、カスタム デザインしたテーブルの周りを人気の Google のマスコットである Flutter の Dash、Firebase の Sparky、Android ロボット、Chrome の恐竜が囲んでおり、他の人と競って高いスコアを目指します。Flutter の多様性を紹介するには最適なゲームでしょう。
Flutter が優れている点の 1 つは、単なる Google の製品ではなく、「みんなにとっての」製品であることです。オープンソースとは、誰もが参加し、貢献できることを意味します。新しいコードやドキュメントの提供、コアのフレームワークに新たな能力をプラスするパッケージの作成、お互いに学ぶための本の執筆やトレーニング コースの設定、あるいはイベントの企画やユーザー グループの設立など、さまざまなことができます。
コミュニティを最もよく表すものとして、近頃 DevPost との提携によって Puzzle Hack チャレンジを開催し、デベロッパーの皆様に伝統的なスライドパズルを Flutter で再現してもらい、そのスキルを証明する場を設けました。ここではウェブ、デスクトップ、そしてモバイルがどのように結びつくかがわかりやすく紹介されました。ゲームはオンラインでも、店頭でもプレイできるようになったのです。
優れた作品と優勝者の紹介を動画にまとめました。ご覧ください。
Flutter をご支援いただきありがとうございました。引き続き Flutter 3 をご利用ください。