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
  • Turbine a conectividade do dispositivo com o Wi-Fi Aware

    Saiba como criar conexões de rede ponto a ponto com o Wi-Fi Aware. Também abordaremos como compartilhar vídeos em tempo real, transferir arquivos grandes e controlar acessórios com largura de banda aprimorada e latência menor. E você saberá como usar os frameworks DeviceDiscoveryUI, AccessorySetupKit e Network para usar o Wi-Fi Aware em seu app.

    Capítulos

    • 0:00 - Introdução
    • 1:01 - Visão geral
    • 7:46 - Emparelhar
    • 15:05 - Conectar
    • 19:01 - Otimizar
    • 22:26 - Diretrizes

    Recursos

    • Wi-Fi Aware
    • Accessory Design Guidelines
      • Vídeo HD
      • Vídeo SD

    Vídeos relacionados

    WWDC24

    • Meet AccessorySetupKit
  • Buscar neste vídeo...
    • 6:57 - Access capabilities and services

      import WiFiAware
      
      // Check if Wi-Fi Aware is supported on your device
      guard WACapabilities.supportedFeatures.contains(.wifiAware) else { return }
      
      // Publishable service declared in Info.plist
      extension WAPublishableService {
          public static var fileService: WAPublishableService {
              allServices["_file-service._tcp"]!
          }
      }
      
      // Subscribable services declared in Info.plist
      extension WASubscribableService {
          public static var fileService: WASubscribableService {
              allServices["_file-service._tcp"]!
          }
          public static var droneService: WASubscribableService {
              allServices["_drone-service._udp"]!
          }
      }
    • 10:33 - Pair with DeviceDiscoveryUI

      import DeviceDiscoveryUI
      import WiFiAware
      import SwiftUI
      
      // Listener (Publisher) Device
      // Invoke Listener UI
      DevicePairingView(.wifiAware(.connecting(to: .fileService, from: .selected([])))) {
          // Provide a view to display to user before launching System UI
      } fallback: {
          // Provide a view in case of error
      }
      
      // Browser (Subscriber) Device
      // Invoke Browser UI
      DevicePicker(.wifiAware(.connecting(to: .selected([]), from: .fileService))) { endpoint in
          // Process the paired network endpoint
      } label: {
          // Provide a view to display to user before launching System UI
      } fallback: {
          // Provide a view in case of error
      }
    • 12:29 - Pair with AccessorySetupKit

      import AccessorySetupKit
      
      // Configure ASDiscoveryDescriptor (Subscriber)
      let descriptor = ASDiscoveryDescriptor()
      descriptor.wifiAwareServiceName = "_drone-service._udp"
      descriptor.wifiAwareModelNameMatch = .init(string: "Example Model")
      descriptor.wifiAwareVendorNameMatch = .init(string: "Example Inc", compareOptions: .literal)
      let item = ASPickerDisplayItem(name: "My Drone",
                                     productImage: UIImage(named: "DroneProductImage")!,
                                     descriptor: descriptor)
      
      // Create and activate session
      let session = ASAccessorySession()
      session.activate(on: sessionQueue) { event in
          // Closure will execute when device is added with event: .accessoryAdded
          // ASAccessoryWiFiAwarePairedDeviceID can be used to lookup a WAPairedDevice
      }
      // Present Picker UI
      session.showPicker(for: [item]) { error in
          // Handle error
      }
    • 13:51 - Access paired devices

      import Foundation
      import WiFiAware
      
      // WAPairedDevice
      var device: WAPairedDevice // Get using WAPairedDevice.allDevices
      
      // Access WAPairedDevice properties
      let pairingName = device.pairingInfo?.pairingName
      let vendorName = device.pairingInfo?.vendorName
      let modelName = device.pairingInfo?.modelName
      
      // Create a filter to select devices of interest
      let filter = #Predicate<WAPairedDevice> {
          $0.pairingInfo?.vendorName.starts(with: "Example Inc") ?? false
      }
      
      // Get all paired devices, matching the filter, at the current moment
      // A new snapshot of all paired devices each time a device is added, changed, or removed
      for try await devices in WAPairedDevice.allDevices(matching: filter) {
          // Process new snapshot of all paired devices
      }
    • 16:23 - Filter paired devices

      import Foundation
      import WiFiAware
      
      // Listener (Publisher) Device
      // Specify the paired devices of interest for the use case
      let deviceFilter = #Predicate<WAPairedDevice> {
          $0.name?.starts(with: "My Device") ?? false
      }
      
      // Browser (Subscriber) Device
      // Specify the paired devices of interest for the use case
      let deviceFilter = #Predicate<WAPairedDevice> {
          $0.pairingInfo?.vendorName.starts(with: "Example Inc") ?? false
      }
    • 16:54 - Create listener and browser

      import WiFiAware
      import Network
      
      // Listener (Publisher) Device: Construct a NetworkListener
      let listener = try NetworkListener(for:
              .wifiAware(.connecting(to: .fileService, from: .matching(deviceFilter))),
          using: .parameters {
              TLS()
          })
          .onStateUpdate { listener, state in
              // Process state update
          }
      
      // Browser (Subscriber) Device: Construct a NetworkBrowser
      let browser = NetworkBrowser(for:
              .wifiAware(.connecting(to: .matching(deviceFilter), from: .fileService))
          )
          .onStateUpdate { browser, state in
              // Process state update
          }
    • 17:44 - Establish a connection

      // Listener (Publisher) Device: Start NetworkListener
      try await listener.run { connection in  // Radio resources in use
          // Closure executes for each incoming connection
          connection.onStateUpdate { connection, state in
              // Process state update
          }
      }
      
      // Browser (Subscriber) Device: Start NetworkBrowser
      let endpoint = try await browser.run { waEndpoints in // Radio resources in use
              // Review endpoints, decide whether to return or skip
              if let endpoint = self.endpoint(in: waEndpoints) { return .finish(endpoint) }
              else { return .continue }
          }
      // Create the connection
      let connection = NetworkConnection(to: endpoint, using: .parameters {
              TLS()
          })
          .onStateUpdate { connection, state in
              // Process state update
          }
    • 21:11 - Tune performance

      // Listener (Publisher) Device
      // Configure .realtime + .interactiveVideo on NetworkListener
      let listener = try NetworkListener(for:
              .wifiAware(.connecting(to: .fileService, from: .matching(deviceFilter))),
          using: .parameters {
              TLS()
          }
          .wifiAware { $0.performanceMode = .realtime }
          .serviceClass(.interactiveVideo))
      
      // Browser (Subscriber) Device
      // Configure .realtime + .interactiveVideo on NetworkConnection
      let connection = NetworkConnection(to: endpoint, using: .parameters {
              TLS()
          }
          .wifiAware { $0.performanceMode = .realtime }
          .serviceClass(.interactiveVideo))
      
      // Listener (Publisher) Device & Browser (Subscriber) Device
      // Read performance report
      let performanceReport = try await connection.currentPath?.wifiAware?.performance
    • 0:00 - Introdução
    • Saiba como usar o Wi-Fi Aware no iOS e no iPadOS para criar conexões de rede ponto a ponto com baixa latência e alta taxa de transferência.

    • 1:01 - Visão geral
    • O Wi-Fi Aware é um padrão que permite a comunicação direta entre dispositivos, sem a necessidade de roteadores ou servidores centrais. Ele funciona em paralelo com conexões Wi‑Fi tradicionais, permitindo que dispositivos se descubram e se conectem de forma segura e dinâmica para criar experiências locais e efêmeras, como compartilhamento de arquivos, streaming de mídia, controle de acessórios e compartilhamento de tela. O Wi‑Fi Aware é multiplataforma e interoperável, com conexões totalmente autenticadas e criptografadas. Os apps podem definir serviços, especificar funções como editor, assinante ou ambos e emparelhar dispositivos para reconexões rápidas e contínuas sempre que estiverem próximos.

    • 7:46 - Emparelhar
    • Os dispositivos podem ser emparelhados usando o framework DeviceDiscoveryUI ou AccessorySetupKit. O DeviceDiscoveryUI é indicado para emparelhamento entre apps e é compatível com dispositivos Apple e de terceiros. Já o AccessorySetupKit é adequado para emparelhamento entre o app e os acessórios. Após o emparelhamento, ambos os frameworks permitem que os apps acessem e gerenciem a lista de dispositivos emparelhados, recuperem suas propriedades e monitorem alterações no status de emparelhamento, possibilitando a atualização da interface e do estado do app, conforme necessário.

    • 15:05 - Conectar
    • Quando estão emparelhados, os dispositivos podem se conectar uns aos outros. Um dispositivo tem a função de editor e o outro, de assinante. O editor filtra dispositivos específicos e começa a escutar, enquanto o assinante filtra e começa a navegar. Depois que o assinante encontra o editor, ele fornece pontos de extremidade para o app, que então estabelece conexões. O ouvinte recebe e encaminha essas solicitações de conexão, possibilitando a troca de dados.

    • 19:01 - Otimizar
    • Para otimizar o desempenho de conexão de um app, o framework Wi‑Fi Aware permite que os desenvolvedores ajustem determinados parâmetros. Ele oferece dois modos principais de desempenho: em massa e em tempo real. O modo em massa é mais eficiente em termos de energia, mas apresenta maior latência, enquanto o modo em tempo real oferece menor latência com maior consumo de energia. Os desenvolvedores também podem definir a classe de serviço de tráfego para priorizar a transmissão de pacotes, com opções como melhor esforço, vídeo ou voz interativos e serviço em segundo plano. O framework oferece relatórios de desempenho sob demanda, com métricas de intensidade de sinal, taxa de transferência e latência, que os desenvolvedores podem usar para ajustar o desempenho do app com base em testes no mundo real e fatores ambientais.

    • 22:26 - Diretrizes
    • Fabricantes de hardware que desenvolvem dispositivos compatíveis com Wi‑Fi Aware podem consultar as Diretrizes de Design para Acessórios da Apple, disponíveis no site para desenvolvedores, para garantir interoperabilidade, segurança e otimização de desempenho. Esse guia, junto com a documentação do framework e o app de exemplo, oferece recursos essenciais para a criação de experiências de uso de alta qualidade.

Developer Footer

  • Vídeos
  • WWDC25
  • Turbine a conectividade do dispositivo com o Wi-Fi Aware
  • 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