Apple、SwiftUIを「全部書き直すもの」ではなく既存アプリの継ぎ足し道具にした
WWDC26でAppleが強く押し出したのは、SwiftUIへの全面移行ではありません。@Observableで既存のAppKitやUIKitビューを自動更新し、NSHostingViewで新しいUIだけ差し込み、NSGestureRecognizerRepresentableやNSHostingMenu、NSHostingSceneRepresentationで古いライフサイクルのまま機能を増やす。SwiftUIは今年、書き直しを迫る技術ではなく、既存アプリの隙間を埋める道具として一段現実的になりました。

Appleは今年、SwiftUI全面移行より「継ぎ足し」を正面から認めた
AppleのSwiftUIトップページは、SwiftUIはUIKitやAppKit alongsideで動くよう設計されており、既存アプリにincrementally adoptできると明記しています。WWDC26の『Use SwiftUI with AppKit and UIKit』は、その建前をかなり具体的な実装にまで下ろしたセッションでした。
セッション要約では、Logic Proのplug-in、XcodeのCoding Assistant、NSSliderやNSSwitchのようなAppKit controlでもSwiftUIが既に使われていると説明しています。Appleは『新規アプリはSwiftUI、既存アプリは旧来フレームワーク』という線引きより、必要な箇所だけSwiftUIへ寄せる実務路線を公然化したと読むほうが正確です。
@ObservableとNSHostingViewで、古い画面のまま新しい部品を差し込める
セッションの前半で効いてくるのはObservationです。AppleはAppKitやUIKitがdraw、layout、updateLayerなどで読んだプロパティを追跡し、@Observableなmodel変更に合わせて再描画できると説明しています。これまで手でneedsDisplayやinvalidateをばらまいていた箇所を、自動追跡に置き換えられるのが大きい。しかもmacOS 15とiOS 18までback-deployできる条件も示されました。
次にAppleは、複雑な描画や新しいinteractionが必要になった場所だけSwiftUIへ切り出す流れを見せています。色選択UIをSwiftUI Canvasで作り、既存のAppKit階層へNSHostingViewで埋め込む。さらに既存のNSGestureRecognizer subclassをNSGestureRecognizerRepresentable経由でSwiftUIへ持ち込み、Force Clickのような既存操作も捨てずに再利用する。全面移行ではなく、いちばんつらい場所だけ先に置き換えるやり方です。
MenuBarExtraや設定画面まで、既存ライフサイクルの上に載せられる
後半で面白いのは、SwiftUIがviewの差し替えだけで終わらないことです。AppleはNSHostingMenuを使い、SwiftUIで組んだButtonやPickerをそのままAppKitのmain menuへ差し込む例を出しました。Force Clickのような入力デバイス依存の操作だけに頼らず、同じ機能をメニューからも触れるようにする考え方です。
| 入口 | 今年の道具 | 意味 |
|---|---|---|
| 状態更新 | @Observable | 手動invalidationsを減らし、古いviewのまま追従しやすくする |
| 新しい部品 | NSHostingView | 複雑な描画や新しいinteractionだけSwiftUIへ逃がせる |
| 既存入力の再利用 | NSGestureRecognizerRepresentable | Force Clickのような既存gesture資産を捨てずに済む |
| メニューとscene | NSHostingMenu / NSHostingSceneRepresentation | AppKit lifecycleのまま設定画面やMenuBarExtraを足せる |
さらにNSHostingSceneRepresentationを使うと、AppKit lifecycleのままSettings sceneやMenuBarExtraまで足せます。つまり既存のNSApplicationDelegateを捨てなくても、SwiftUIのsceneモデルだけ部分的に借りられる。Appleは今年、SwiftUIを新規アプリ専用のきれいな世界から引き戻し、長く運用されているMacアプリの現場へ本気で降ろし始めました。
このセッションが重要なのは、SwiftUIがさらに万能になったからではありません。Apple自身が『全部書き直さなくていい』と言い切り、そのためのObservation、hosting、gesture reuse、menu、scene追加までひと通り揃えてきたからです。既存アプリを抱えるチームにとって、今年のSwiftUIは理想論ではなく、継ぎ足し可能な現実解にかなり近づきました。