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 をご利用ください。