Migrate iOS app framework to required UIKit scene-based lifecycle#1503
Open
SRSaunders wants to merge 5 commits intoKhronosGroup:mainfrom
Open
Migrate iOS app framework to required UIKit scene-based lifecycle#1503SRSaunders wants to merge 5 commits intoKhronosGroup:mainfrom
SRSaunders wants to merge 5 commits intoKhronosGroup:mainfrom
Conversation
Collaborator
|
@SRSaunders Please ensure the copyright points to you for the new files. I do want to ensure you get credit. In fact, are you in the contributors list in the Repo? You certainly deserve to be if you're not, please add yourself there if you aren't currently in there. |
Contributor
Author
|
Thanks @gpx1000 for the vote of support, I will change the copyright on those two files. I think I am already in the contributors list. At least I see my githib id on the front page in the Contributors area. |
Collaborator
|
I'll check if we want to update the CONTRIBUTORS.md to have the core contributors so it's an updated list of those that support this project. I think given how much you've done, you definitely qualify. Thanks for the help! |
gpx1000
approved these changes
Apr 7, 2026
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
Apple is requiring iOS apps to adopt their new UIKit scene-based lifecycle. iOS 26 is the final version that will support the old-style application-based lifecycle. Users of the Vulkan-Samples project on iOS and the iOS Simulator currently receive deprecation warnings that apps built with the old-style lifecycle will not run in future iOS versions.
I thought I would get a start on this before the dead end arrives and the project will not run. The attached code updates the Vulkan-Sample iOS app to adopt UIKit's SceneDelegate class and scene management concepts. This was made easier since I just completed and submitted similar changes to @SaschaWillems Vulkan examples project. The iOS app in the Vulkan-Samples project should now work without any deprecation warnings.
As a bonus, I also added UI touchscreen input to the iOS app for selection and dragging. This means you can change options in the overlay GUI, and activate camara rotation for samples.
Tested using Xcode 26.3 on macOS Sequoia 15.7.4 targetting:
iOS 18.6.2 on a real iPhone 16, and
iOS 26.2 on an iPhone 17 Pro running on iOS Simulator.
Note that I added two new files for this work: SceneDelegate.h and SceneDelegate.m. To keep things simple, I replicated the license headers from the equivalent AppDelegate files, but assigned them to me instead.
I personally don't need the license to refer to me, and am happy to attribute to Holochip if that's acceptable.I hope @gpx1000 is okay with this.General Checklist:
Please ensure the following points are checked:
Note: The Samples CI runs a number of checks including:
If this PR contains framework changes:
batchcommand line argument to make sure all samples still work properlySample Checklist
If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist: