開発

FlutterのLiquid Glass対応はどこまで来たか|cupertino_ui 1.0でも入らない現状と代替手段【2026年8月時点】

Flutterで作ったiOSアプリをXcode 26でビルドし直しても、画面はiOS 18世代の見た目のまま出てきます。Liquid GlassはUIKitとSwiftUIのコントロールに載る素材で、自前のエンジンで全ピクセルを描くFlutterには自動的に降ってきません。2026年8月12日にはCupertinoが単独パッケージのcupertino_ui 1.0として切り出されましたが、ガラス素材はそこにも入っていない状態です。この記事では、公式対応が止まっている理由と期限、シェーダ描画・ぼかし近似・UiKitView埋め込みという3系統のパッケージの選び分け、そして受託案件で対応を先送りしてよい条件を、日付つきの一次情報で整理します。Liquid Glassそのものの仕組みはLiquid Glassの定義とSwiftUIでの実装方法にまとめてあります。

まとめ:公式対応は止まったまま、外観を作るなら自前描画かネイティブ埋め込みの二択

先に結論から示します。2026年8月19日時点で、FlutterのCupertinoウィジェットにLiquid Glassは入っていません。要望のissueは、Flutterチームが「新しいApple 26系のUIデザインをCupertinoライブラリで開発する予定はなく、コントリビューションも受け付けない」と表明した2025年6月10日から14か月、P3のまま据え置かれています。賛意を示すリアクションが545件付いてもP2へ昇格していません。

そのうえで、Xcode 26でのビルドは2026年4月28日からApp Store提出の必須条件になりました。両者は矛盾しません。Flutterのウィジェットはネイティブのコントロールではないため、SDKを上げても外観が変わらないだけで審査には通ります。「対応しないと出せない」ではなく「対応しなくても出せるが、iOS 26以降の端末では周囲のOSの見た目から浮く」という性質の問題です。

外観を寄せるなら道は二つあります。シェーダで自前に描くか、UiKitViewでネイティブのコントロールを埋め込むか。前者は全プラットフォームで同じ絵が出せる代わりに屈折とハイライトの再現度が実装依存になり、後者は忠実さと引き換えに合成順序とスクロール追従の制約を抱えます。ぼかしだけの近似も、面積の小さいナビゲーション層に限れば実用に足ります。

判断としては、業務系アプリならガラス表現を入れない選択が今も妥当です。入れる場合でも、当てる範囲はタブバーとナビゲーションバー、フローティングボタンに絞ってください。

Xcode 26でビルドしてもFlutterの画面が据え置きになる描画上の理由

「SDKを上げれば勝手にガラスになるのでは」という誤解が現場でよく起きます。ネイティブアプリならその理解で合っていますが、Flutterでは前提が違います。

Flutterが自前で描画するためガラス素材が適用されない仕組み

Flutterのボタンやタブバーは、UIKitのUIButtonやUITabBarを呼び出しているわけではありません。フレームワークがウィジェットツリーを組み立て、Impellerがそれをキャンバスへ直接描きます。OSから見れば、Flutterアプリの画面は1枚の描画面でしかありません。Liquid GlassはUIKitとSwiftUIのコントロールに素材として当たる仕組みなので、コントロールを使っていないFlutterには当たりようがない、という構造です。

この違いは退避策の要否にも波及します。ネイティブアプリが旧デザインへ戻すために置くUIDesignRequiresCompatibilityは、そもそも適用されないFlutterでは不要で、iOS 27以降のSDKでキーが無視されるという期限もFlutter単体では影響しません。Xcode 26側で何が変わったかはXcode 26の変更点とSDK対応の整理を参照してください。

ただし例外はあります。共有シートやキーボードなど、OSが自前で描くUIはiOS 26以降でガラス素材になります。Flutterの画面とこれらが隣り合う場面では、素材の差が段差として見えてしまう点に注意してください。

cupertino_ui 1.0が外観を据え置いたまま2026年8月に出た経緯

2025年7月29日、Flutterチームは「MaterialとCupertinoのライブラリを独立パッケージへ切り離して機能開発を加速する。iOS 26向けの新規作業はすべて新パッケージ側で行う」と説明しました。これが「Cupertinoが分離されればガラスが来る」という期待の出どころです。

切り離し自体は予定どおり進みました。2026年4月7日に本体リポジトリの両ライブラリが凍結され、5月20日のFlutter 3.44がコアSDK内での最後の更新となり、8月12日のFlutter 3.47でmaterial_uiとcupertino_uiが1.0としてpub.devに公開されました。発行元はflutter.devで、要求はFlutter 3.44以上・Dart 3.12系です。

それでも外観は変わっていません。cupertino_ui 1.0のREADMEは「以前はpackage:flutter/cupertino.dartとしてコアフレームワークに直接組み込まれていたものを、flutter/packagesへ移した」と述べるだけで、iOS 26にもLiquid Glassにも触れていません。中身は移設であって刷新ではなかった、というのが2026年8月時点の事実です。器は用意されたものの、まだ何も入っていません。

issue 170310が14か月P3のまま昇格していない判定基準

要望を追う先はflutter/flutterのissue 170310です。起票は2025年6月10日、2026年8月18日にも更新があり、コメントは84件、リアクションは合計712件(賛意が545件、heart 44件、rocket 38件)に達しています。それでも付いているラベルはP3のままです。

FlutterのP3は「現時点でプロジェクトにとって重要度が低いと考えている課題」と定義され、昇格の判断材料は賛意リアクションの数だと明記されています。545件という数字は、その基準に照らしても足りていないか、あるいは優先度が需要以外の要因で決まっていることを意味します。P1が付いているのは移設の親issue 172932のほうで、こちらは8サブタスク中5件が完了しました。優先されているのは移設であって外観刷新ではない、と読むのが素直です。

実務上の含意は単純です。公式対応を待つ計画を立てないでください。移設の日程は公表されていますが、そこにガラス素材を載せる話は一度も出ていません。

ガラス面を自前で描くときの構成要素とImpellerが要る範囲

公式が動かない以上、外観は自分で描くことになります。何を作れば「それらしく」なるのかを要素に分解します。

BackdropFilterのぼかしだけでは届かない屈折と映り込み

最初に手が伸びるのはBackdropFilterImageFilter.blurの組です。背面を平均化して半透明の白を重ねれば、いわゆるすりガラス、Glassmorphismにはなります。ここまでは数行で書けます。

足りないのは屈折とスペキュラハイライト、つまり縁で背後が引き伸ばされる歪みと、縁に沿って走る光の映り込みです。どちらもぼかしでは作れず、フラグメントシェーダで背面テクスチャの参照座標をずらす処理が要ります。FlutterではFragmentProgramにGLSLを読み込ませ、flutter_shaders経由でウィジェットの背面を渡す構成が定番になりました。彩度を上げる処理も併せて入れないと、背景が濁って見えます。

3.47でImpeller既定が広がったあとに残る描画負荷の条件

シェーダを使う以上、レンダラの前提が効いてきます。iOSはImpellerのみでSkiaへのフォールバックがなく、AndroidはAPI 29以降で既定、Vulkan非対応の端末だけOpenGLへ退避します。2026年8月12日のFlutter 3.47ではmacOS・Windows・Linuxでも既定がImpellerに切り替わり、Webのみ現時点でSkiaです。

つまりモバイルとデスクトップに限れば、Impeller前提のパッケージを選んでも実行環境の心配はほぼ要りません。残るのは負荷です。背面のぼかしとピクセル単位の変位を毎フレーム走らせるため、低価格帯のAndroid端末ではスクロールと同時にガラス面を動かした時点でフレーム落ちが見えます。ガラス面の枚数を数えて設計してください。

外部パッケージの3系統と2026年8月時点での更新状況の比較

pub.devにはLiquid Glass系のパッケージが十数種類あり、方式で3系統に分かれます。選定を誤ると、動かない端末が出るか、更新の止まったコードを抱えます。

シェーダで描くliquid_glass_widgetsと停滞したrendererの差

この系統で先行していたのはliquid_glass_rendererでした。LiquidGlassLayerの下に置いた形状同士が液体のように融合する表現まで作り込まれており、支持数は880件と最多です。ただし最終公開は0.2.0-dev.4の2025年11月13日で、9か月動いていません。READMEも「Impellerで動かすこと。Skiaは現時点で未対応」「実験段階であり、全端末向けの本番アプリへ無検証で足すべきではない」と自ら注意書きを置いています。

2026年8月時点で新規に選ぶなら、更新の続くliquid_glass_widgetsのほうが扱いやすい状態です。0.29.8は2026年8月18日公開、週次ダウンロード46.6k、要求はFlutter 3.41以上。カスタムのフラグメントシェーダでぼかし・スペキュラハイライト・色収差までを描き、GlassScaffoldやGlassTabBarなど画面部品も揃えています。品質モードがPremium・Standard・Minimalの3段で、Minimalはシェーダを使わないためWebや低スペック端末へ落とせます。Reduce MotionとReduce Transparencyへの追従も組み込み済みです。

近似で済ませるcupertino_liquid_glassが向く画面の条件

屈折を諦め、BackdropFilterと多層のCustomPainter、スプリング物理だけで見た目を寄せるのがcupertino_liquid_glassです。0.7.0は2026年7月10日公開、発行元はerenium.techで、6環境すべてに対応します。UIKitブリッジもプラットフォームチャネルも持たず、作者自身が位置づけを「視覚的な近似」と書いています。

この割り切りが効くのは、ガラス面が小さく、その上に長い文章を載せない画面です。フローティングのタブバー、丸いアクションボタン、上部のナビゲーションバー。ここに限れば屈折の有無は並べて比べない限り分かりません。逆にカード一覧の全面へ敷くと、ぼかし止まりであることが露骨に見えます。支持数10件・ダウンロード497と実績は薄く、採用前に自分で読んで確かめる前提だと考えてください。

ネイティブを埋め込むnative_liquid_glassの合成順序の制約

忠実さを取るなら、UiKitViewでネイティブのコントロールをそのまま埋め込む方式になります。native_liquid_glassは0.2.15が2026年8月18日公開、iOS専用で、タブバー・ボタン・ナビゲーションバー・ツールバー・スイッチ・スライダーなど18種を提供します。iOS 26以降では各ウィジェットが自動的にLiquid Glassの外観を取り、それ未満のiOSと非iOSでは通常の外観へ落ちる設計です。

制約は合成の順序に出ます。ガラスはFlutterの描画層の上に合成されるため、画面遷移の途中でFlutter側から見た目を制御できません。READMEにもタブ遷移中のちらつきと、コンテキストメニューを1画面に複数置いたときの干渉が記載されています。同系統のcupertino_nativeは支持数343件を集めていますが、0.1.1が2025年9月8日公開で11か月止まり、作者自身が「完全なパッケージというより概念実証」と書いています。

パッケージ 方式 対応環境 最終公開 2026年8月の扱い
liquid_glass_widgets シェーダ描画 6環境すべて 2026年8月18日 新規案件の第一候補
liquid_glass_renderer シェーダ描画 Android・iOS・macOS 2025年11月13日 停滞・新規採用は回避
cupertino_liquid_glass ぼかし近似 6環境すべて 2026年7月10日 小面積の部品に限定
native_liquid_glass UiKitView埋め込み iOSのみ 2026年8月18日 忠実さを優先する場合
cupertino_native PlatformView iOS・macOS 2025年9月8日 概念実証・土台に不可

数字は2026年8月19日にpub.devのAPIで取得しました。この分野は入れ替わりが速く、半年前の記事が挙げる名前がすでに止まっている例が二つあります。採用前に最終公開日を必ず確認してください。

受託案件でLiquid Glass対応を見送ってよい条件と着手の線引き

ここは立場をはっきりさせます。業務系のFlutterアプリでLiquid Glass対応を今期に入れる必要は、ほとんどの案件でありません。見送りは怠慢ではなく、条件を満たしたうえでの判断として成立します。

iOS 26 SDKの提出期限と審査要件から見て先送りできる条件

Appleは2026年4月28日から、App Store Connectへ提出するアプリをXcode 26以降・iOS 26系のSDKでビルドすることを必須にしました。この期限は外観ではなくビルド環境の話で、Flutter側はツールチェーンをXcode 26に上げるだけで満たせます。外観をガラスに寄せなかったことを理由に審査で差し戻される規定は、この要件に含まれていません。

したがって、次の3条件がそろうなら先送りして構いません。第一に、アプリが社内利用または特定業種向けで、App Storeの一覧で他アプリと並べて比較されないこと。第二に、画面の主役が表・入力フォーム・帳票であり、ガラス面を置ける小面積のナビゲーション部品が少ないこと。第三に、iOS以外にもAndroidを配っており、片方だけ見た目を変えると保守が二重化すること。この3つに当てはまる案件で工数を割く先は、外観よりも起動時間と入力の取りこぼしになります。

逆に見送れないのは、一般消費者向けでApp Storeのスクリーンショットが比較対象になるアプリです。iOS 26以降の端末で標準アプリと並ぶと、角の丸みと素材感の差で古く見えます。Flutterを継続するかどうかを含めた判断材料はFlutterの将来性をリリース実績と国内案件数から見た整理にまとめています。

着手する場合にガラス面を当てる範囲をナビゲーションに絞る判断

着手すると決めたなら、当てる範囲を先に固定してください。AppleのHuman Interface Guidelinesは、Liquid Glassを機能レイヤー、つまりコントロールとナビゲーション、一時的に現れるUIに限定し、コンテンツレイヤーには使わないと定めています。この線をFlutter側でも守ります。

具体的には、タブバー・上部のナビゲーションバー・フローティングのアクションボタンの3か所までにとどめ、リスト項目やカード、テキストの背面には敷きません。この絞り方には副次的な効果があります。ガラス面が3枚以内なら、シェーダの負荷が問題になる端末がほぼ出ません。liquid_glass_rendererは「ブレンドする形状は16枚まで」と上限を示していますが、実務で必要な枚数は片手で足ります。

アクセシビリティ設定への追従を外観の作り込みより先に決める理由

順序を間違えると作り直しになりかねません。iOSの「透明度を下げる」「視差効果を減らす」が有効な端末では、ガラス表現を止めて不透明な面へ落とす必要があります。ここを後付けにすると、シェーダ側で組んだ配色と退避時の単色面の配色が合わず、両方を調整し直すことになります。

先に決めるべきは、退避時の背景色とテキストのコントラスト比です。この一組を確定させてから、その上にガラス表現を重ねる順で作ってください。liquid_glass_widgetsはReduce MotionとReduce Transparencyへの追従を組み込み済みで、退避時の描画コストが増えない設計になっています。自前でシェーダを書く場合は、MediaQueryのdisableAnimationsとhighContrastを見て分岐させます。確認は明暗両方の背景で行ってください。

cupertino_uiへの移行と本体ライブラリ非推奨化に備える段取り

ガラス対応とは別に、2026年後半のFlutterには外せない作業が控えています。ここを片付けないと、将来Cupertino側にガラスが入ったときに乗り換えられません。

2026年11月の非推奨化までに終えておきたい依存関係の整理

Flutter 3.47の公表によれば、コアSDKに残っている旧MaterialとCupertinoのライブラリは、11月の秋の安定版で正式に非推奨化される予定です。移行先はpub.devのmaterial_ui 1.0.0とcupertino_ui 1.0.0で、いずれもFlutter 3.44以上・Dart 3.12系を要求します。作業自体はインポート先の差し替えが中心ですが、自作ウィジェットがpackage:flutter/cupertino.dartの内部実装に依存している箇所は個別に確認が要ります。

SDKの版そのものを動かす作業は、Flutter 3.44のSPM既定化と移行判断で整理した論点と重なる部分が多いはずです。ガラス表現のほうはGlassSurfaceのような薄いラッパーを1枚挟み、どのパッケージを使うかをそのファイルだけで切り替えられる状態にしておくと、将来cupertino_uiが公式対応した際の差し替えが1か所で済みます。既存プロジェクトの版上げとパッケージ移行、そのうえでのUI方針の決定までを一括で見直したい場合は、Flutter / React Nativeによるクロスプラットフォーム開発でご相談を承っています。

よくある質問

FlutterのLiquid Glass対応について、検索で多く見られる質問に答えます。回答はすべて2026年8月19日時点の一次情報にもとづきます。

FlutterはLiquid Glassに公式対応していますか?

していません。要望のissue 170310は2025年6月10日の起票から開いたままで、Flutterチームは同日に「Cupertinoライブラリで新しいApple 26系のUIデザインを開発する予定はなく、コントリビューションも受け付けない」と表明しました。2026年8月12日公開のcupertino_ui 1.0.0にもガラス素材は入っておらず、READMEは移設であることだけを説明しています。

Xcode 26でビルドすればFlutterアプリもガラスになりますか?

なりません。Flutterのウィジェットはネイティブのコントロールを呼ばず、Impellerが直接描画するため、OS側の素材が当たる経路がありません。同じ理由で、ネイティブアプリが旧デザインへ戻すために使うUIDesignRequiresCompatibilityも、Flutterでは設定不要です。共有シートやキーボードなどOSが描くUIだけは、iOS 26以降でガラス素材に変わります。

Liquid Glass非対応だとApp Storeの審査に落ちますか?

落ちません。2026年4月28日から必須になったのはXcode 26以降・iOS 26系SDKでのビルドであって、外観の刷新ではありません。Flutter側はツールチェーンを上げれば要件を満たせます。ただしiOS 26以降の端末では標準アプリとの見た目の差が出るため、一般消費者向けでは印象面の不利が残ります。

liquid_glass_widgetsとcupertino_liquid_glassはどちらを選ぶべきですか?

屈折とスペキュラハイライトまで再現したいならliquid_glass_widgetsです。カスタムのフラグメントシェーダで描き、0.29.8が2026年8月18日公開と更新も続いています。ぼかし程度で足り、シェーダの負荷を避けたい場合はcupertino_liquid_glassが軽量です。ただし後者は支持数10件・ダウンロード497と実績が薄いため、採用前に実装を読んで確認してください。

AndroidでもLiquid Glass風の表現を出してよいですか?

技術的には可能ですが、勧めません。Liquid GlassはAppleのデザイン言語で、AndroidのMaterialとは操作の手応えも階層の考え方も異なるためです。シェーダ系は6環境に対応しますが、Android側はMaterialのままにして、ガラス表現はiOSのみへPlatform.isIOSで分岐させる構成が保守しやすい形です。

関連記事

資料請求

RELATED POSTS 関連記事