From e5708708d2c165cdbc7e6562160b6af6a03af777 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 15 Jul 2026 14:03:52 -0400 Subject: [PATCH 1/3] [pigeon] Clean up legacy registrant code Now that the new APIs are available on stable, remove the view controller subclass workaround and use the standard scene-friendly registration system for channel code. --- .../example/app/ios/Runner/AppDelegate.swift | 24 ++++--------------- .../app/ios/Runner/Base.lproj/Main.storyboard | 4 ++-- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/packages/pigeon/example/app/ios/Runner/AppDelegate.swift b/packages/pigeon/example/app/ios/Runner/AppDelegate.swift index 9ffa2456849a..3926f584d61f 100644 --- a/packages/pigeon/example/app/ios/Runner/AppDelegate.swift +++ b/packages/pigeon/example/app/ios/Runner/AppDelegate.swift @@ -94,31 +94,17 @@ func sendEvents(_ eventListener: EventListener) { } @main -@objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } -} - -// TODO(stuartmorgan): Once 3.33+ reaches stable, remove this subclass and move the setup to -// AppDelegate.register(...). This approach is only used because this example needs to support -// both stable and master, and 3.32 doesn't have FlutterPluginRegistrant, while 3.33+ can't use -// the older application(didFinishLaunchingWithOptions) approach. -@objc class ExampleViewController: FlutterViewController { - override func awakeFromNib() { - super.awakeFromNib() +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) let api = PigeonApiImplementation() + let binaryMessenger = engineBridge.applicationRegistrar.messenger() ExampleHostApiSetup.setUp(binaryMessenger: binaryMessenger, api: api) let controller = self // #docregion swift-init-event let eventListener = EventListener() - StreamEventsStreamHandler.register( - with: controller.binaryMessenger, streamHandler: eventListener) + StreamEventsStreamHandler.register(with: binaryMessenger, streamHandler: eventListener) // #enddocregion swift-init-event sendEvents(eventListener) } diff --git a/packages/pigeon/example/app/ios/Runner/Base.lproj/Main.storyboard b/packages/pigeon/example/app/ios/Runner/Base.lproj/Main.storyboard index 5c266a12dd93..97fed9a4b200 100644 --- a/packages/pigeon/example/app/ios/Runner/Base.lproj/Main.storyboard +++ b/packages/pigeon/example/app/ios/Runner/Base.lproj/Main.storyboard @@ -7,10 +7,10 @@ - + - + From 24661f3341cfccc4a5100a7919b632fb8a19ad17 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 15 Jul 2026 14:18:13 -0400 Subject: [PATCH 2/3] Remove unused variable --- packages/pigeon/example/app/ios/Runner/AppDelegate.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/pigeon/example/app/ios/Runner/AppDelegate.swift b/packages/pigeon/example/app/ios/Runner/AppDelegate.swift index 3926f584d61f..8e0401597fd2 100644 --- a/packages/pigeon/example/app/ios/Runner/AppDelegate.swift +++ b/packages/pigeon/example/app/ios/Runner/AppDelegate.swift @@ -101,7 +101,6 @@ func sendEvents(_ eventListener: EventListener) { let api = PigeonApiImplementation() let binaryMessenger = engineBridge.applicationRegistrar.messenger() ExampleHostApiSetup.setUp(binaryMessenger: binaryMessenger, api: api) - let controller = self // #docregion swift-init-event let eventListener = EventListener() StreamEventsStreamHandler.register(with: binaryMessenger, streamHandler: eventListener) From d9d1c371926d654b5f59de8f1e7e63989300d639 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 15 Jul 2026 14:53:54 -0400 Subject: [PATCH 3/3] Update excerpt --- packages/pigeon/example/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/pigeon/example/README.md b/packages/pigeon/example/README.md index 489a4aed60b0..9dba8e33d35f 100644 --- a/packages/pigeon/example/README.md +++ b/packages/pigeon/example/README.md @@ -439,8 +439,7 @@ Register the handler with the generated method. ```swift let eventListener = EventListener() -StreamEventsStreamHandler.register( - with: controller.binaryMessenger, streamHandler: eventListener) +StreamEventsStreamHandler.register(with: binaryMessenger, streamHandler: eventListener) ``` ### Kotlin