-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version 1.1.0 #26
Version 1.1.0 #26
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall a great piece of pioneering work!
Sources/FuturedHelpers/Helpers/CoordinatorSceneFlowProvider.swift
Outdated
Show resolved
Hide resolved
Sources/FuturedHelpers/Helpers/CoordinatorSceneFlowProvider.swift
Outdated
Show resolved
Hide resolved
Sources/FuturedHelpers/Helpers/CoordinatorSceneFlowProvider.swift
Outdated
Show resolved
Hide resolved
Sources/FuturedHelpers/Helpers/CoordinatorSceneFlowProvider.swift
Outdated
Show resolved
Hide resolved
Sources/FuturedHelpers/Helpers/CoordinatorSceneFlowProvider.swift
Outdated
Show resolved
Hide resolved
...lates/Tab Coordinator.xctemplate/___VARIABLE_tabCoordinatorIdentifier___TabCoordinator.swift
Outdated
Show resolved
Hide resolved
- This end destination should trigger a scene display outside of the scene provider. | ||
2. Other destinations will be used to display scenes defined within the scene provider. | ||
|
||
# Example # |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# Example # | |
# Example # | |
Declare a `protocol` conforming to the composition. The protocol should only be conformed to by enums. We use the requirements to force appearance of certain cases: [SE-0280](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0280-enum-cases-as-protocol-witnesses.md). |
static var destination: Self { get } | ||
static var end: Self { get } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We probably should use naming which does not appear to have a special meaning, if it is only an example.
static var destination: Self { get } | |
static var end: Self { get } | |
static var someDestination: Self { get } | |
static var otherDestionation: Self { get } |
|
||
|
||
/** | ||
A protocol providing an interface for reusable scene flow providers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is a reusable scene flow provider? Is my suggestion correct?
A protocol providing an interface for reusable scene flow providers. | |
A protocol providing an interface for reusable scene flow providers. *Reusable scene flow provider* is part of a scene flow, which can be used as a part of more *Flow Coordinators*. The shared section of the flow is taken out of the *Flow Coordinator* and placed into a class conforming to `CoordinatorSceneFlowProvider`. |
@@ -30,11 +30,8 @@ final class ___VARIABLE_flowCoordinatorIdentifier___FlowCoordinator: NavigationS | |||
} | |||
|
|||
extension ___VARIABLE_flowCoordinatorIdentifier___FlowCoordinator { | |||
enum Destination: String, Hashable, Identifiable { | |||
@EnumIdentable | |||
enum Destination: Hashable, Identifiable { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still think we should make the @EnumIdentable
add the conformance. I don't think it's MUST-HAVE at this point, but please, file an Issue to this effect.
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
extension ___VARIABLE_sceneFlowProviderIdentifier___SceneFlowProvider { | ||
@EnumIdentable | ||
enum Destination: ___VARIABLE_sceneFlowProviderIdentifier___FlowDestination { | ||
case destination | ||
case end | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see why we need to do this. The Destination
should be only a generic parameter of the ___VARIABLE_sceneFlowProviderIdentifier___SceneFlowProvider
and conformed to by the Destinations of the Flow cooridnators.
If I am not correct, why do we need ___VARIABLE_sceneFlowProviderIdentifier___FlowDestination
at all?
It is still not fully clear to me, how the Scene Provider should work. I don't want to hinder the acceptance because of the documentation. I have made some requests and the rest of it can be deferred to an Issue (on both FuturedKit and macros). However, I'm reluctant to merge Scene Provider in this state. |
@EnumIdentifiersGenerator
macro for auto-generating code forHashable
andIdentifiable
protocol conformanceModalCoverModel<Destination>
to avoid UI confusion regarding sheet and full screen cover presentation orderPrerequisites for Merging:
LaunchScreen
inInfo.plist
to ensure proper displayEnumIdentifiersGenerator
currently, but ideally, it should be part ofFuturedArchitecture
Macro Expansion Example: