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
 

Videos

Abrir menú Cerrar menú
  • Colecciones
  • Todos los videos
  • Información

Más videos

  • Información
  • Resumen
  • Código
  • Explorar las mejoras de la app empresarial espacial

    Descubre cómo las últimas mejoras y API de visionOS 26 amplían el acceso y las capacidades empresariales anunciadas el año pasado. Descubre cómo estas nuevas funcionalidades facilitan la creación de flujos de trabajo de entrenamiento de modelos, mejoran las transmisiones de video y te permiten alinear sistemas de coordenadas en una red local para desarrollar experiencias colaborativas en tu app interna.

    Capítulos

    • 0:04 - Introducción
    • 1:37 - Agilizar el desarrollo
    • 4:54 - Mejorar la experiencia de usuario
    • 13:37 - Visualizar el entorno
    • 24:01 - Próximos pasos

    Recursos

    • Implementing object tracking in your visionOS app
    • Building spatial experiences for business apps with enterprise APIs for visionOS
      • Video HD
      • Video SD

    Videos relacionados

    WWDC25

    • Comparte experiencias de visionOS con personas cercanas

    WWDC24

    • Create enhanced spatial computing experiences with ARKit
    • Explore object tracking for visionOS
    • Introducing enterprise APIs for visionOS
  • Buscar este video…
    • 3:00 - createml on the Mac command line

      xcrun createml objecttracker -s my.usdz -o my.referenceobject
    • 4:28 - VisionEntitlementServices

      import VisionEntitlementServices
      
      func checkLicenseStatus() {
          // Get the shared license details instance
          let license = EnterpriseLicenseDetails.shared
      
          // First, you might check the overall license status
          guard license.licenseStatus == .valid else {
              print("Enterprise license is not valid: \(license.licenseStatus)")
              // Optionally disable enterprise features or alert the user
              return
          }
      
          // Then, check for a specific entitlement before using the feature
          if license.isApproved(for: .mainCameraAccess) {
              // Safe to proceed with using the main camera API
              print("Main Camera Access approved. Enabling feature...")
              // ... enable camera functionality ...
          } else {
              // Feature not approved for this license
              print("Main Camera Access not approved.")
              // ... keep feature disabled, potentially inform user ...
          }
      }
    • 10:04 - SharedCoordinateSpaceModel

      //
      //  SharedCoordinateSpaceModel.swift
      //
      
      import ARKit
      
      class SharedCoordinateSpaceModel {
          let arkitSession = ARKitSession()
          let sharedCoordinateSpace = SharedCoordinateSpaceProvider()
          let worldTracking = WorldTrackingProvider()
      
          func runARKitSession() async {
              do {
                  try await arkitSession.run([sharedCoordinateSpace, worldTracking])
              } catch {
                  reportError("Error: running session: \(error)")
              }
          }
      
          // Push data received from other participants
          func pushCoordinateSpaceData(_ data: Data) {
              if let coordinateSpaceData = SharedCoordinateSpaceProvider.CoordinateSpaceData(data: data) {
                  sharedCoordinateSpace.push(data: coordinateSpaceData)
              }
          }
      
          // Poll data to be sent to other participants
          func pollCoordinateSpaceData() async {
              if let coordinateSpaceData = sharedCoordinateSpace.nextCoordinateSpaceData {
                  // Send my coordinate space data
              }
          }
      
          // Be notified when participants connect or disconnect from the shared coordinate space
          func processEventUpdates() async {
              let participants = [UUID]()
              for await event in sharedCoordinateSpace.eventUpdates {
                  switch event {
                      // Participants changed
                  case .connectedParticipantIdentifiers(participants: participants):
                      // handle change
                      print("Handle change in participants")
                  case .sharingEnabled:
                      print("sharing enabled")
                  case .sharingDisabled:
                      print("sharing disabled")
                  @unknown default:
                      print("handle future events")
                  }
              }
          }
      
          // Be notified when able to add shared world anchors
          func processSharingAvailabilityUpdates() async {
              for await sharingAvailability in worldTracking.worldAnchorSharingAvailability
                  where sharingAvailability == .available {
                  // Able to add anchor
              }
          }
          // Add shared world anchor
          func addWorldAnchor(at transform: simd_float4x4) async throws {
              let anchor = WorldAnchor(originFromAnchorTransform: transform, sharedWithNearbyParticipants: true)
              try await worldTracking.addAnchor(anchor)
          }
      
          // Process shared anchor updates from local session and from other participants
          func processWorldTrackingUpdates() async {
              for await update in worldTracking.anchorUpdates {
                  switch update.event {
                  case .added, .updated, .removed:
                      // Handle anchor updates
                      print("Handle updates to shared world anchors")
                  }
              }
          }
      }
    • 12:50 - contentCaptureProtected

      // Example implementing contentCaptureProtected
      
      struct SecretDocumentView: View {
          var body: some View {
              VStack {
                  Text("Secrets")
                      .font(.largeTitle)
                      .padding()
      
                  SensitiveDataView()
                      .contentCaptureProtected()
              }
              .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
          }
      }
    • 16:48 - CameraRegionView

      //
      //  InspectorView.swift
      //
      
      import SwiftUI
      import VisionKit
      
      struct InspectorView: View {
          @Environment(CameraFeedDelivery.self) private var cameraFeedDelivery: CameraFeedDelivery
      
          var body: some View {
              CameraRegionView(isContrastAndVibrancyEnhancementEnabled: true) { result in
                  var pixelBuffer: CVReadOnlyPixelBuffer?
                  switch result {
                  case .success(let value):
                      pixelBuffer = value.pixelBuffer
                  case .failure(let error):
                      reportError("Failure: \(error.localizedDescription)")
                      cameraFeedDelivery.stopFeed()
                      return nil
                  }
      
                  cameraFeedDelivery.frameUpdate(pixelBuffer: pixelBuffer!)
                  return nil
              }
          }
      }
      
      @main
      struct EnterpriseAssistApp: App {
          var body: some Scene {
              WindowGroup {
                  ContentView()
              }
      
              WindowGroup(id: "InspectorView") {
                  InspectorView()
              }
              .windowResizability(.contentSize)
          }
      }
    • 21:15 - CameraRegionAnchor

      class CameraRegionHandler {
          let arkitSession = ARKitSession()
          var cameraRegionProvider: CameraRegionProvider?
          var cameraRegionAnchor: CameraRegionAnchor?
      
          func setUpNewAnchor(anchor: simd_float4x4, width: Float, height: Float) async {
              let anchor = CameraRegionAnchor(originFromAnchorTransform: anchor,
                                              width: width,
                                              height: height,
                                              cameraEnhancement: .stabilization)
      
              guard let cameraRegionProvider = self.cameraRegionProvider else {
                  reportError("Missing CameraRegionProvider")
                  return
              }
      
              do {
                  try await cameraRegionProvider.addAnchor(anchor)
              } catch {
                  reportError("Error adding anchor: \(error)")
              }
              cameraRegionAnchor = anchor
      
              Task {
                  let updates = cameraRegionProvider.anchorUpdates(forID: anchor.id)
                  for await update in updates {
                      let pixelBuffer = update.anchor.pixelBuffer
                      // handle pixelBuffer
                  }
              }
          }
      
          func removeAnchor() async {
              guard let cameraRegionProvider = self.cameraRegionProvider else {
                  reportError("Missing CameraRegionProvider")
                  return
              }
      
              if let cameraRegionAnchor = self.cameraRegionAnchor {
                  do {
                      try await cameraRegionProvider.removeAnchor(cameraRegionAnchor)
                  } catch {
                      reportError("Error removing anchor: \(error.localizedDescription)")
                      return
                  }
                  self.cameraRegionAnchor = nil
              }
          }
      }
    • 0:04 - Introducción
    • El año pasado, Apple presentó las API empresariales, y este año hay una gran cantidad de nuevas funcionalidades y mejoras. Estas API, diseñadas para apps internas patentadas, requieren derechos administrados y archivos de licencia. Las actualizaciones se centran en agilizar el desarrollo, mejorar la experiencia del usuario y habilitar nuevas capacidades de visualización del entorno.

    • 1:37 - Agilizar el desarrollo
    • La última versión de visionOS amplía el acceso a la API para mejorar las capacidades para los desarrolladores. Las mejoras clave incluyen una mayor disponibilidad de API, mejoras en el seguimiento de objetos y una administración simplificada de licencias empresariales. Varias API presentadas el año pasado, como las de acceso a cámaras web compatibles con UVC y Neural Engine, ahora están abiertas a todos los desarrolladores sin licencias empresariales. Ahora, para entrenar modelos de seguimiento de objetos directamente desde la línea de comandos, puedes automatizar el proceso e integrarlo en las canalizaciones existentes. Los archivos de licencia ahora son accesibles dentro de la cuenta de Apple Developer, las renovaciones son automáticas y una estructura nueva permite comprobar fácilmente el estado de la licencia y la aprobación de la app para funcionalidades concretas.

    • 4:54 - Mejorar la experiencia de usuario
    • Varias funcionalidades nuevas en visionOS 26 mejoran las experiencias del usuario en apps espaciales. Una de ellas es el modo de seguimiento de ventana, que permite a los usuarios habilitar una ventana para que se muevan mientras navegan por un entorno espacial. Esto es particularmente útil para tareas que requieren referencia frecuente a la información mientras te mueves. Para habilitar este modo, debes solicitar y administrar un derecho de licencia específico. La computación espacial también se mejora para la colaboración. Los espacios de coordenadas compartidos permiten que las personas que están físicamente juntas compartan sus experiencias espaciales. Todos pueden interactuar con el contenido de la app y hablar sobre él como si estuviera físicamente presente. Puedes usar SharePlay para una configuración sencilla u obtener más control, la nueva API de ARKit llamada “SharedCoordinateSpaceProvider”, disponible específicamente para clientes empresariales. Esta API permite que varios participantes alineen sus sistemas de coordenadas y compartan datos a través de un transporte de red local elegido, y así crear un sistema de coordenadas común para anclajes mundiales compartidos. La privacidad y la seguridad de los datos también son de suma importancia, especialmente en apps empresariales que manejan información confidencial. Una nueva API, llamada “contentCaptureProtected”, te permite marcar elementos específicos de interfaz o escenas enteras como protegidos. Luego, el sistema oculta este contenido protegido en cualquier captura de pantalla, grabación, vista reflejada o sesión compartida, lo que garantiza que los datos confidenciales permanezcan visibles solo para el que usa el dispositivo.

    • 13:37 - Visualizar el entorno
    • La última versión de visionOS mejora las capacidades del Apple Vision Pro para unir los mundos físico y digital. Se amplía el sistema de cámaras, lo que proporciona un mayor acceso a las cámaras del dispositivo a través de la API “CameraFrameProvider” de ARKit. Esta capacidad permite que las apps usen las imágenes de la cámara tanto en entornos de espacios envolventes como compartidos. Una nueva funcionalidad permite a las personas ampliar y mejorar áreas específicas de su visión del mundo real. Al usar “CameraRegionView” de VisionKit, los desarrolladores pueden crear ventanas que muestren transmisiones de video dedicadas de regiones seleccionadas y hacer que los detalles críticos sean más claros. Esta funcionalidad es muy útil para profesionales, como técnicos e inspectores, que necesitan monitorear medidores o componentes pequeños en áreas poco iluminadas. Puedes implementar esta funcionalidad con solo unas pocas líneas de código SwiftUI y usando las API “CameraRegionView” y “CameraRegionProvider”. Estas API ofrecen opciones de procesamiento integradas, como mejora del contraste y la vitalidad, y permiten el análisis y la modificación de imágenes personalizadas, lo que proporciona flexibilidad para diversas apps. La funcionalidad de regiones de cámara de ARKit mejora la transmisión en el Apple Vision Pro, que se puede aplicar a áreas específicas definidas por ventanas virtuales llamadas “CameraRegionAnchors”. Puedes crear estos anclajes especificando su posición, orientación y tamaño en el mundo real. ARKit luego proporciona búferes de píxeles estabilizados y mejorados para estas regiones. Esta funcionalidad permite hacer zoom y desplazarse panorámicamente, y ajusta dinámicamente la velocidad de cuadros según el algoritmo de mejora elegido. Asegúrate de tener en cuenta el uso de recursos, ya que las regiones de cámara más grandes afectan la memoria y el procesamiento.

    • 24:01 - Próximos pasos
    • Para los mejores resultados en las apps empresariales del Apple Vision Pro, prioriza la seguridad, respeta la privacidad recopilando solo los datos necesarios, asegúrate de que las apps cumplan con los requisitos de elegibilidad (internas o B2B personalizadas) y solicita solo los derechos necesarios para una funcionalidad específica.

Developer Footer

  • Videos
  • WWDC25
  • Explorar las mejoras de la app empresarial espacial
  • 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