Open-Source-трибуна на HighLoad++

SUINavigation

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. Есть отдельная библиотека, позволяющая проводить тестирование вашего приложения в части навигации.
Ссылка на проект