View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vídeos

Abrir menu Fechar menu
  • Coleções
  • Todos os vídeos
  • Sobre

Mais vídeos

  • Sobre
  • Resumo
  • Código
  • Novidades do SwiftUI

    Conheça as novidades do SwiftUI para criar ótimos apps para qualquer plataforma Apple. Vamos explorar como dar uma nova aparência ao seu app com o Liquid Glass. Descubra como aumentar o desempenho com melhorias no framework e novos instrumentos e como integrar recursos avançados, como conteúdo da web e edição de texto avançado. Também mostraremos como o SwiftUI está expandindo para mais lugares, incluindo a disposição das visualizações em três dimensões.

    Capítulos

    • 0:00 - Introdução
    • 1:22 - Fazer o novo design brilhar
    • 6:59 - Fundamentos do framework
    • 14:33 - SwiftUI em todo o sistema
    • 20:04 - Expandir visualizações do SwiftUI
    • 25:01 - Próximas etapas

    Recursos

    • Applying Liquid Glass to custom views
    • Populating SwiftUI menus with adaptive controls
    • Adopting Liquid Glass
    • Human Interface Guidelines
      • Vídeo HD
      • Vídeo SD

    Vídeos relacionados

    WWDC25

    • Adote os recursos de concorrência do Swift
    • Aprimore o design do seu app para iPad
    • Codificação guiada: crie uma experiência com texto avançado no SwiftUI com o AttributedString
    • Codificação guiada: explore recursos de localização no Xcode
    • Conheça o layout espacial do SwiftUI
    • Conheça o WebKit para SwiftUI
    • Crie um app em SwiftUI com o novo design
    • Explore a concorrência no SwiftUI
    • Leve o Swift Charts para a terceira dimensão
    • Melhor juntos: SwiftUI e RealityKit
    • Novidades do visionOS 26
    • Novidades dos widgets
    • Novidades na renderização no Metal para apps imersivos
    • Otimize o desempenho do SwiftUI com o Instruments
    • Personalize seu app para Acesso Assistivo
    • Prepare o ambiente com o SwiftUI no visionOS
  • Buscar neste vídeo...
    • 2:27 - Toolbar spacer

      import SwiftUI
      
      struct TripDetailView: View {
          var body: some View {
              NavigationStack {
                  TripList()
                      .toolbar {
                          ToolbarItemGroup(placement: .primaryAction) {
                              UpButton()
                              DownButton()
                          }
      
                          ToolbarSpacer(.fixed, placement: .primaryAction)
      
                          ToolbarItem(placement: .primaryAction) {
                              SettingsButton()
                          }
                      }
              }
          }
      }
      
      struct TripList: View {
          var body: some View {
              Text("TripList")
          }
      }
      
      struct UpButton: View {
          var body: some View {
              Button("Up", systemImage: "chevron.up") { }
          }
      }
      
      struct DownButton: View {
          var body: some View {
              Button("Down", systemImage: "chevron.down") { }
          }
      }
      
      struct SettingsButton: View {
          var body: some View {
              Button("List Settings", systemImage: "ellipsis") { }
          }
      }
    • 2:52 - Toolbar item tint

      import SwiftUI
      
      struct InspectorView: View {
          var body: some View {
              NavigationStack {
                  InspectorMap()
                      .toolbar {
                          ToolbarItem(placement: .primaryAction) {
                              SaveLocationButton()
                                  .buttonStyle(.borderedProminent)
                                  .tint(.pink)
                          }
                      }
              }
          }
      }
      
      struct InspectorMap: View {
          var body: some View {
              Text("InspectorMap")
          }
      }
      
      struct SaveLocationButton: View {
          var body: some View {
              Button("SaveLocationButton") { }
          }
      }
    • 3:30 - Searchable

      import SwiftUI
      
      struct PlannerSplitView: View {
          @State private var query: String = ""
      
          var body: some View {
              NavigationSplitView {
                  Text("Sidebar")
              } detail: {
                  Text("Detail")
              }
              .searchable(
                  text: $query,
                  prompt: "What are you looking for?"
              )
          }
      }
    • 4:12 - Search tab

      import SwiftUI
      
      struct HealthTabView: View {
          @State private var text: String = ""
          
          var body: some View {
              TabView {
                  Tab("Summary", systemImage: "heart") {
                      NavigationStack {
                          Text("Summary")
                      }
                  }
                  Tab("Sharing", systemImage: "person.2") {
                      NavigationStack {
                          Text("Sharing")
                      }
                  }
                  Tab(role: .search) {
                      NavigationStack {
                          Text("Search")
                      }
                  }
              }
              .searchable(text: $text)
          }
      }
    • 4:37 - Glass effect

      import SwiftUI
      
      struct ToTopButton: View {
          var body: some View {
              Button("To Top", systemImage: "chevron.up") {
                  scrollToTop()
              }
              .padding()
              .glassEffect()
          }
      
          func scrollToTop() {
              // Scroll to top of view
          }
      }
    • 5:20 - Menu bar commands

      import SwiftUI
      
      @main
      struct TravelPhotographyApp: App {
          var body: some Scene {
              WindowGroup {
                  RootView()
              }
              .commands {
                  TextEditingCommands()
              }
          }
      }
      
      struct RootView: View {
          var body: some View {
              Text("RootView")
          }
      }
    • 6:40 - Window resize anchor

      import SwiftUI
      
      struct SettingsTabView: View {
          @State private var selection: SectionTab = .general
          var body: some View {
              TabView(selection: $selection.animation()) {
                  Tab("General", systemImage: "gear", value: .general) {
                      Text("General")
                  }
                  Tab("Sections", systemImage: "list.bullet", value: .sections) {
                      Text("Sections")
                  }
              }
              .windowResizeAnchor(.top)
          }
      }
      
      enum SectionTab: Hashable {
          case general
          case sections
      }
    • 11:24 - @Animatable macro

      import SwiftUI
      
      @Animatable
      struct LoadingArc: Shape {
          var center: CGPoint
          var radius: CGFloat
          var startAngle: Angle
          var endAngle: Angle
          @AnimatableIgnored var drawPathClockwise: Bool
      
          func path(in rect: CGRect) -> Path {
              // Creates a `Path` arc using properties
              return Path()
          }
      }
    • 12:15 - Spatial overlay

      import RealityKit
      import SwiftUI
      
      struct Map: View {
          @Binding var timeAlignment: Alignment3D
      
          var body: some View {
              Model3D(named: "Map")
                  .spatialOverlay(
                      alignment: timeAlignment
                  ) {
                      Sun()
                  }
          }
      }
      
      struct Sun: View {
          var body: some View {
              Model3D(named: "Sun")
          }
      }
    • 13:04 - Manipulable and surface snapping

      import ARKit
      import RealityKit
      import SwiftUI
      
      struct BackpackWaterBottle: View {
          @Environment(\.surfaceSnappingInfo) var snappingInfo: SurfaceSnappingInfo
      
          var body: some View {
              VStackLayout().depthAlignment(.center) {
                  waterBottleView
                      .manipulable()
      
                  Pedestal()
                      .opacity(
                          snappingInfo.classification == .table ? 1.0 : 0.0)
              }
          }
      
          var waterBottleView: some View {
              Model3D(named: "waterBottle")
          }
      }
      
      struct WaterBottleView: View {
          var body: some View {
              Model3D(named: "waterBottle")
          }
      }
      
      struct Pedestal: View {
          var body: some View {
              Model3D(named: "pedestal")
          }
      }
    • 15:00 - SwiftUI scenes

      import SwiftUI
      
      @main
      struct PhotoWalk: App {
          var body: some Scene {
              WindowGroup(id: "AppContents") {
                  PhotoWalkContent()
              }
          }
      }
      
      struct PhotoWalkContent: View {
          var body: some View {
              Text("PhotoWalkContent")
          }
      }
    • 16:28 - Assistive Access scene

      import SwiftUI
      
      @main
      struct PhotoWalk: App {
        var body: some Scene {
          WindowGroup {
            ContentView()
          }
      
          AssistiveAccess {
            AssistiveAccessContentView()
          }
        }
      }
      
      struct ContentView: View {
        var body: some View {
          Text("ContentView")
        }
      }
      
      struct AssistiveAccessContentView: View {
        var body: some View {
          Text("AssistiveAccessContentView")
        }
      }
    • 17:52 - SwiftUI presentations from RealityKit

      import RealityKit
      import SwiftUI
      
      struct PopoverComponentView: View {
          @State private var popoverPresented: Bool = false
          var body: some View {
              RealityView { c in
                  let mapEntity = Entity()
      
                  let popover = Entity()
                  mapEntity.addChild(popover)
                  popover.components[PresentationComponent.self] = PresentationComponent(
                      isPresented: $popoverPresented,
                      configuration: .popover(arrowEdge: .bottom),
                      content: DetailsView()
                  )
              }
          }
      }
      
      struct DetailsView: View {
          var body: some View {
              Text("DetailsView")
          }
      }
    • 19:24 - Level of detail

      import SwiftUI
      import WidgetKit
      
      struct PhotoCountdownView: View {
          @Environment(\.levelOfDetail) var levelOfDetail: LevelOfDetail
          var body: some View {
              switch levelOfDetail {
              case .default:
                  RecentPhotosView()
              case .simplified:
                  CountdownView()
              default:
                  Text("Unknown level of detail")
              }
          }
      }
      
      struct RecentPhotosView: View {
          var body: some View {
              Text("RecentPhotosView")
          }
      }
      
      struct CountdownView: View {
          var body: some View {
              Text("CountdownView")
          }
      }
    • 20:28 - WebView

      import SwiftUI
      import WebKit
      
      struct HikeGuideWebView: View {
          var body: some View {
              WebView(url: sunshineMountainURL)
          }
      
          var sunshineMountainURL: URL {
              URL(string: "sunshineMountainURL")!
          }
      }
    • 20:44 - WebView with WebPage

      import SwiftUI
      import WebKit
      
      struct InAppBrowser: View {
          @State private var page = WebPage()
      
          var body: some View {
              WebView(page)
                  .ignoresSafeArea()
                  .onAppear {
                      page.load(URLRequest(url: sunshineMountainURL))
                  }
          }
      
          var sunshineMountainURL: URL {
              URL(string: "sunshineMountainURL")!
          }
      }
    • 21:35 - 3D charts

      import Charts
      import SwiftUI
      
      struct HikePlotView: View {
          var body: some View {
              Chart3D {
                  SurfacePlot(
                      x: "x", y: "y", z: "z") { x, y in
                          sin(x) * cos(y)
                      }
                      .foregroundStyle(Gradient(colors: [.orange, .pink]))
              }
              .chartXScale(domain: -3 ... 3)
              .chartYScale(domain: -3 ... 3)
              .chartZScale(domain: -3 ... 3)
          }
      }
    • 22:18 - macOS drag and drop

      import SwiftUI
      
      struct DragDropExample: View {
          @State private var selectedPhotos: [Photo.ID] = []
          var body: some View {
              ScrollView {
                  LazyVGrid(columns: gridColumns) {
                      ForEach(model.photos) { photo in
                          view(photo: photo)
                              .draggable(containerItemID: photo.id)
                      }
                  }
              }
              .dragContainer(for: Photo.self, selection: selectedPhotos) { draggedIDs in
                  photos(ids: draggedIDs)
              }
              .dragConfiguration(DragConfiguration(allowMove: false, allowDelete: true))
                  .onDragSessionUpdated { session in
                      let ids = session.draggedItemIDs(for: Photo.ID.self)
                          if session.phase == .ended(.delete) {
                              trash(ids)
                              deletePhotos(ids)
                          }
                  }
              .dragPreviewsFormation(.stack)
          }
      }
    • 23:55 - Rich text view

      import SwiftUI
      
      struct CommentEditor: View {
          @Binding var commentText: AttributedString
      
          var body: some View {
              TextEditor(text: $commentText)
          }
      }
    • 0:00 - Introdução
    • Anna e Peter apresentam a sessão, destacando os principais aprimoramentos no SwiftUI, que abrangem desde o desempenho até os elementos da interface. Eles demonstram essas melhorais no app de trilha que criaram. Também apresentam os novos recursos do sistema, o desempenho, as animações, o layout, as novas plataformas para o SwiftUI, o suporte a conteúdo da Web e texto com formatação.

    • 1:22 - Fazer o novo design brilhar
    • Esta seção destaca o novo sistema de design e como ele afeta a aparência dos apps. Ela aborda a nova aparência dos contêineres de navegação, das barras de abas e das barras de ferramentas. Também trata dos aprimoramentos na pesquisa e nos controles. A seção termina com as melhorias nas interações com o iPad, incluindo uma nova barra de menus e o redimensionamento flexível de janelas, e com o redimensionamento de janelas no macOS. APIs apresentadas/destacadas: API Toolbar Spacer: usada para ajustar as seções de itens da barra de ferramentas. Aplicação de cores do Liquid Glass em barras de ferramentas: possibilita adotar itens mais destacados na barra de ferramentas usando estilos de botão com bordas e coloridos em destaque. Efeito de borda de rolagem: aplica um efeito de desfoque ao conteúdo da barra de ferramentas durante a rolagem. Pesquisar funções nas barras de abas: permite que a aba de busca apareça separada do restante das abas na barra de abas. API Commands: usada para criar a barra de menus no macOS e agora também cria o mesmo resultado no iPad. Âncora de redimensionamento de janela: usada para personalizar o local de origem da animação de redimensionamento da janela. Descontinuidade de UIRequiresFullscreen: a chave da lista de propriedades foi descontinuada no iPadOS 26.

    • 6:59 - Fundamentos do framework
    • Esta seção aborda as melhorias nos fundamentos do SwiftUI, incluindo desempenho, facilidade de uso e layout. Ela detalha os ganhos de desempenho nas listas e na rolagem e apresenta o novo instrumento de desempenho do SwiftUI no Xcode. Além disso, explora a macro Animatable e as novas APIs de layout volumétrico, incluindo aquelas para o visionOS. APIs apresentadas/destacadas: Instrumento de desempenho do SwiftUI (Xcode): uma nova ferramenta para inspecionar as áreas problemáticas de desempenho. Macro Animatable: simplifica o uso do protocolo Animatable com a sintetização automática da propriedade de dados animáveis. Macro AnimatableIgnored: exclui as propriedades da animação quando a macro Animatable é utilizada. Alignment3D: um novo tipo para alinhar as visualizações no espaço 3D. Modificador spatialOverlay: usado para posicionar as visualizações no espaço 3D. Modificador Manipulable: permite que os usuários interajam com os objetos no app. APIs de encaixe de cena: usadas para ler as informações fora do ambiente.

    • 14:33 - SwiftUI em todo o sistema
    • Esta seção se concentra em expandir o alcance do SwiftUI nas diferentes plataformas da Apple. Ela discute a ponte de cenas, permitindo que os apps do UIKit e do AppKit interoperem com cenas SwiftUI. Também aborda a cena RemoteImmersiveSpace para renderizar conteúdo estéreo no Apple Vision Pro direto do macOS. Além disso, menciona o tipo de cena AssistiveAccess para modo especial voltado a usuários com deficiências cognitivas. A seção também aborda as melhorias no trabalho com AppKit, RealityKit, Controles e Widgets. APIs apresentadas/destacadas: Ponte de cenas: permite que os apps feitos com UIKit e AppKit usem cenas SwiftUI. Cena MenuBarExtra: um novo tipo de cena. Cena ImmersiveSpace: um novo tipo de cena. Cena RemoteImmersiveSpace: uma cena do macOS para renderizar conteúdo estéreo no Apple Vision Pro. Cena AssistiveAccess: um tipo de cena para mostrar a interface quando alguém estiver usando o iPhone no modo Acesso Assistivo. NSGestureRecognizerRepresentable: usada para transferir gestos do AppKit para o SwiftUI. Conformidade com Observable para entidades do RealityKit: facilita a observação de mudanças nas entidades do RealityKit direto de views do SwiftUI. Valor de ambiente LevelOfDetail: usado para personalizar a aparência dos widgets com base na proximidade.

    • 20:04 - Expandir visualizações do SwiftUI
    • Esta seção destaca os recursos expandidos de views do SwiftUI. Ela explora o novo WebView para incorporar o conteúdo da web, as melhorias no Swift Charts para gráficos 3D, os aprimoramentos no recurso Arrastar e Soltar e o novo suporte para editar texto com formatação usando AttributedString no TextView. APIs apresentadas/destacadas: WebView: uma nova view do SwiftUI para mostrar conteúdo da web no app. WebPage: um novo tipo de modelo observável criado para o Swift a fim de permitir interação avançada com conteúdo da web. Chart3D: usada para mostrar gráficos em três dimensões. Modificadores específicos de Z (Swift Charts): usados para especificar as escalas no espaço 3D. Modificador Draggable (vários itens): permite arrastar vários itens. Modificador DragContainer: cria uma view de um contêiner para itens arrastáveis. API DragConfiguration: usada para personalizar operações de arrastar. Modificador OnDragSessionUpdated: usado para observar eventos de arrastar. TextView com AttributedString: permite a edição de texto com formatação no SwiftUI.

    • 25:01 - Próximas etapas
    • Os apresentadores resumem os principais pontos da sessão, incentivando os desenvolvedores a explorar os novos recursos e as APIs. Também destacam o novo design, o novo instrumento de desempenho, o layout volumétrico, as melhorias no texto com formatação e o suporte ampliado da plataforma para controles e widgets.

Developer Footer

  • Vídeos
  • WWDC25
  • Novidades do SwiftUI
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines