Skip to content

chore(samples): uiscene delegate - #1292

Open
renefloor wants to merge 2 commits into
mainfrom
feat/uiscene-delegate
Open

chore(samples): uiscene delegate#1292
renefloor wants to merge 2 commits into
mainfrom
feat/uiscene-delegate

Conversation

@renefloor

@renefloor renefloor commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

🎯 Goal

UISceneDelegate migration needs to happen before iOS 27 and xcode 27 are stable.

🛠 Implementation details

This is sample app only
https://docs.flutter.dev/release/breaking-changes/uiscenedelegate

It also updates app_links dependency with support for UISceneDelegate

Summary by CodeRabbit

  • Bug Fixes

    • Improved iOS app startup and Flutter plugin initialization across the dogfooding app and example applications.
    • Added consistent single-window scene configuration for iOS Flutter apps.
    • Removed an obsolete iOS resource-copying step.
  • Updates

    • Updated the app links package to a newer version.
    • Improved push notification setup during app launch.

renefloor and others added 2 commits July 29, 2026 10:23
Migrate the dogfooding app and the package example apps to the
UIScene lifecycle (https://docs.flutter.dev/release/breaking-changes/uiscenedelegate):

- Register plugins from `didInitializeImplicitFlutterEngine` via
  `FlutterImplicitEngineDelegate` instead of `didFinishLaunchingWithOptions`
- Add `UIApplicationSceneManifest` with `FlutterSceneDelegate` to each Info.plist
- Bump `app_links` to ^7.2.1 for scene-based deep link handling

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@renefloor
renefloor requested a review from a team as a code owner July 29, 2026 08:37
@renefloor renefloor changed the title Feat/uiscene delegate chore(samples): uiscene delegate Jul 29, 2026
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 24d05783-e9c2-4064-bf16-4bd90513fa9f

📥 Commits

Reviewing files that changed from the base of the PR and between d0b3a62 and 4c35cce.

⛔ Files ignored due to path filters (1)
  • pubspec.lock is excluded by !**/*.lock
📒 Files selected for processing (10)
  • dogfooding/ios/Runner.xcodeproj/project.pbxproj
  • dogfooding/ios/Runner/AppDelegate.swift
  • dogfooding/ios/Runner/Info.plist
  • dogfooding/pubspec.yaml
  • packages/stream_video_flutter/example/ios/Runner/AppDelegate.swift
  • packages/stream_video_flutter/example/ios/Runner/Info.plist
  • packages/stream_video_noise_cancellation/example/ios/Runner/AppDelegate.swift
  • packages/stream_video_noise_cancellation/example/ios/Runner/Info.plist
  • packages/stream_video_push_notification/example/ios/Runner/AppDelegate.swift
  • packages/stream_video_push_notification/example/ios/Runner/Info.plist
💤 Files with no reviewable changes (1)
  • dogfooding/ios/Runner.xcodeproj/project.pbxproj

📝 Walkthrough

Walkthrough

The iOS Runner applications now use Flutter implicit engine initialization for plugin registration and method-channel setup, declare single-scene Flutter configurations, remove dogfooding CocoaPods resource copying, and update the app_links dependency.

Changes

iOS Flutter lifecycle migration

Layer / File(s) Summary
Example Runner engine initialization
packages/stream_video_flutter/example/ios/Runner/*, packages/stream_video_noise_cancellation/example/ios/Runner/*, packages/stream_video_push_notification/example/ios/Runner/*
Example apps conform to FlutterImplicitEngineDelegate, register plugins through engineBridge.pluginRegistry, and add single-window Flutter scene manifests.
Dogfooding Runner lifecycle and channel wiring
dogfooding/ios/Runner/AppDelegate.swift, dogfooding/ios/Runner/Info.plist
Startup retains notification setup while plugin registration and method-channel creation move to implicit engine initialization.
Dogfooding build and dependency alignment
dogfooding/ios/Runner.xcodeproj/project.pbxproj, dogfooding/pubspec.yaml
The CocoaPods resource-copy phase is removed and app_links is updated from ^6.4.1 to ^7.2.1.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant AppDelegate
  participant FlutterImplicitEngineBridge
  participant GeneratedPluginRegistrant
  participant FlutterMethodChannel
  AppDelegate->>FlutterImplicitEngineBridge: initialize implicit Flutter engine
  FlutterImplicitEngineBridge->>GeneratedPluginRegistrant: register plugins with pluginRegistry
  FlutterImplicitEngineBridge->>FlutterMethodChannel: create channel with registrar messenger
  FlutterMethodChannel->>AppDelegate: forward method calls
Loading

Possibly related PRs

Suggested reviewers: brazol, xsahil03x

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description includes Goal and Implementation details, but omits Testing, UI evidence, and the required checklist sections. Add the missing template sections: Testing, UI Changes if applicable, and the Contributor/Reviewer checklists.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and matches the main change: migrating samples to UIScene/scene delegate support.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/uiscene-delegate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 11.20%. Comparing base (d0b3a62) to head (4c35cce).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1292   +/-   ##
=======================================
  Coverage   11.20%   11.20%           
=======================================
  Files         686      686           
  Lines       50350    50350           
=======================================
  Hits         5640     5640           
  Misses      44710    44710           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant