What’s new in Flutter 3.44【日本語訳】

Table of Contents

訳者 はじめに

Khanh Nguyenさんによる「What’s new in Flutter 3.44」(原文)の日本語訳です。勝手に訳して、後から許可を取ります(笑)

はじめに

Google I/O 2026:開発者の可能性を広げる

Flutter 3.44がリリースされました。これは大きなアップデートです!今回のリリースは、Flutterの歴史における重要な節目となります。Android向けのHybrid Composition++、iOS/macOSの新しいデフォルトパッケージマネージャーとしてのSwift Package Manager、そしてImpeller向けのVulkanサポートの改善などが含まれています。また、Canonicalを新たなリードメンテナとして迎え、マルチウィンドウデスクトップサポートのプレビューを開始するとともに、MaterialとCupertinoをコアフレームワークから切り離すことで、アーキテクチャの大幅な進化に着手しています。GenUl による主体的なユーザー体験のための UX を再定義し、Agentic Hot Reload や Dart & Flutter Agent Skills を通じて開発者体験を一新します。Flutter は、2026年型トヨタ RAV4 のマルチメディアシステムから、近日公開予定の LG webOS SDK に至るまで、あらゆる場所での次世代アプリを実現します。これらのニュースやアップデートを皆様と共有できることを大変嬉しく思います。Flutter 3.44 へようこそ!


Flutterは、どこにでも、毎日、誰もが作り、誰もが使うものです。

今年のGoogle I/OにおけるFlutterのテーマは、「Flutterは、どこにでも、毎日、誰もが作り、誰もが使うものです」です。

「どこにでも、毎日」というテーマは、ある火曜日にスマホのアプリを使っていた時に気づいたことから生まれました:
ベイエリアでの食事記録から、日本滞在中のショッピングに至るまで、Flutterアプリは生活のあらゆる場面に溶け込んでいました。数字もこれを裏付けています。pub.devのエコシステムはかつてないほど人気を集めており、パッケージのダウンロード数は13億回を超え、
。Flutterは現在、主要なアプリストアの両方でモバイル開発用SDKとして2番目に人気があり、月間開発者数は150万人を超え、わずか1年で50%増加しました。

「すべての人によって、すべての人のために」という言葉は、Google I/Oの共同司会者であるケイト・ロベットと、私たちのグローバルコミュニティの喜びについて語り合った際の言葉を反映しています。1,700名を超える献身的で情熱的なコントリビューターこそが、この進歩の原動力であり、過去1年間でコアリポジトリに5,800件の変更を反映させてきました。

今回のリリースサイクルだけでも、178名のユニークなコントリビューターから972件のコミットが反映され、そのうち61名の新規コントリビューターが初めてのコミットを行いました。私たちのコミュニティは依然としてFlutterの生命線であり、Flutterが真に「すべての人によって、すべての人のために」作られていることを保証しています。ありがとうございます!

ご紹介すべき変更点は数多くあります。Dart 3.12 リリースの変更点もぜひご確認ください。

開発者体験

Flutter でのアプリ開発体験を、可能な限り生産的なものにしたいと考えています。

手作業でコードを書く場合でも、お気に入りのコーディングアシスタントを使って反復開発を行う場合でも、Flutter でのアプリ開発体験を可能な限り生産的なものにしたいと考えています。今回のリリースでは、既存の開発者ツール群を改良するとともに、開発ワークフローを強化するための新しいツールを導入しています。

DevTools のパフォーマンス改善

効率を高めるためのきめ細かな分析機能を導入し、ファイルやディレクトリが多いプロジェクトの分析におけるパフォーマンスを改善しました。また、Flutter DevToolsの安定性とパフォーマンスをさらに向上させました。これには、デフォルトでWASMを使用するように変更したことも含まれており、これによりDevToolsの動作がより軽快で応答性が高くなりました。

詳細はこちら: DevTools 2.55.0 および 2.57.0

ウィジェットプレビュー(実験的機能)

このリリースでは、ウィジェットプレビュー環境のパフォーマンスがさらに向上し、新機能が追加されました:

  • プレビュー検出機能の書き換え:検出ロジックがDart Analysis Serverを利用するようになり、flutterツールのメモリ使用量が大幅に削減されました。IDEユーザーの場合、全体的なメモリ使用量は最大50%削減されるはずです。

  • プレビューのフィルタリング: グループ、名前、スクリプトおよびパッケージのURIでプレビューをフィルタリングできるようになり、多数のプレビューがあるプロジェクトでの作業が容易になりました。この貢献をしてくださったコミュニティメンバーの NamanGoyalKに感謝します!


Widget Previewsを使用すると、アプリ全体から切り離して、スタンドアロンのウィジェットを個別にプレビューできます

詳細はこちら : Flutter Widget Previewer

Rosetta不要のネイティブ Apple Silicon サポート

Apple Silicon チップを搭載した Mac 開発者は、Flutter を実行するために Rosetta 変換レイヤーをインストールする必要がなくなりました。iOS デバイス通信バイナリを含むすべての macOS コマンドラインツールが、ARM 上でネイティブに動作するように更新されました。この更新は、Apple が計画している Rosetta 変換サポートの廃止に先立って提供されるものであり、Apple ハードウェア上での開発環境の将来性を確保します。今後、 今後のFlutterのリリースでは、Intel x86搭載Macへのサポートが完全に終了する予定です。チームでまだIntelベースのMacホストを開発に使用している場合は、ハードウェアの移行計画を開始することをお勧めします。

詳細はこちら: Apple Silicon搭載MacでのIntelベースアプリの使用 (support.apple.com)

AI主導の世界における開発者体験の再構築

この1年間、DartおよびFlutterのエコシステムでは、Antigravity、Gemini CLI、Claude Code、Cursorといったエージェントベースのツールが爆発的に増加しました。これらは、開発者の役割を根本的に変革し、エージェントの設計や調整を行う存在へと進化させています。この移行を支援するため、私たちは開発者体験の基盤強化に注力し、開発ワークフローを強化する新しいツールを導入してきました。Agentic Hot Reloadによるコーディングエージェントとのシームレスな統合AI支援開発における大きな飛躍として、Agentic Hot Reloadをリリースします。MCPサーバーとお使いのコーディングエージェントが、実行中のDartおよびFlutterアプリケーションを自動的に検出し、接続するようになりました。これにより、Antigravityのようなコーディングエージェントが、すぐに実行中のアプリをホットリロードできるようになりました!AIアシスタントにUIの編集を指示すると、エージェントがコードを記述し、自動的にホットリロードを実行して結果を即座に表示します。手動での設定は一切不要です。ぜひお試しください!さらに…

  • 強化された依存関係検索:エージェントは、ローカルのpubキャッシュへのフルアクセスを必要とせずに、パッケージの依存関係内のファイルを安全に読み込み、検索できるようになりました。
  • ツールの統合:MCPツールの定義を統合し、エージェントワークフローのトークンコストを大幅に削減しました。Agentic Hot Reloadの動作をご覧ください:
  • Agentic Hot Reload:エージェントに変更を促すと、実行中のアプリに自動的に接続してホットリロードを行います

また、最近 DartおよびFlutter向けAgent Skills をリリースしました。これにより、コーディングエージェントにタスク指向の、本番環境レベルのドメイン専門知識を付与できます。これらのスキルはコーディングエージェントの能力を向上させ、推奨されるベストプラクティスに従いながら、統合テストの追加やローカライゼーションの設定などのタスクを完了する際に、トークンの節約に役立ちます。

詳細はこちら: DartおよびFlutter向けスキルの紹介DartおよびFlutter MCPサーバー

Dart & Flutter Agent Skillsは、統合テストの作成など、さまざまなタスクを完了するための手順をエージェントに段階的に指示します

Flutterであらゆる画面にAIを:次世代のAIネイティブアプリを構築する

AI駆動の機能が単純なコンテンツ要約から完全なエージェント型アシスタントへと進化する中、私たちはあらゆるプラットフォームでこれらの体験に必要なインフラストラクチャを提供するため、DartおよびFlutterエコシステムの拡大に注力しています。

Firebase AI Logic

Firebase AI Logic を使用すると、Flutter アプリからクライアントサイドで Gemini API を呼び出すことができます。

MacroFactor は、Firebase AI Logic を使用して Gemini モデルに直接接続し、そのマルチモーダル機能を活用する Flutter アプリです。私はこれを、単に写真を撮るだけで食事を記録するために使っています。これは、AI を活用して面倒な作業を、楽しげで魔法のようなユーザー体験に変えたアプリの素晴らしい例です。

Firebase AI Logicには新たにServer Prompt Templatesが追加され、アプリケーションのコードにプロンプトを直接埋め込む必要がなくなりました。

Firebase Agent Skills for Flutterが利用可能になり、フルスタックのFlutterおよびFirebaseアプリケーションをより効率的に構築するためのステップバイステップのガイダンスを提供します。

MacroFactorは、Firebase AI Logicを使用してGeminiモデルに直接API呼び出しを行い、そのマルチモーダルビジョン機能を活用して、食事記録のユーザー体験を簡素化するFlutterアプリです。

詳細はこちら: MacroFactor、Firebase、Flutter、Geminiを活用し、40万人以上のユーザー向けにAIで栄養管理に革命を起こす

Genkit Dartのプレビュー版

また、フルスタックでAIを活用したエージェント型アプリを構築するためのオープンソースフレームワーク「Genkit Dart」のプレビュー版リリースを発表できることを嬉しく思います。このフレームワークは、Google、Anthropic、OpenAIなどのプロバイダーをサポートするモデル非依存のAPIを備えています。型安全な構造化出力、ツール呼び出し、マルチターン会話、組み込みの可観測性など、プロトタイプから本番環境への移行に必要なすべての機能が含まれています。

Genkit Dartはサーバーサイドで実行できるほか、Flutterアプリ内でクライアントサイドとして実行することも可能です!

import 'package:genkit/genkit.dart';
import 'package:genkit_google_genai/genkit_google_genai.dart';

void main() async {
 final ai = Genkit(plugins: [googleAI()]);

 final response = await ai.generate(
   model: googleAI.gemini('gemini-flash-latest'),
   prompt: 'Why is Dart a great language for AI
            applications?',
 );

 print(response.text);
}

詳細はこちら: Genkit Dart: DartとFlutterでフルスタックAIアプリを構築

Gemma 3n Impact Challenge

Flutter開発者の皆さんがAIの可能性の限界を押し広げている姿を見て、私たちは大変誇りに思っています。Gemma Visionの制作者であるTommaso Giovannini氏、そして「Vite Vere」の制作者であるグイド・マランゴーニ氏に、昨年のGemma 3n Impact Challengeでの1位および2位入賞を心よりお祝い申し上げます。お二人とも、人生を変えるツールを構築するためにFlutterを選択しました:

  • Gemma Visionは、視覚障害のある方が世界を知覚するのを支援します
  • Vite Vereは、認知障害を持つ人々が日常生活のタスクを遂行できるよう支援します。

Gemma Visionの制作者であるTomasso氏、およびVite Vereの制作者であるGuido氏、おめでとうございます。お二人はGemma 3n Impact Challengeでそれぞれ1位と2位を獲得しました!

詳細はこちらGemma 3n Impact Challenge 受賞者

Gemma 4

Gemma 4が最近リリースされました。これは、高度な推論やエージェント型ワークフロー、コスト、デバイス上のデータ制約、あるいはネットワーク制約に対応するために特別に設計された、軽量なオンデバイスモデルです。そのマルチモーダル機能は素晴らしく、特にマルチステップ計画やツール呼び出しの連鎖を実行できる能力には感銘を受けました。

従来、多様なハードウェア環境においてこれらのオンデバイスモデルを管理することは複雑でした。だからこそ、私はLiteRT-LMに大きな期待を寄せています。

詳細はこちら: Gemma 4

Flutter向けLiteRT-LM

Gemma VisionとVite Vereの両方のコードを詳しく調べていたところ、どちらもpub.devで入手可能なプラグインであるflutter_gemmaを活用してGemmaと統合しているのを見て、大変刺激を受けました。

今後さらに進化していきます。まもなく flutter_gemma パッケージで、Flutter 向けの LiteRT-LM の完全なサポートが提供される予定であることをお知らせできることを嬉しく思います。

LiteRT-LMは、Googleが提供する本番環境対応の高性能オープンソース推論フレームワークです。これにより、ハードウェアの違いを抽象化し、Gemma 4のような強力なオンデバイスAIモデルをあらゆるデバイスで実行できるようになります。さらに、Flutterの6つの安定版プラットフォーム(Android、iOS、Web、Windows、Linux、macOS)すべてにおいて、GPUおよびNPUによるアクセラレーションにより最高のパフォーマンスを確保します。

詳細はこちらflutter_gemma パッケージおよび LiteRT-LM

Flutter + A2UI = GenUI

AI駆動のユーザー体験に関して言えば、マークダウンや、さらに悪いことにプレーンテキストの壁にうんざりしていることは誰もが認めるところでしょう。

Generative UI(GenUI)とは、Hatchaデモアプリで見られるように、AIが単なるテキストではなく、リアルタイムのUIを構築し、それに応答するUXパラダイムです。


Hatchaは、Flutter向けのGenUIを搭載したソーシャルイベント企画アプリです。主催者は対話形式のインタビューを通じて企画を進め、GenUIがイベントの内容や参加者に合わせて、テーマに沿った招待状、カスタマイズされたコンポーネント、企画モジュールを生成します。

この1年間、当社のGenUIチームは、新たなA2UIプロトコルを定義するプロジェクトパートナーとして、この取り組みを推進してきました。A2UIはGoogleが提供するオープンソースのプロトコルであり、エージェントとクライアントがユーザーインターフェースの構成や状態についてどのように連携するかを定義するものです。

昨年末にFlutter GenUI SDKをリリースして以来、驚異的な勢いを見せており、パッケージのダウンロード数は年初から500%増加しています。

その顕著な例が、Catagay Ulusoy氏のFinnish itGoogle Play StoreApple Store)です。このアプリは、ユーザーがフィンランド語を学べるよう独自のレッスンプランを作成するだけでなく、 各レッスンごとに最適なUIをその場で動的に生成します。先月のCloud Next Developer Keynoteをご覧になった方は、Flutter DevRelリーダーのエマ・トゥエルスキーが、このアプリとカタガイにふさわしい称賛を送る場面を目にしたかもしれません!


Google Cloud Nextのデベロッパー基調講演で、「Finnish It!」アプリを紹介するFlutter DevRelリーダーのエマ・トゥエルスキー!

詳細はこちら: genui パッケージ

ビジュアルレイアウトの実験

Google DeepMindのリー・テ・チェン氏とそのチームは、GenUI分野の先駆者でした。
このデモを覚えていますか?2023年にFlutterコミュニティで話題になった、あの赤いデバッグバナーが表示されたデモです。そう、あれはLi-Teのチームによるものでした!

彼は「What’s New in Flutter」トークに参加し、Flutterを使ってGeminiアプリの「ビジュアルレイアウト」実験を構築した経験を共有してくれました。こちらがWeb版です:


「Visual Layout」実験では、最初のユーザープロンプトから始まり、Generative UIを通じてその場でカスタマイズ・更新される情報を選択、クリック、探索するようユーザーを促しました。

彼は、なぜ自分のチームがUIツールキットとしてFlutterを選ぶ傾向にあるのかについても触れました…ヒント:それは私たち全員がFlutterを愛する理由と同じです:

  • 美しいUI
  • 生産性の高い開発体験
  • マルチプラットフォーム対応
  • GenUIに完璧に適合したアーキテクチャ(これはLi-Teの言葉であって、私の言葉ではありません!😉)

自身のGenUIプロジェクトに活用できる、彼の3つの重要なポイントは以下の通りです:

  1. AIの一貫性を保つために、意見の明確なフレームワークを活用する
  2. 信頼性の高い出力を確保するために「AI批評家」ループを利用する
  3. テンプレートを使って、スピードと制御のバランスをとる。

最後に、Li-Te氏は、単なるテキストの壁やチャットボットにとどまらず、豊かでインタラクティブ、そして楽しい体験を構築するよう私たちに呼びかけました。

詳細はこちらFlutter用GenUI SDK。ガイド付きチュートリアルをご希望の場合は、Codelabをお試しください

Androidのサポート

Googlebookおよび周辺機器のサポート

Flutterは、Geminiを搭載した新しいGooglebookノートパソコンに対応する準備がすでに整っています。FlutterはAndroidの大画面向けガイドラインをターゲットとしているため、アプリは外部ハードウェアからの入力を自然に処理します。トラックパッドによるスクロール、マウスのホバー状態、 右クリックメニュー、キーボードショートカットはデフォルトで動作します。FlutterはmacOS、Windows、Linuxにおいて成熟したデスクトップサポートを備えているため、Googlebook上でFlutterアプリは、単に画面を拡大したモバイル版の移植版のように見えるのではなく、ネイティブアプリのような操作感とレスポンスを実現します。既存のモバイルアプリも、大規模な書き換えを必要とせずに、Googlebook上で違和感なく動作します。

詳細はこちら: Gemini AI向けに設計されたGooglebookのご紹介

Android 17

Android 17のリリースが間近に迫っており、チームでは最新のAndroid 17ベータ版に対してFlutterのテストを積極的に行い、アプリが期待通りに動作し続けることを確認しています。また、ローカルネットワーク保護や安全な動的コード読み込みなど、最新のセキュリティおよびユーザビリティ機能の統合も積極的に進めています。

GitHubで進捗状況を確認できます。ぜひAndroid 17 ベータ版をダウンロードし、今すぐアプリのテストを開始してください。バグに遭遇したり、機能の欠落に気づいたりした場合は、イシューを登録してください!

詳細はこちらAndroid 17 GitHub プロジェクト

Android 向け Hybrid Composition++

WebView やマップなどのネイティブ Android コンポーネントを Flutter アプリに組み込む際、従来は開発者がフレームレートと忠実度のどちらかを選ばざるを得ませんでした。

従来のレンダリング戦略では、スクロール時の画面のティアリング、テキスト入力の不具合、あるいは高い CPU オーバーヘッドといった問題に悩まされていました。

Flutter 3. 44では、これらの問題を解決するため、オプトイン機能としてHybrid Composition++ (HCPP) が導入されました。HCPPは、オフスクリーンバッファに依存したり、Flutterエンジンにネイティブビューの処理を強制したりする代わりに、レイヤーの合成をAndroid OSに直接委譲します。このプロセスは、Vulkanグラフィックスライブラリの低レベルアクセスを活用し、ハードウェアバッファスワップチェーンとSurfaceControlトランザクションを使用して、Flutter UIとネイティブAndroidビューを同期させます。

その結果、高性能なスクロールと正確なタッチ入力が実現されます。また、以前のモードでは課題となっていた SurfaceView コンポーネントに対する信頼性の高いサポートも提供します。


左がHC、右がHCPP

HCPPにはAndroid APIおよびハードウェア要件 があるため、HCPPを有効にしてもすべてのデバイスで利用できるわけではありません。新たに導入すべきAPIはなく、既存のプラットフォームビューをアップグレードするには、単にフラグを有効にするだけで済みます。将来的にデフォルトのレンダリングモードになる前に、--enable-hcpp フラグを run コマンドに渡すか、AndroidManifest.xml ファイルに設定フラグを追加することで、新しいモードをテストできます:

<meta-data
  android:name="io.flutter.embedding.android.EnableHcpp"
    android:value="true" />

詳細はこちら: Platform Views を使用した Flutter アプリでのネイティブ Android ビューのホスティング

Android ディスプレイのコーナー半径のサポート

最新のモバイルデバイスでピクセルパーフェクトなレイアウトを構築できるよう、Flutter は Android ハードウェアと直接連携し、ディスプレイのコーナー半径をサポートするようになりました (#179219)。Flutter はデバイスのディスプレイの物理的および論理的なコーナー半径を取得し、この情報を MediaQuery を通じて公開できるようになりました。これにより、UIがハードウェアの形状を正確に反映できるようになり、角が強く丸みを帯びた画面でもコンテンツが切り取られることがなくなります。

詳細: MediaQueryData.displayCornerRadii

Android Gradle Plugin 9.0 と組み込みの Kotlin

Android Gradle Plugin (AGP) 9 以前では、Android アプリおよびプラグインの開発者は、システムが Kotlin コードを認識してコンパイルできるように、ビルドファイルに Kotlin Gradle Plugin (KGP) を手動で追加する必要がありました。AGP 9.0 以降、Android ビルドシステムは Kotlin をネイティブに処理します。ビルドシステムがすでに Kotlin の処理方法を知っているため、別途 KGP を手動で追加すると競合が発生し、ビルドが失敗します。この互換性を破る変更は、KGP を適用しているアプリおよび Flutter プラグインに影響します。

Flutter チームは、既存のプロジェクトが安全にビルドされ続けるよう、一時的な下位互換性を追加しました。KGP を手動で適用する機能のサポートは、将来のリリースで削除される予定です。

アプリ開発者向けの手順

Flutterアプリを開発している場合は、Androidのビルドファイルを更新し、個別のKotlin Gradleプラグイン(KGP)を削除する必要があります。

注:移行したアプリで、依然としてKGPを適用するFlutterプラグインを使用している場合、ビルドは失敗します。この問題を修正できるのはプラグインの作成者のみですので、 プラグインの作者に問題を報告してください

詳細: 詳細な手順については、アプリ開発者向け移行ガイドを参照してください。

プラグイン作成者向けの手順

プラグインの移行プロセスでは、同様のGradleファイルの変更に加え、重要なバージョン制約の更新が必要です。

互換性を確保するには、pubspec.yaml ファイルを更新し、Flutter の最小バージョン制約を 3.44 に設定する必要があります。

詳細: 完全なチェックリストについては、プラグイン作成者向け移行ガイドを参照してください。

ABIフィルタリングの変更

ABIは、コンパイルされたアプリがどのデバイスハードウェアアーキテクチャ(ARMやx86など)をサポートするかを決定します。Flutterは以前、特定のビルドタイプごとにプログラムでABIフィルタを適用していましたが、現在はベースの defaultConfig ブロック内で一度設定するようになりました。

AGP 9 では、デフォルトの設定を上書きするのではなく、特定のビルドタイプやフレーバーと組み合わせるようになったため、カスタム ABI 設定を使用するには追加の手順が必要になります。

アプリが特定のビルドタイプやプロダクトフレーバー内でカスタム abiFilters を使用している場合、アプリをビルドまたは実行する際に -Pdisable-abi-filtering=true フラグを指定する必要があります。

詳細: 詳細については、フレーバーガイドを参照してください。

iOSのサポート

Swift Package Managerがデフォルトになりました

iOSおよびmacOSのデフォルトとしてSwift Package Managerが採用されました

Flutter 3.44 以降、iOS および macOS アプリのデフォルトの依存関係マネージャーとして、CocoaPods に代わって Swift Package Manager (SwiftPM) が採用されます。Flutter CLI はこの移行を自動的に処理します。アプリをビルドまたは実行すると、CLI が Xcode プロジェクトを更新して SwiftPM を使用するようにするため、Ruby や CocoaPods のインストールを管理する必要がなくなります!

詳細はこちら: CocoaPodsに別れを告げよう:Swift Package ManagerがまもなくFlutterのデフォルトに!

「Add-to-App」の統合もより柔軟になりました。既存の iOS アプリケーションに Flutter を組み込む場合、新しい flutter build swift-package コマンドを使用すると、Flutter アプリや Add-to-App モジュールが Swift パッケージとしてパッケージ化され、ネイティブプロジェクトで簡単に利用できるようになります。

詳細はこちら: 更新されたドキュメント を参照して、SwiftPM との統合方法を確認してください。

アプリがまだ CocoaPods を必要とするプラグインに依存している場合、Flutter CLI は警告を表示し、それらの依存関係については一時的に CocoaPods にフォールバックします。CocoaPods のサポートは最終的に完全に廃止されるため、それらのパッケージのメンテナンス担当者に更新を依頼することをお勧めします。エコシステムの採用を促進するため、SwiftPM をサポートするパッケージには、pub.dev の評価で追加ポイントが与えられるようになりました。

iOS または macOS プラグインをメンテナンスしている場合は、パッケージに SwiftPM サポートを追加する必要があります。2024 年のパイロット期間中に移行した場合は、Package.swift ファイルに FlutterFramework を依存関係として追加することも忘れないでください。

SwiftPMによってプロジェクトで互換性の問題が発生した場合は、pubspec.yaml--enable-swift-package-manager: false を設定することで、一時的に無効にすることができます。このオプトアウト機能を使用する場合は、XcodeプロジェクトファイルGitHubにバグ報告を提出して いただけると、調査に役立ちます。なお、この無効化機能は将来的に削除される予定です。
詳細: プラグイン作成者向けSwift Package Manager

FlutterはUISceneをサポートしています

iOS 13以降、Appleはマルチウィンドウ体験をサポートするために「Scene」ベースのライフサイクルを導入しました。

WWDC 2025において、Appleは最新のSDKで構築されたアプリに対し、まもなく起動時に UIScene ライフサイクルの使用が必須になると発表しました。この更新は、今後のiOSバージョンにおけるAppleの要件を満たす上で不可欠です。

Flutter 3.44では新たな変更はありませんが、Appleがこの新しいAPIをデフォルトで強制適用し始める前に、移行を行うようお願いいたします。`

AppDelegate`がカスタマイズされていない場合、Flutter CLIが自動的にアプリを移行します。ただし、コードでUIライフサイクルイベントを操作している場合は、完全な移行ガイドに従う必要があります。
詳細はこちら: UISceneDelegate移行ガイド

iOS 予測入力(実験的機能)

テキスト入力フィールド向けのネイティブ iOS インライン予測入力機能の実験的サポートを導入しました (#183650)。

この機能はデフォルトで無効になっていますが、TextField.enableInlinePredictionを有効にすることで、この機能を利用しテストすることができます。有効にすると、アプリ内で入力中のユーザーは、スペースキーを押すことで、iOSが予測したテキスト(例:「My n」と入力して「ame」を受け入れる)を受け入れることができます。

なお、この予測テキストの視覚的なスタイリングは現在も改良中ですので、機能の完成に向けて皆様からのフィードバックをお待ちしております。

詳細はこちら: TextField.enableInlinePrediction

Web

アクセシビリティ

アクセシビリティとユーザー設定の整合性も大幅に強化されました。ブラウザの prefers-reduced-motion 設定を標準でサポートし、アニメーションを自動的に無効化できるほか、aria-description を使用してフォームの検証エラーに対してスクリーンリーダーが即座にフィードバックを行う機能も備えています。

詳細はこちら:

prefers-reduced-motion CSSメディア機能 (mozilla.org)

プラットフォームとツール

開発ワークフローとブラウザとの連携は、かつてないほどスムーズになりました。エンジンは、フォーカス移動時にDOMフォームを再利用することで、iOS 26のSafariにおけるautofillに対応するようになりました。また、Webスクロールとキーボードイベントの合成を改良し、堅牢な信頼性を実現しています。さらに、CLIは--base-hrefのサポートをflutter runに直接組み込むことで、本番ビルド構成と一致させ、Webアプリのオーケストレーションを効率化します。

詳細はこちら: PR #182024, PR #179703, PR #180692

デスクトップ対応

CanonicalはFlutter Desktopのロードマップを主導し、Linux、Windows、macOS向けエンベッダーのメンテナンスを監督します。

Canonicalとのパートナーシップ拡大を発表できることを嬉しく思います。同社は今後、Flutter Desktopのリードメンテナーおよびストラテジック・スチュワードを務めます Canonicalはその深い技術的専門知識を活かし、Flutter Desktopのロードマップを主導し 、またLinux、Windows、macOS向けエンベッダーのメンテナンスを統括します。

この協業は、より広範なエコシステム拡大に向けた第一歩に過ぎません。今後、私たちはより多くのパートナーと共にガバナンスを積極的に拡大し、Flutterの高性能でマルチプラットフォームな体験を、さらに多くの環境や業界にもたらしていきます。

このパートナーシップに関する詳細については、引き続きご注目ください!

Flutterチームとの提携に関するお問い合わせは、partners@flutter.devまでご連絡ください。

ウィンドウングAPI(実験的)

⚠️注 ウィンドウング機能は現在、 main channelでのみ利用可能です。これらはまだ本番環境での使用を想定したものではありません。

Flutterがプラットフォームを問わずツールチップと独立したダイアログウィンドウに対応

Canonicalは、デスクトップ向けの実験的ウィンドウAPIの開発において目覚ましい進展を続けています!新機能は以下の通りです:

  • *ツールチップ *: FlutterはLinux、macOS、Windowsでツールチップウィンドウをサポートするようになりました (#182348, #180895 , #179147)。
  • ポップアップ: FlutterはmacOSでのポップアップウィンドウをサポートするようになりました (#182371)。LinuxおよびWindowsへの対応は今後のリリースで予定されています。
  • ダイアログ : MaterialのshowDialog関数は、ウィンドウ表示をサポートするプラットフォームにおいて、独立した子ダイアログウィンドウを作成するようになりました (#181861)。

最後に、Linuxでコンテンツサイズに応じたビューがサポートされるようになりました(#182924)。これにより、コンテンツに基づいてウィンドウのサイズを動的に変更できるようになり、ポップアップやツールチップウィンドウに役立ちます。

詳細:デスクトップ向けの実験的なウィンドウ API をいち早く試してみたい場合は、multiple_windows の例 をご覧ください。

Windowsのスタイラス対応

Flutterで構築されたWindowsアプリが、デジタルアーティストやメモ取りユーザー向けに大幅なアップグレードを受けました!コミュニティメンバーのCodeDoctorDEによる素晴らしい貢献のおかげで、Flutter Windowsはスタイラス入力をサポートするようになり、スタイラスの回転や筆圧の微細な追跡も可能になりました。

詳細はこちら: PR 165323: Windowsでのスタイラス対応

組み込み

トヨタ

トヨタ RAV4は2025年に世界で最も売れた車となりました。現在、2026年モデルのRAV4では、マルチメディアシステムにFlutterが採用されています。

先月、私はキャリアの中でも特に印象深い体験をしました。テキサス州プラノにあるトヨタ・モーター・ノース・アメリカおよびトヨタ・コネクテッドのオフィスを訪れ、エンジニアリングチームと対談する機会を得たのです。そこで、オフィス内のテスト機から一般家庭の車に至るまで、マルチメディアシステムの設計、構築、提供において、Flutterが彼らにとっていかに画期的な変化をもたらしたかについて話し合いました。Flutterエンジニアであると同時に、幼少期からトヨタ車しか買わない家庭で育った車オタクとして、 2026年型RAV4にFlutterが搭載されるのを目の当たりにして、私は大興奮しています。街中を歩いていると、何度もその姿を見かけます。(えーと…至る所で??)

私たちを温かく迎えてくださったトヨタ・モーター・ノース・アメリカおよびトヨタ・コネクテッドのチームの皆様、ありがとうございました!

紹介動画をご覧ください:

Flutter Outboundのプロダクトマネージャーであるアブダラと私が、トヨタのテストコースで記念撮影!

詳細はこちら:トヨタのプレスリリース、「トヨタのマルチメディアの最新進化が、あなたの近くのスクリーンに登場」The Latest Evolution of Toyota’s Multimedia Coming to a Screen Near You

LG


LG webOS SDKにより、開発者はWebOSデバイスをターゲットとしたFlutterアプリを構築できるようになります

LGは、開発者がWebOSデバイスをターゲットとしたFlutterアプリを容易に構築できるよう支援するwebOS SDKのリリースを間近に控えており、これによりFlutterは大画面をはじめとする幅広い分野で活用されるようになります。

webOS SDKには、Firebase、ビデオプレーヤー、ゲームパッドなどのプラグインサポートが含まれます。さらに、ステートフル・ホットリロードやRiverpodによる状態管理など、皆様にお馴染みのFlutterの全機能もサポートされます。

今後数週間のうちに予定されているこのエキサイティングなリリースを、ぜひご期待ください!

グラフィックスとエンジンの機能強化

今回のリリースでは、Impellerバックエンドに対して、レンダリングとパフォーマンスの最適化が行われました。

Impellerの改善点

Vulkan

今回のリリースには、キャッシュのメモリ管理の改善や、フレームがドロップされるケースにおけるGPU/CPU同期の効率化など、Vulkanに関するいくつかの改善が含まれています。

SDF による滑らかな円

円のレンダリング処理が更新され、符号付き距離関数(SDF)を使用してより滑らかな円を描画できるようになりました。以前はエイリアシングが発生する場合がありましたが、これは解決されました。(#183536#183184)

符号付き距離関数(SDF)を活用し、視覚的な忠実度を向上させ、複雑な形状でも高品質でアンチエイリアス処理されたレンダリングを実現しました。

影と遠近法の修正
Impellerによる遠近法行列の処理方法を改善し、影および遠近法投影変換のレンダリング動作を修正しました。(#181434#183187)

フラグメントシェーダーの改善

以下の機能強化により、フラグメントシェーダーの記述がより直感的になり、エラーの発生も減少しました。

名前によるユニフォーム取得 API

シェーダー内で、手動によるオフセットではなく名前でユニフォーム変数をバインドできるようになり、シェーダーコードの設定が劇的に簡素化されました:

    void setUp(ui.FragmentShader shader) {
      shader.getUniformFloat('foobar').set(1.234);
    }

詳細はこちら:フラグメントシェーダーの作成と使用FragmentShader.getUniformFloat

より明確なシェーダーコンパイラの診断情報

Skiaと互換性のないシェーダーをコンパイルする際、シェーダーコンパイラが警告を生成するようになりました。これにより、デプロイ前にクロスプラットフォームのレンダリング問題を特定しやすくなります (#182786, #183146)

フレームワーク

今回のリリースでは、大幅なアーキテクチャの変更と、品質への徹底的なこだわり、そしてコミュニティ主導の改良とのバランスが取られています。Material および Cupertino ライブラリをスタンドアロンパッケージとして戦略的に分離する取り組みを開始する中、コアフレームワークは Web レンダリングの大幅な更新、基盤の安定性向上、プラットフォーム統合の強化により、成熟を続けています。

Material および Cupertino の更新

本リリースは、Material および Cupertino ライブラリにとって大きな節目となります。これらのライブラリは本リリースをもって凍結され、独立したパッケージ material_ui および cupertino_ui へ移行する前の、コアフレームワーク内における最後の更新セットとなります。次回の安定版リリースまでに、現在フレームワークに含まれているこれらのライブラリのバージョンは非推奨となり、新しい独立したバージョン管理のパッケージへ移行できるようになります。

詳細情報:この移行に関する詳細については、フリーズに関するブログ記事 また、これらのライブラリをコアフレームワークから分離するための主要なトラッキング課題をフォローしてください。

フリーズ中ではありますが、このリリースには多くの改良が盛り込まれています。主なハイライトは、Cupertinoライブラリにおけるメニューの刷新です。柔軟な RawMenuAnchor を基盤として構築された新しい CupertinoMenuAnchor ウィジェットは、iOSアプリケーションに対してより堅牢でネイティブに近いメニュー体験を提供します (#182036)。この成果は、コミュニティメンバーである davidhicks980による多大な貢献によって実現しました。同氏はRawMenuAnchorウィジェットの作成者でもあります。

CupertinoMenuAnchor の動作例。

詳細はこちら: CupertinoMenuAnchor

Material 側では、MenuAnchor クラスに Material 3 アニメーションが追加され、メニューの動作が洗練されました。これらのアニメーションにより、より滑らかでレスポンスの良い操作感が得られます。また、SubmenuButtonに追加された新しいhoverOpenDelayパラメータを使用することで、サブメニューのインタラクションをより細かく制御できるようになりました。アニメーションはデフォルトで無効になっており、animatedをtrueに設定することで有効になります。(#176494)。


MenuAnchorクラスへのMaterial 3アニメーションの追加。

詳細: MenuAnchorSubmenuButton.hoverOpenDelay

また、今回のリリースにより、CupertinoSheetRoute 内のスクロール可能なコンテンツがドラッグアニメーションとシームレスに連携するようになり、スクロールとシートの閉じる操作の間でより滑らかな遷移が可能になりました (#177337)。カスタムドラッグ領域が必要な開発者のために、新しい scrollableBuilder を使用すると、管理された ScrollController をボディのスクロール可能領域に渡して、シートのドラッグを自動的に調整できるようになります。

CupertinoSheetRoute 内のスクロール可能なコンテンツが、ドラッグアニメーションとシームレスに連携しています

詳細はこちら: CupertinoSheetRouteCupertinoSheetRoute.scrollableBuilder

今回のリリースでは、CarouselViewコンポーネントの機能が大幅に改善されました。無限スクロールに対応しました (#175710 )に対応し、シームレスにループするカルーセルを作成できるようになりました。また、新しい onIndexChanged コールバックと、コントローラー上の leadingItem プロパティが追加され、ユーザーが操作する際のカルーセルの状態をより明確に把握できるようになりました (#180667)。


CarouselViewが無限スクロールに対応しました!

詳細はこちら: CarouselView

新しいデザインプリミティブにより、洗練されたUI効果を簡単に実現できるようになりました。例えば、新しい ShapedInputBorder などです。これにより、Materialウィジェットは任意の ShapeBorder を指定することで、形状を用いた入力枠を作成できるようになります。これは、例えば、 RoundedSuperellipseBorder を使用して、Material の入力枠を iOS スタイルで表示する場合などに役立ちます。(#177220)。同様に、CupertinoFocusHaloもスーパーエリプス形状に対応し、異なるウィジェットの形状間でも一貫したフォーカスインジケーターが保証されるようになりました (#180724)。

詳細はこちら: ShapedInputBorder

既存のウィジェットもいくつか改良されました。MaterialのExpansionTileの基盤となっているExpansibleウィジェットの機能が強化されました。ExpansibleControllerExpansionTileControllerの両方で新しいトグルメソッドが利用可能になり、ドキュメントとサンプルも改善されました (#181320#180273 )。さらに、MaterialのリストタイルであるRadioListTileCheckboxListTileSwitchListTileは、WidgetStatesControllerを正しく受け入れるようになり、視覚的な状態をよりプログラム的に制御できるようになりました (#180367)。

アクセシビリティ:すべてのユーザーにとってより包括的な体験

すべてのユーザーがアプリケーションを利用できるようにすることは、Flutterフレームワークの最優先事項であり続けています。今回のリリースでは、プラットフォーム固有のアクセシビリティ設定との連携が強化され、セマンティックアナウンスの精度が向上し、一般的な UI コンポーネントのアクセシビリティが改善されました。

iOS 開発者向けに、今回のリリースではいくつかの新しいアクセシビリティモーション機能のサポートが追加されました (#178102)。アプリケーションは、以下のユーザー設定に対応できるようになりました:

  • アニメーション画像の自動再生:ユーザーが GIF やその他のアニメーションコンテンツの自動再生を一時停止することを希望しているかどうかを検出します。
  • 動画プレビューの自動再生: ユーザーが動画プレビューの自動再生を無効にしている場合、アプリに通知します。
  • 点滅しないカーソルを優先:点滅するカーソルが気が散る、または追跡しにくいと感じるユーザーのために、アプリが安定した点滅しないテキストインジケーターを提供できるようにします。
  • これらの設定は AccessibilityFeatures オブジェクトを通じて公開されており、iOS上でより応答性が高く、ユーザーに配慮したUIを構築できるようになります。

進行状況インジケーターにも利便性の向上が施されました。ProgressIndicatorSemanticsValueとして、パーセンテージ文字列(「50%」など)を使用できるようになりました(#183670)。 これにより、スクリーンリーダーは単なる小数点値ではなく、より自然で人間が読みやすい形式で進行状況を読み上げることができます。

また、今回のリリースではコアウィジェットのセマンティクスも洗練されています。Slider ウィジェットのセマンティクスノードは、そのサイズと位置をより正確に反映するようにリファクタリングされ、タッチ操作や支援機器を使用して操作するユーザーの体験が向上しました (#184168)。さらに、スクロールビューの修正により、非表示のアクセシビリティ要素がスクロール可能なコンテンツの前に誤って表示されることがなくなり、よりクリーンで予測可能なナビゲーションフローが実現されました (#184155)。

これらの変更により、Flutter アプリケーションはすべてのプラットフォームにおいて、高品質で包括的な体験を提供し続けることが保証されます。

幅/高さがゼロのウィジェットに対する耐障害性

今回のリリースでは、ウィジェットが「0x0環境」でレンダリングされる際のフレームワークの安定性向上に重点を置きました。これは、ウィジェットの幅や高さがゼロに設定されたシナリオを指し、以前はレイアウトエラーや予期せぬクラッシュを引き起こす可能性がありました。コミュニティメンバーの ahmedsameha1による着実かつ継続的な貢献のおかげで、Hero (#180954)、Icon (#181021)、AnimatedPadding (#181235)、GridPaper (#180906) など、多くの主要なウィジェットでゼロサイズ対応を追加しました。これらの更新により、複雑なレイアウト遷移時や制約の厳しいビューポート内でも、アプリケーションの堅牢性が確保されます。

SelectableRegion の改善

SelectableRegion 内の 2 つの主要な問題を解決し、ネイティブおよび Web プラットフォーム全体でのレイアウトの忠実度とテキスト選択の挙動を改善しました:

Web レイアウト制約の保持
以前は、Web上でレンダリングする際、SelectableRegionによって子要素が予期せず縮小されることがありました。現在は、すべてのレイアウト制約を変更せずに子要素に正しく渡すようになり、サイズ設定の挙動が一貫して保たれるようになりました (#184083)。

複数行のコピー精度
SelectableRegion 内のテキスト選択の精度が向上しました。ユーザーが複数行にわたるテキストを選択してコピーした場合、改行が失われることなく、コピーされた出力に正しく保持されるようになりました (#184421)。

互換性を破る変更と非推奨機能

本リリースには、Flutter フレームワークの近代化と改善に向けた継続的な取り組みの一環として、いくつかの重要な非推奨機能と互換性を破る変更が含まれています。

RawMenuAnchor コールバックの調整

より柔軟で予測可能なカスタマイズを可能にするため、RawMenuAnchor のいくつかのコールバックの呼び出し順序が調整されました。

詳細: RawMenuAnchor の閉じる順序の変更

このリリースにおける主な非推奨機能は以下の通りです:

  • CupertinoSheetRoute: showCupertinoSheet および CupertinoSheetRoutebuilder および pageBuilder パラメータは、scrollableBuilder (#177337)。この変更により、スクロール可能なコンテンツとシートのドラッグアニメーションとの統合が改善されます。
  • ReorderableListView: onReorder コールバックは、より正確な onReorderItem への移行に伴い非推奨となりました (#178242)。新しいコールバックは、アイテムが再挿入される前に削除されることを考慮した、より予測可能な newIndex を提供します。
  • ツール: Web 向けのホットリロードは、より現代的なメカニズムを通じて処理されるようになったため、Flutter ツールの --web-hot-reload フラグは非推奨となりました (#181884)。さらに、plugin_ffi テンプレートは、FFI サポートを備えたより堅牢なプラグイン テンプレートに取って代わられ、非推奨となりました (#181588)。

詳細: これらの変更やその他の変更に関する詳細および移行ガイドについては、flutter.dev の 互換性のない変更ページ をご覧ください。

Flutterは、あらゆる場所で、毎日使われています。

Flutterの適用範囲は、モバイル、デスクトップ、Web、組み込みシステムに及びます。個々の機能も素晴らしいものですが、それらが一体となって開発者にとって堅牢なプラットフォームを提供しています。これにより、150万人以上の開発者が、あらゆる場所で、毎日利用される素晴らしいユーザー体験を構築できるようになっています。Flutterは、ビジネスツールからNotebookLMのような日常的なアプリ、 TalabatZohoKaracaから、2026年型トヨタRAV4のインフォテインメントシステムやLGのwebOSデバイスといった注目度の高い組み込み実装に至るまで、幅広く採用されています。

Flutterは、すべての人によって、すべての人のために作られています。

Flutterの成功は、皆様からのフィードバックによって支えられています!コメントやイシュー、あるいは近日実施予定の開発者アンケートを通じて、この対話を継続していくことをお約束します。皆様からのご意見こそが、皆様に愛される機能を生み出す原動力です。ぜひ引き続きご意見をお寄せください。

このエコシステムは、LG、トヨタ、Canonicalといった業界のリーダー企業に支えられ、それらによって構成されています。そして何より重要なのは、 毎日Flutterを使って開発を行っている150万人以上の開発者の皆様によって支えられています。私たちはこの素晴らしいDart & Flutterエコシステムを、皆さんと共に構築し、成長させていくことを大変楽しみにしています。

新しい機能、最適化、グラフィックの強化をすべて試すには、以下の簡単な操作を行うだけです:

flutter upgrade