This sample implements a simple master-detail application using Orbit MVI.
-
The application uses Koin for dependency injection with dependencies defined in DependencyInjection . iOS exposes the dependencies in ViewModels.
-
PostListViewModel loads a list of posts and PostDetailsViewModel the details of a post.
-
Navigation between the list and the detail view uses Jetpack's Navigation. PostListViewModel posts a side effect which PostListScreen observes and sends to the
NavController
. -
The state is accessed in the screens through a
Flow
. -
Jetpack Compose is used to render layouts throughout.
-
Navigation between the list and the detail view uses programmatic navigation based on The future of SwiftUI navigation (?) . PostListViewModel posts a side effect which PostListView observes and sends to the
NavigationView
. -
The state is accessed in the screens through a Combine
@Published
observable object. -
SwiftUI is used to render layouts throughout.
- Saved state is not currently supported