SceneDelegate and AppDelegate split
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 193
- Forks
- 23
- PR merge metrics
- No merged PRs in 30d
Description
Original issue: https://github.com/uber/RIBs/issues/339
OS 13 introduces new SceneDelegate that suppose to take care of all UI related instantiations and takes that responsibility away from AppDelegate. Now app delegate suppose to setup dependencies and data for the app. Are there any plans to split things up the same way in RIBs architecture?
As it currently stands RootBuilder.build() creates an instance of LaunchRouting and then we give that instance a window to work with and draw content/VCs on. It seems like if this setup is preserved that means RootBuilder.build() should be called and LaunchRouting should be created for each scene instance. That makes sense because we would want to have a brand new RIBs tree for each window. But would it make sense to move shared dependency between those trees to AppDelegate? AppComponent that implements Component, RootDependency could potentially be created in AppDelegate and passed to ever new root for every new scene/window created.
Although I'm not sure how actual mechanics of this are going to work because as far as I can tell there is no way to pass things cleanly from app delegate instance to scene delegate instances.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue centers on RootBuilder.build(), LaunchRouting, AppComponent, AppDelegate, and SceneDelegate, with the original discussion linked for context. Start by reading those entry points and tracing how dependencies and windows are passed today. Done would require an agreed design for separate scene trees and shared app dependencies, but the issue does not define that design or name tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100