世界を動かす技術を、日本語で。

Flutter 3.47

2026年8月13日原文(flutter.dev)

概要

Flutter 3.47がリリースされ、Material/Cupertinoデザインシステムの独立パッケージ化やパフォーマンス向上が実現。 Impellerがデスクトップのデフォルトレンダラーとなり、Apple最新OSへの対応も強化。 Widget Previewsが安定版となり、開発効率が向上。 WebAssemblyのデフォルト化やSwiftPM移行も大きなトピック。 今後の移行・新機能に備えた具体的なガイドも提供。

Flutter 3.47の主な新機能と変更点

  • Material/Cupertinoデザイン独立パッケージ化 (material_ui, cupertino_uiの1.0リリース)
    • コアSDKからのデザインシステム分離
    • material_ui/ cupertino_uiをpub.devから個別に利用可能
    • 今後はSDKアップグレード不要で最新デザイン利用可
  • デザインシステムの分離によるメリット
    • デザインライブラリの 独立したリリースサイクル
    • バグ修正や新コンポーネントの迅速な提供
    • カスタムデザインシステム構築の基盤整備
  • 移行方法
    • dart fix --apply --code=migrate_design_widgetsコマンドで自動移行
    • pubspec.yamlの問題時はflutter pub add material_ui等を手動で追加
    • コアSDKのデザインライブラリは2024年11月安定版で非推奨予定
  • マイグレーションブリッジの提供
    • MaterialUiCompatibilityBridgeで依存パッケージの段階的移行が可能
  • ローカライズの分離
    • flutter_localizationsからmaterial_ui/cupertino_ui内へ移行
    • localizationsDelegatesの設定がシンプルに
  • コミュニティコントリビューションの再開
    • material_ui/cupertino_uiへの貢献が可能に
    • 今後は週次リリース予定

Appleエコシステムへの対応強化

  • Xcode 27, iOS 17, macOS 14対応
    • Apple最新OS対応のためのパイプライン準備
    • 最低サポートバージョンの引き上げ(iOS 15, macOS 12)
  • UISceneライフサイクル必須化
    • iOS 17 SDKから全UIKitアプリで必須
    • Flutter CLIは自動対応、独自ネイティブコードの場合は手動移行必要
  • Intel Macサポートの段階的終了
    • Intel Macでのビルド時に警告表示、将来はエラー化予定
    • ARM64専用ビルドへの即時移行も可能
  • Swift Package Manager(SwiftPM)移行促進
    • iOSプラグインの92%がSwiftPM対応済み
    • CocoaPodsはメンテナンスモード、今後はSwiftPM必須
    • ビルド時間短縮の最適化

Web・デスクトップ機能の進化

  • WebAssembly(Wasm)デフォルト化準備
    • --wasmフラグでWebアプリをWasmビルド可能
    • package:webへのJSインタロップ移行が必要
    • Wasm向け遅延ローディング機能の実験的導入
  • Impellerレンダラーのデフォルト化(デスクトップ)
    • macOS/Windows/LinuxでImpellerが標準
    • Metal/Vulkan対応でスムーズなアニメーション
    • Wide Gamut Colorのデフォルト有効化(macOS)
    • Skiaへのフォールバックは将来的に廃止予定
  • マルチウィンドウAPIの拡充
    • Linux/Windowsでポップアップウィンドウ対応
    • windowHandleでネイティブウィンドウへのアクセス
    • サイズ自動調整APIの追加
  • デスクトップ向けFlavors対応
    • Windows/Linuxでアセット切り替えが可能
    • --flavorオプションでビルド時に指定
  • デスクトップテキストの高精細化
    • ImpellerによるSigned Distance Function(SDF)レンダリング

開発体験の向上

  • Flutter Widget Previewの安定版リリース
    • コンポーネント単位で即時プレビュー・検証が可能
    • ローカルキャッシュによる高速起動
  • その他
    • 多数のウィンドウフォーカス・描画バグ修正
    • コミュニティからの多様な貢献

公式詳細・アップグレードガイドはFlutter公式ブログGitHubリリースノートを参照。 今後の移行や新機能利用には、flutter upgradeコマンドの実行を推奨。

Hackerたちの意見

デカップリング素材とクパチーノはめっちゃ理にかなってるね。

そうだね、これでデカップリングが完了したから、やっと更新が再開されるといいな。進捗がこのプロセス中はちょっと停滞してたからね。

フラッターで一番嫌いなのは、UIコードに信じられないくらいネストした括弧が多いこと。

明らかにもっとLispマックスしないとね。

Locがバリバリ動いてる。2020年代のトークンマックスだね。

なぜか、カールの方が好きなんだよね。

君の言ってることは間違ってないけど、俺の経験では、ネストが多すぎると悪い予感がすることが多くて、それはだいたいスタンドアロンのウィジェットにリファクタリングできるってことを示してると思う。でも、そういう点ではFlutterはComposeみたいなものと比べると古臭く感じるね。

ネストを機能として捉えてるよ。ネストが深くなり始めたら、それは子ウィジェットを抽出するサインだと思ってる。そうすることで、巨大なモノリシックなビューじゃなくて、より良い構成と小さく再利用可能なコンポーネントに向かわせてくれるんだ。

やっとマルチウィンドウサポートが来た!これで、ずっと作りたかったシンプルなデスクトップアプリのためにフラッターが使えるかも。

モバイルアプリには最高だけど、デスクトップにはまあまあ、ブラウザではWASM使わないとほぼ使えないね。もしウェブが改良されれば、クロスプラットフォームのGUIにとって最良の選択肢になるかも。

誰も、絶対にフラッターを選ぶのは、最初から伝統的なウェブをやりたいからじゃないよ。これはクロスプラットフォームのフレームワークで、モバイルと他のプラットフォーム間でコンポーネントを共有できるんだから。

それなら運がいいね、jasprを使ってみて。

Hacker Newsで議論の続きを見る