SUINavigation
Простой инструмент организации навигации для SwiftUI с поддержкой deeplinks в iOS-приложениях.
Пакет состоит из двух библиотек:
Первая и основная — нужна для организации навигации под технологию SwiftUI, расширяя, стабилизируя и
ускоряя стандартный инструментарий, кроме того делая его более доступным, чем NavigationStack.
Основной акцент — на упрощённую организацию Deeplink в приложениях любой сложности.
Вторая — позволяет осуществлять покрытие навигации автотестами, в том числе с помощью snapshot-подхода.
Основные фичи:
1. Полная поддержка декларативного стиля разработки и стандартов SwiftUI.
2. Поддержка iOS 14, iOS 15, iOS 16, iOS 17, iOS 18, iOS 26. Перечислены все, потому что с каждой
версией в стандартной навигации появлялись новые особенности, заставляющие разработчиков
переписывать уже написанный код, что является проблемой, решённой в этой библиотеке.
3. Основано на NavigationView и NavigationStack, и в соответствии с таргетом происходит
переключение с одного на другой автоматически. Кроме того, в них имеются дефекты и просадки
производительности, которые описаны в документации и исправлены в данной библиотеке.
4. Очень простая работа с URL напрямую, что позволяет дампить навигацию, восстанавливая весь
стек экранов после перезапуска приложения. Кроме того, можно организовать Deeplinks в
приложении, используя то же решение.
5. Поддержка многомодульности, абстрагируя навигацию от реализации.
6. Функционал имеет полное покрытие автотестами, сочетающее в себе unit-тесты, UI-тесты, snapshot-тесты.
7. Есть отдельная библиотека, позволяющая проводить тестирование вашего приложения в части навигации.