Разработка
Что нового в SwiftUI после WWDC25
Давайте узнаем обо всех новых интересных функциях, которые Apple приготовила для нас в этом году.
Всемирная конференция разработчиков 2025 уже идет, и это идеальное время для изучения самых значительных изменений и дополнений к фреймворку SwiftUI. Давайте узнаем обо всех новых интересных функциях, которые Apple приготовила для нас в этом году.
Компания Apple представила новый язык дизайна под названием Liquid Glass. Благодаря декларативной природе SwiftUI нам не нужно существенно модифицировать код, чтобы изменить дизайн приложений и применить новую концепцию дизайна. Достаточно собрать приложение в Xcode 26, и вы получите новый дизайн вашего приложения.
Навигационные стеки, вкладки, инспекторы, панели инструментов — все теперь стеклянное, более округлое и прозрачное. Хотя нам еще придется внести некоторые коррективы, чтобы улучшить пользовательский опыт, настройки фреймворка по умолчанию уже впечатляют.
В то время как API навигационного стека не изменился, навигация вкладками предоставляет нам несколько новых API, позволяющих улучшить пользовательский опыт с учетом нового языка дизайна. Если вы все еще используете старые TabView API , самое время отрефакторить свою навигацию по вкладкам. Хотя старые API также получают стеклянные преобразования, новые позволяют нам использовать их лучше.
private var tabNavigation: some View { TabView { Tab("feed", systemImage: "ruler") { feedTab } Tab("insights", systemImage: "chart.xyaxis.line") { NavigationStack { InsightsFeatureView() .navigationTitle("insights") } } Tab("awareness", systemImage: "text.book.closed") { NavigationStack { AwarenessView() .navigationTitle("awareness") } } Tab("settings", systemImage: "ruler") { NavigationStack { SettingsView(settings: settings) .navigationTitle("settings") } } Tab("search", systemImage: "magnifyingglass", role: .search) { NavigationStack { SearchFeatureView(store: searchStore) } } } }
Как видно по картинке выше, я использую новый Tab API, чтобы переместить поиск в нижнюю часть экрана и отделить его от других вкладок.
Тулбары теперь по умолчанию стеклянные. На платформе можно заметить, что многие панели инструментов разделены на группы. Для этого случая в SwiftUI появился новый тип ToolbarSpacer
, позволяющий разделять панели инструментов.
@ToolbarContentBuilder private var toolbar: some ToolbarContent { ToolbarItem(placement: .topBarLeading) { Button { if isPro { sheetShown = .gpt } else { unlockPro() } } label: { Label("gpt", systemImage: "sparkles") } .popoverTip(FeedTip.gpt) } ToolbarItemGroup(placement: .topBarTrailing) { Button("editor", systemImage: "pencil") { sheetShown = .editor } .keyboardShortcut("n") } ToolbarSpacer(.fixed, placement: .topBarTrailing) ToolbarItemGroup(placement: .topBarTrailing) { Button(LocalizedStringKey(HKQuantityType.bloodGlucose.identifier), systemImage: "carrot") { sheetShown = .bloodGlucose } .buttonStyle(.glass) Button(LocalizedStringKey(HKQuantityType.bodyMass.identifier), systemImage: "scalemass") { sheetShown = .bodyMass } } }
Кнопки также получили новый тип GlassButtonStyle
, который можно задать с помощью модификатора вида buttonStyle
.
Button { // action } label: { Label("add", systemImage: "plus") } .buttonStyle(.glass)
Когда вы создаете кастомное представление, которое хотите сделать стеклянным, есть специальный модификатор вида glassEffect
.
HStack { // views } .glassEffect()
Помимо новых API дизайна, мы также получили долгожданную поддержку attributed строк в представлении TextEditor
. Еще одна долгожданная функция — WebView
, которая также появилась в этом году.
import WebKit struct BrowserView: View { @State var page = WebPage() var body: some View { WebView(page) .onAppear { page.load(URLRequest(url: URL(staticString: "https://google.com"))) } } }
Новый WebView
позволяет не только загружать веб-страницы, но и наблюдать за ними, настраивать user agent и т.д.
Это будет огромный год для SwiftUI на macOS. Как отметила Apple, в macOS значительно повысилась производительность List и других прокручиваемых представлений. Apple также представила новый шаблон Instruments, который значительно упрощает профилирование приложений SwiftUI.
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2025.22
-
Новости2 недели назад
Видео и подкасты о мобильной разработке 2025.24
-
Вовлечение пользователей4 недели назад
Небольшое изменение в интерфейсе Duolingo, которое меняет все
-
Маркетинг и монетизация4 недели назад
Институциональные покупки: понимание и обнаружение