Готовая SwiftUI-оболочка приложения: на iPhone она использует нижний tab bar, а на iPad — sidebar и опциональный inspector. Навигационное состояние остаётся общим и не теряется при изменении размера окна.
- Системный
TabViewдля компактной ширины NavigationSplitViewдля iPad и широких окон- Независимая история навигации каждой вкладки
- Sidebar-only коллекции без перегруженного tab bar
- Контекстный inspector
- Enum-маршруты для deep links
- Нативный Liquid Glass на iOS 26
- Спокойный fallback для iOS 17–25
- Dynamic Type, VoiceOver и режимы повышенной контрастности
- Три профессиональные темы без градиентов: Classic, Graphite и Stone
Откройте в Xcode:
Examples/AdaptiveShellDemo/AdaptiveShellDemo.xcodeproj
Выберите схему AdaptiveShellDemo и запустите её на iPhone или iPad Simulator.
Добавьте папку проекта как Local Package, импортируйте модуль и создайте:
- Enum вкладок.
- Enum маршрутов.
AdaptiveShellStateв корневом View.- Массив
AdaptiveShellSection. AdaptiveAppShellс feature-контентом и destination closure.
Для iPhone используйте не больше пяти элементов с .tab. Дополнительные коллекции помечайте .hidden: они появятся только в sidebar.
Shell управляет только presentation и навигацией. Он не знает о сети, базе данных или бизнес-моделях приложения. Благодаря этому шаблон можно перенести в другой проект без удаления демонстрационной архитектуры.
Каждая вкладка получает отдельный route path. Если пользователь открыл detail внутри Projects, перешёл в Search и вернулся, Projects останется на прежнем экране.
Inspector изначально закрыт, чтобы в portrait-режиме iPad не вытеснять sidebar. На широком экране он открывается системной кнопкой.
swift test
xcodebuild \
-project Examples/AdaptiveShellDemo/AdaptiveShellDemo.xcodeproj \
-scheme AdaptiveShellDemo \
-destination 'generic/platform=iOS Simulator' \
CODE_SIGNING_ALLOWED=NO \
buildЛицензия: MIT.
