A powerful SwiftUI library that simplifies navigation with custom animations, gestures, and clean code.
NavigationView by Mijick is an open-source SwiftUI library designed to simplify and clean up navigation processes in iOS apps. It addresses the limitations and instability of native SwiftUI navigation components by providing a reliable, performant alternative with features like custom animations, gesture support, and scroll offset memory. The library allows developers to navigate between screens with minimal code, reducing boilerplate and improving code quality.
iOS developers building apps with SwiftUI who need a stable, customizable navigation solution beyond the native NavigationView, particularly those experiencing issues with its reliability or seeking enhanced control over animations and view behavior.
Developers choose NavigationView over alternatives because it offers a stable and reliable navigation framework that fixes common native SwiftUI issues, supports full customization of animations and gestures, and simplifies code with a one-line push/pop API. Its SwiftUI-native design ensures seamless integration and an intuitive developer experience.
Navigation made simple (SwiftUI)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports any animation for push and pop actions, allowing unique transitions beyond SwiftUI's native options, as demonstrated in the GIF examples with vertical slides and other effects.
Enables navigation gestures on selected screens, providing fine-grained user interaction management that native SwiftUI often lacks, with easy configuration in the view setup.
Automatically saves and restores scroll view offsets when navigating away, enhancing user experience without requiring extra code, as highlighted in the key features.
Reduces navigation code to one line with methods like .push(with:), significantly cutting boilerplate and improving code quality, as emphasized in the philosophy and usage examples.
Requires iOS 15 or higher, excluding legacy projects that need to support older iOS versions, which is a significant adoption barrier for many developers.
Views must conform to the NavigatableView protocol, adding complexity and potential refactoring compared to using native SwiftUI views directly, which can increase initial setup time.
As a newer library, it has a smaller community and fewer resources compared to established navigation solutions, which might affect troubleshooting and long-term support stability.