This repository was archived by the owner on Feb 25, 2025. It is now read-only.
[iOS API breaking change] Make splashScreenView of FlutterViewController nullable#34743
Merged
auto-submit[bot] merged 1 commit intoflutter:mainfrom Jul 27, 2022
Merged
Conversation
8 tasks
Member
|
What will this change break? |
Contributor
see #34496 (comment) |
Member
@zanderso Specifically it would be a compilation error if the calling code is in Swift and gets the splash screen and stores in a nonnull They would need to update their code to instead store in a @UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
var splashScreen = UIView()
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
var flutterEngine = FlutterEngine(name: "my flutter engine")
let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
splashScreen = flutterViewController.splashScreenView // compilation error: Value of optional type 'UIView?' must be unwrapped to a value of type 'UIView'More likely the add-to-app developer is just setting the view. Storing it with @UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
var flutterEngine = FlutterEngine(name: "my flutter engine")
let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
let splashScreen = flutterViewController.splashScreenView // compiles successfully |
Member
|
Thanks @jmagman. It sounds like this would just need a small migration guide. |
This was referenced Jul 21, 2022
Member
Author
jmagman
approved these changes
Jul 27, 2022
Member
jmagman
left a comment
There was a problem hiding this comment.
LGTM, I'll make sure flutter/website#7385 deprecation notice gets merged.
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Jul 27, 2022
…wController nullable (flutter/engine#34743)
a-wallen
pushed a commit
to a-wallen/engine
that referenced
this pull request
Jul 27, 2022
betrevisan
pushed a commit
to betrevisan/engine
that referenced
this pull request
Jul 29, 2022
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on the talk of https://github.com/flutter/engine/pull/34496/files#r923640588, we should make splashScreenView nullable, then Swift users can remove splashScreenView if they set
nil.But it lead to an API-breaking change for Swift users, if Swift users use the getter of splashScreenView, the return type changed from UIView to UIView? .
Pre-launch Checklist
writing and running engine tests.
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.