Compose Multiplatform Application with IOS native Navigation for IOS App in common code and Voyager for other platforms
- Looking to build with KMP and CMP? Let's connect LinkedIn
- Featured in Kotlin Weekly
This project is an experiment to explore how iOS navigation can be implemented using Compose Multiplatform. The goal is to leverage Kotlin Multiplatform capabilities to create a seamless navigation experience on both Android and iOS platforms.
-
Navigation Setup:
- The
Navigator
class is used to manage navigation between different screens. - The
BottomSheetNavigator
is used to handle bottom sheet navigation.
- The
-
View Controller Wrapping:
- The
extendedComposeViewController
function creates aUIViewController
that hosts a Compose UI. - The
UIViewControllerWrapper
class wraps anotherUIViewController
and adds gesture recognizer functionality to handle swipe gestures.
- The
-
Gesture Handling:
- The
UIViewControllerWrapper
implements theUIGestureRecognizerDelegateProtocol
to handle swipe gestures. - Swipe gestures are added to the view controller to enable navigation through swiping.
- The
-
Interactive Pop Gesture:
- The
interactivePopGestureRecognizer
is enabled for the entire screen to allow swipe-back navigation. - The delegate for the
interactivePopGestureRecognizer
is set to theUIViewControllerWrapper
to manage the gesture.
- The