// MARK: ScreenProviding
// Provide ScreenDataUI with SomeScreen
public protocol ScreenProviding {
func screen(forID id: String) -> AnyPublisher<SomeScreen, Error>
}
public struct MockScreenProvider: ScreenProviding {
// ...
}
public struct URLScreenProvider: ScreenProviding {
// ...
}
public struct FileScreenProvider: ScreenProviding {
// ...
}
// MARK: ScreenStoring
// Store SomeScreens for later
public protocol ScreenStoring {
func store(screens: [SomeScreen]) -> AnyPublisher<Void, Error>
}
public struct FileScreenStore: ScreenStoring {
// ...
}
// MARK: ScreenLoading
public protocol ScreenLoading {
func load(withProvider provider: ScreenProviding) -> AnyPublisher<[SomeScreen], Error>
}
// MARK: ScreenLoading Basic Implementation
extension SomeScreen: ScreenLoading {
// ...
}
-
Notifications
You must be signed in to change notification settings - Fork 1
Handling ScreenData's Destinations
License
ServerDriven/ScreenDataNavigation-swift
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
Handling ScreenData's Destinations