Connect with us

Разработка

Что нового в SwiftUI после WWDC25

Давайте узнаем обо всех новых интересных функциях, которые Apple приготовила для нас в этом году.

Опубликовано

/

     
     

Всемирная конференция разработчиков 2025 уже идет, и это идеальное время для изучения самых значительных изменений и дополнений к фреймворку SwiftUI. Давайте узнаем обо всех новых интересных функциях, которые Apple приготовила для нас в этом году.

Компания Apple представила новый язык дизайна под названием Liquid Glass. Благодаря декларативной природе SwiftUI нам не нужно существенно модифицировать код, чтобы изменить дизайн приложений и применить новую концепцию дизайна. Достаточно собрать приложение в Xcode 26, и вы получите новый дизайн вашего приложения.

Навигационные стеки, вкладки, инспекторы, панели инструментов — все теперь стеклянное, более округлое и прозрачное. Хотя нам еще придется внести некоторые коррективы, чтобы улучшить пользовательский опыт, настройки фреймворка по умолчанию уже впечатляют.

Что нового в SwiftUI после WWDC25

В то время как 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 после WWDC25

Тулбары теперь по умолчанию стеклянные. На платформе можно заметить, что многие панели инструментов разделены на группы. Для этого случая в 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.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: