View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Videos

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

Más videos

  • Información
  • Resumen
  • Transcripción
  • Código
  • Novedades de Xcode

    Descubre los últimos avances respecto a la productividad y el rendimiento en Xcode 26. Descubre cómo aprovechar modelos de lenguaje grandes en tu flujo de trabajo de desarrollo. Explora mejoras de edición y depuración, herramientas de prueba y rendimiento mejoradas, y Swift Build, el motor del sistema de compilación de código abierto que usa Xcode.

    Capítulos

    • 0:00 - Introducción
    • 0:49 - Optimizaciones
    • 1:42 - Espacio de trabajo y edición
    • 10:37 - Inteligencia
    • 17:47 - Depuración y rendimiento
    • 27:50 - Construcciones
    • 30:15 - Prueba
    • 36:10 - Conclusión

    Recursos

    • Analyzing CPU usage with the Processor Trace instrument
    • Enabling enhanced security for your app
    • Measuring your app’s power use with Power Profiler
    • Understanding and improving SwiftUI performance
    • Xcode updates
      • Video HD
      • Video SD

    Videos relacionados

    WWDC25

    • Codificación conjunta: Explora la localización con Xcode
    • Crea íconos con Icon Composer
    • Crear perfiles y optimizar el uso de energía en tu app
    • Grabar, reproducir y revisar: Automatización de IU en Xcode
    • Novedades de Swift
    • Novedades de SwiftUI
    • Optimiza el rendimiento de SwiftUI con instrumentos
    • Optimiza el rendimiento del CPU con instrumentos
    • Saluda a la nueva imagen de los íconos de las apps

    WWDC24

    • Demystify explicitly built modules

    Tech Talks

    • Explore UI animation hitches and the render loop
  • Buscar este video…

    Hola, soy Eliza y trabajo en Swift Previews. Y yo soy Chris. Trabajo en Xcode. Desarrollar buenas apps requiere mucho trabajo, ya sea escribir código o crear nuevas funcionalidades, depurarlas, mejorar el rendimiento y más. Vamos a compartir increíbles mejoras en Xcode este año para ayudarte en el desarrollo de tus apps. Primero, algunas optimizaciones de tamaño de la descarga y rendimiento de Xcode. Exploraremos mejoras en el espacio de trabajo y editor de código fuente, y probaremos funcionalidades de inteligencia de código. Chris hablará de novedades de depuración, rendimiento, compilación y algunas actualizaciones en las pruebas. Empecemos con las optimizaciones. Por años, trabajamos para que Xcode sea más pequeño para usar las herramientas más rápidamente y descargar solo los componentes necesarios. Este año, Xcode es un 24% más pequeño. Los tiempos del simulador no admiten Intel por defecto y la cadena de herramientas de Metal solo se descarga si es necesario. En total, Xcode de este año tiene un tamaño de descarga menor que Xcode 6 de 2014. También optimizamos la entrada de texto en Xcode, que mejora la latencia de escritura en expresiones hasta en un 50%.

    También optimizamos el rendimiento de carga de Xcode. Ahora es un 40% más rápido cargar un espacio de trabajo. Para proyectos grandes, es una gran diferencia. Esto nos lleva a las actualizaciones en el espacio de trabajo y la edición. Hay muchas mejoras en el editor de código fuente de Xcode este año. Comencemos con las pestañas del editor. Xcode este año mejora el comportamiento de las pestañas para que sean más intuitivas. Como en Safari, puedo abrir una pestaña y decidir desde allí, con esta nueva página de inicio. Y puedo fijar una pestaña en un archivo en particular. Esto me permite controlar cuántas pestañas tengo. Ya sea solo una, una para cada archivo o un conjunto seleccionado.

    Ahora, hablemos de la búsqueda. Al explorar un proyecto desconocido o uno familiar, es fundamental poder buscar en el código eficazmente. Xcode tiene un nuevo e increíble modo de búsqueda, “búsqueda múltiple de palabras”, con técnicas de motor de búsqueda para grupos de palabras. En este modo, puedo ingresar un grupo de palabras. Por ejemplo, aquí intento encontrar dónde estoy creando imágenes recortadas y redimensionables.

    Xcode encontrará todos los grupos de palabras próximas en los documentos, y los ordenará por relevancia.

    Los grupos pueden abarcar varias líneas y los términos de búsqueda pueden estar en cualquier orden.

    Este año hay un gran avance en materia de accesibilidad en Xcode. Ahora puedes usar el control por voz para escribir código Swift y pronunciar el código Swift tal como lo leerías en voz alta. En este modo, Control por Voz entiende la sintaxis de Swift. Determinará dónde debe haber espacios, si las expresiones son operadores o van en mayúsculas. Para apreciar su genialidad, veámoslo en acción. Con el modo Swift para Control por Voz, puedo navegar y editar el código Swift hablándole a la Mac. Agreguemos un campo al inspector de puntos de referencia para el continente correspondiente.

    “Comienza a escuchar”, “Modo Swift”, “Selecciona labeledcontent”, “Cuatro”, “Ve al final de la línea”, “Línea nueva, línea nueva”, “If let continent es igual a landmark punto continent”, “Corchete de apertura”, “Línea nueva”, “Labeledcontent paréntesis comillas continent comillas coma value dos puntos continent”, “Corregir comillas continent”, “Uno” “Deja de escuchar”. El campo de continente ahora aparece abajo de mi vista previa, ¡y no toqué el teclado ni una vez! Ahora, hablemos de iterar sobre el código. Las vistas previas son una gran forma de iterar rápidamente en el código de IU. Presentamos una nueva macro llamada “Playground” que puedes usar para iterar rápidamente en los códigos. Puedes agregar un playground en línea en el documento y los resultados de la ejecución del código aparece en una pestaña de lienzo. Te haré una demostración. Noté un error en la app Landmarks donde los puntos de referencia aparecen en el lugar incorrecto. Voy a usar un playground para explorar la estructura de los puntos de referencia y ver qué está pasando.

    Al importar el módulo Playground tengo acceso a la macro Playground.

    Carguemos un punto de referencia de muestra para examinar los datos.

    En el lienzo, veo una entrada para cada expresión en mi playground. Solo tengo una, que es la estructura del Gran Cañón, y puedo ver los valores de cada una de sus propiedades. Algunos tipos de propiedad tienen un ícono de Quick Look. Veamos más de cerca la propiedad de coordenadas. Bueno, eso es extraño... el Gran Cañón no debería estar dentro de la ciudad. Puedo agregar otra expresión a mi playground para obtener más información sobre la región de este punto. A medida que modifico el playground, las expresiones se ejecutan y el lienzo se actualiza.

    Sí… el Gran Cañón claramente no está en China. Vamos a averiguar qué está pasando aquí. Cuando cargamos puntos de referencia desde un archivo, usamos una expresión que analiza coordenadas de una cadena. Esta es la expresión regular que estamos usando. ¿Tal vez haya un problema que esté causando que las coordenadas se analicen incorrectamente? Investiguemos esto en otro playground. Al agregar una nuevo playground, obtengo otra pestaña en el lienzo.

    Agreguemos algo de código a este playground.

    Invoquemos la función donde se define la expresión regular.

    Estoy usando una cadena de entrada de muestra para extraer resultados calculados en variables locales para examinar. Algunos resultados de expresiones regulares tienen vistas personalizadas. Xcode resalta el rango de coincidencia en la cadena original. El rango de coincidencia demuestra que hubo un problema al captar el signo menos. Ahora el error tiene sentido, ya que la longitud negativa se analizó como positiva, y el Gran Cañón quedó en otro lado.

    Voy a arreglar la expresión. Si miras el playground en el lienzo al hacer esto, verás que los resultados se actualizan inmediatamente. Puedo ver en la vista que el signo menos ahora está dentro del rango que coincide con la expresión regular.

    Si vuelvo al playground original, ¡el Gran Cañón ahora está en el lugar correcto! Esto es Playgrounds. Es excelente para comprender el código existente y para probar nuevas ideas. Además, esta macro #Playground se publicará en código abierto para los desarrolladores de Swift de otras plataformas. Ve la publicación en los foros de Swift y únete a la conversación. Hablemos ahora de los íconos. Icon Composer es una nueva app incluida con Xcode 26. Con Icon Composer, puedes crear íconos sofisticados de varias capas y de hermosos diseños para varias plataformas y versiones de software. En los últimos años, facilitamos la creación de íconos en todas las plataformas. Pero este año, los íconos no solo difieren según la plataforma para la que los estés creando. Ahora varían en modos, incluidos los modos oscuros y teñidos en iOS, iPadOS y macOS. También hay un nuevo aspecto para watchOS.

    Ahora todo esto se puede lograr en un solo archivo con Icon Composer.

    Puedes aprovechar todos nuestros efectos materiales e incluso agregar propiedades dinámicas a las capas, como desenfoque, sobras, reflejos especulares y transparencia. La herramienta ideal para crear íconos planos compatibles con sistemas operativos anteriores, páginas web o donde sea que los necesites.

    Consulta “Saluda a la nueva imagen de los íconos de las apps” y “Crea íconos con Icon Composer” para obtener más información sobre los íconos. Difundir la app entre más usuarios de todo el mundo es muy valioso. Con la compatibilidad con diferentes idiomas, las personas se sienten como en casa. Con los catálogos de cadenas, la localización puede ser muy sencilla. Los catálogos de cadenas recibieron grandes mejoras para ayudar tanto a desarrolladores como a traductores. Para los desarrolladores, agregamos símbolos Swift de tipos seguros para cadenas localizadas. Con un control más preciso de las cadenas, pueden definirlas en el Catálogo, con símbolos rápidos de acceso por código. Estos símbolos incluso aparecen como sugerencias para autocompletar. Para los traductores, los catálogos de cadenas ahora generan comentarios automáticos con el contexto.

    Xcode analiza de forma inteligente dónde y cómo se usa una cadena localizada en tu proyecto. Luego genera comentarios usando el modelo en el dispositivo.

    Para más información de catálogos de cadenas, consulta la sesión “Explora la localización con Xcode”. Esto nos lleva a la inteligencia. Xcode recibe nuevas y emocionantes funcionalidades de inteligencia. Ahora puede usar grandes modelos de lenguaje como ChatGPT para dar asistencia de codificación. Puedes hacer preguntas generales sobre Swift, como “cuéntame sobre la concurrencia de Swift”.

    Gracias a la integración con Xcode, el modelo considera tu código y responde preguntas sobre el proyecto, o incluso realiza cambios por ti.

    Además, presentamos un menú más liviano y práctico que puedes usar para aplicar cambios automáticos al código seleccionado. En herramientas de codificación, tienes acceso rápido a acciones comunes o puedes escribir una consulta personalizada. Veamos estas funcionalidades con más detalle. Esta app tiene una vista de mis colecciones de puntos de referencias favoritos, pero no conozco el código y no sé dónde está implementado. Entonces voy a preguntarle a Xcode.

    Xcode envía el contexto del proyecto al modelo y este responde explicando descripciones relevantes y qué hacen. El modelo también puede solicitar información a Xcode sobre más contexto que necesita al buscar una respuesta.

    El botón “información” en la transcripción muestra el contexto que envió Xcode.

    La respuesta también contiene enlaces para navegar rápidamente a los archivos mencionados. Esta parece la correcta. Esta es una gran manera de explorar una base de código desconocida. Ahora agreguemos una funcionalidad. Pidamos a Xcode que agregue calificaciones a las colecciones.

    Estoy usando un carácter “@” para hacer referencia directa a un símbolo para que el modelo lo modifique.

    Al usar el símbolo “@” en mi prompt puedo hacer referencia a símbolos, archivos fuente o a todo lo que quiera que se centre la respuesta. Esto puede ser útil cuando tienes cambios específicos en mente. Incluso puedo adjuntar archivos para hacer referencia a la consulta. Las imágenes son muy útiles, ya que muchos grandes modelos de lenguaje generan código de un boceto de una IU. Los cambios automáticos de contexto y código son correctos siempre, pero puedes tener más control si lo deseas. Este ícono controla si Xcode incluye información sobre tu proyecto con la consulta. Por ejemplo, si preguntaras en general sobre Swift, podrías elegir desactivar el contexto del proyecto. De seguro preferirás dejarlo activado. Este ícono te permite controlar si deseas aplicar automáticamente un cambio de código en la respuesta. Si está desactivado, puedes revisar cada cambio antes de decidir si aplicarlo. Bien, parece que la respuesta está completa y se realizaron todos los cambios en mi proyecto. Puedo hacer clic para ver un resumen de los cambios que se realizaron. Se ven bien. Puedo escribir un nuevo mensaje para continuar la conversación. Pidámosle al modelo que agregue esa calificación a la IU.

    El modelo puede determinar a qué se refiere, ya que los mensajes nuevos conservan el contexto anterior.

    Este cambio parece bastante bueno.

    Puedo seguir haciendo cambios en el contexto de los anteriores. Vamos a divertirnos un poco y llegar hasta 11.

    El modelo sabe lo que quiero decir aquí.

    ¡Listo! ¡Ahora tenemos 11 estrellas! De forma predeterminada, los cambios se aplican automáticamente al código. Como Xcode mantiene una instantánea del código antes de que se aplique el cambio, puedes ver y deshacer los cambios desde el historial de modificaciones. Aquí puedo examinar cada línea de código modificada durante cada etapa de la conversación. Puedo ir hacia adelante y hacia atrás para aplicar o revertir conjuntos de cambios. En este caso, estoy a gusto con los cambios, así que cancelaré el historial de modificaciones.

    Hasta ahora, estuve usando el asistente de código para hacer cambios en varios archivos en mi proyecto. Para centrarme en una sección particular del código, puedo usar herramientas de codificación desde el editor.

    Las usaré para agregar un playground que ejercitará la estructura de punto de referencia. Las herramientas de codificación tienen botones para acciones rápidas o consultas personalizadas. En este caso, seleccionaremos la acción para generar un playground. Ya que el modelo tiene acceso al contexto (ya sea código recién generado o existente), puede crear playgrounds para ejercitar el código de formas interesantes. Ahora tenemos un playground para inspeccionar un punto de referencia de muestra. Además de explicar o modificar el código, Xcode es excelente para solucionar problemas de código. Por ejemplo, aquí tengo un error al usar una vista “ForEach” con un tipo que no se ajusta a “Identifiable”. Ahora hay una nueva opción para generar una solución: aparecerá el asistente de codificación.

    Con acceso a la declaración de tipo y ubicación del error, puede determinar qué archivo debe modificar para corregirlo. En este caso, la solución fue agregar una conformidad de protocolo en activity.swift.

    Y ahora el error está resuelto. Xcode es excelente para solucionar otros problemas. Por ejemplo, a veces dejo que las advertencias de desuso queden en el código porque no causan problemas inmediatos. Ahora ahorro tiempo pidiéndole a Xcode que los arregle por mí. Hay muchas formas de agregar un modelo en Xcode. Primero, puedes habilitar ChatGPT con solo unos clics. Recibirás una cantidad limitada de solicitudes por día y podrás usar tu cuenta de ChatGPT para hacer aún más solicitudes.

    Si deseas usar otro proveedor, como Anthropic, pon tu clave API e interactúa con modelos como Claude 4 Opus o Sonnet. Podrás elegir qué modelos mostrar de cada proveedor, y marcar tus favoritos para acceder a ellos rápidamente. También puedes usar modelos locales de tu Mac o redes privadas gracias a herramientas como Ollama y LM Studio.

    Puedes agregar tantos proveedores como quieras en las preferencias de Xcode. Una vez configurado un conjunto de modelos, puedes cambiarlos en el asistente al iniciar una nueva conversación. Estas son algunas de las nuevas funcionalidades en el editor y espacio de trabajo de Xcode, y el uso de inteligencia de código para más creatividad y productividad. Ahora Chris nos hablará sobre la depuración y el rendimiento. ¡Gracias, Eliza! Detectar errores y mejorar el rendimiento de las apps son pasos cruciales para brindar una gran experiencia. Este año tenemos actualizaciones interesantes, empezando por el depurador. La depuración del código concurrente de Swift recibió grandes mejoras de habitabilidad en Xcode. Al ver el código en una tarea Swift, Xcode sigue la ejecución en funciones asincrónicas, aunque cambie de subprocesos. La IU del depurador de Xcode ahora mostrará los ID de las tareas. Aquí, se muestra la tarea Swift actual en la vista de rastreo a la izquierda y en la anotación del contador de programa a la derecha. En la vista de variables verás representaciones de tipos de concurrencia más fáciles de leer. Como tareas, grupos de tareas y actores. En este ejemplo, es más fácil ver las propiedades de la variable Tarea, como prioridad y tareas secundarias.

    Con Xcode 26, depurar código concurrente de Swift es más fácil que nunca. Para más información sobre la concurrencia de Swift, consulta “Novedades en Swift”.

    Al agregar una funcionalidad que requiere acceso a un recurso privado, como la ubicación del usuario o la cámara, es posible que tu app se detenga de repente en el depurador, con un error de “descripción de uso” faltante. Las descripciones se requieren al acceder a recursos privados, para que se incluyan en un prompt de autorización y el usuario sepa por qué la app solicita el acceso. Xcode ahora entiende cuándo una app se detuvo por una descripción de uso faltante y explica qué falta. Desde la anotación puedes saltar a la documentación para más información. Pero la forma más rápida de resolver el problema es usar el nuevo botón “Agregar”, para ir al editor de firmas y capacidades. Se agregará la capacidad necesaria y este editor en Xcode 26 permite editar muchas capacidades con descripciones de uso, para editarlas en un solo lugar. Xcode actualizará la lista de información subyacente, la configuración de compilación o los derechos. Todo lo que necesitas hacer es ingresar tu descripción de uso. Luego puedes volver a ejecutarlo y verificar que la capacidad ahora solicita permiso, como se esperaba. Instruments es una herramienta poderosa para analizar el rendimiento de las apps y viene con Xcode. Para el análisis de CPU, incluye herramientas potentes con varias opciones para perfilar el rendimiento del código en hardware con el chip de Apple. Antes, Instruments usaba perfiladores basados en muestreo para entender el uso del CPU, excelentes para analizar cargas de trabajo de larga duración. Pero ¿qué significa que un perfilador esté basado en muestreo? La herramienta muestrea los CPU periódicamente, y ve que las pilas de llamadas equivalgan al uso general del CPU. Pero el muestreo en sí es solo una aproximación de toda la carga de trabajo. Es más práctico para análisis de grandes cargas de trabajo. En la ilustración, las secciones naranjas de ejecución no se capturaron por el muestreo, por ejemplo. Los dispositivos recientes con chip de Apple pueden captar un rastro del procesador donde el CPU almacena datos del código, incluidas las ramificaciones que toma y las instrucciones a las que salta. El CPU transmite esta información a un área del sistema de archivos para que instrumento Processor Trace la analice.

    En lugar de un muestreo periódico, el rastreo captura información sobre cada ramificación de bajo nivel de CPU, en todos los subprocesos en ejecución, con muy poca carga de tiempo de ejecución. La línea de tiempo de Processor Trace puede presentar una visualización de alta fidelidad del flujo de ejecución. A diferencia de los perfiladores tradicionales, que pueden omitir rutas de código críticas, esta herramienta revela cada ramificación y función llamada, incluido el código generado por el compilador, como la gestión de memoria ARC en Swift. Processor Trace es un gran cambio en la medición del rendimiento del software, ya que permite capturar todas las llamadas, en todos los subprocesos y con poca sobrecarga. Processor Trace se presentó con Xcode 16.3 y es compatible con dispositivos con chip M4 y iPhone 16.

    Processor Trace es excelente para comprender la ejecución del código y dónde se gasta el tiempo del CPU. Por el contrario, con el instrumento CPU Counters actualizado podrás comprender cómo interactúa el código con el CPU.

    Esta herramienta te permitirá realizar optimizaciones de microarquitectura. CPU Counters usa modos preestablecidos que agrupan los contadores relacionados para un enfoque guiado para aprender como el CPU administra el código. Estos modos incluyen un modo general de cuellos de botella de CPU, que es un buen inicio para este tipo de análisis.

    Los cuellos de botella de CPU dividen el ancho de banda de instrucciones del CPU en trabajo útil o en cuellos de botella por una de estas tres razones: O bien el CPU tuvo que esperar que las unidades o la memoria estuvieran disponibles, o no pudo entregar instrucciones rápidamente, o predijo mal el trabajo futuro y necesitaba volver a ponerse en marcha.

    Además del análisis de cuellos de botella, los modos de características de instrucciones y métricas ofrecen un uso tradicional de los contadores para obtener una cuenta absoluta del consumo. Te permiten centrarte en ajustar secuencias de instrucciones críticas analizando ramificaciones, comportamiento de caché y operaciones numéricas.

    CPU Counters también incluye documentación detallada para comprender qué representan los modos y contadores. Para más información sobre Processor Trace y CPU Counters, consulta “Optimiza el rendimiento del CPU con instrumentos”. SwiftUI hace que crear apps altamente interactivas sea más fácil que nunca. Para la mejor experiencia de usuario, el rendimiento es fundamental. En las versiones del SO de este año realizamos mejoras en el rendimiento de SwiftUI. Por ejemplo, las listas pueden actualizarse hasta 16 veces más rápido sin cambios adicionales en la app. Incluso así, es posible que tu app aún no funcione como quisieras y querrás saber por qué las vistas se actualizan con frecuencia. Para eso, los instrumentos de SwiftUI de última generación incluidos con Xcode 26 captan datos sobre las causas y los efectos de las actualizaciones. Así es más fácil que nunca comprender cuándo y por qué se actualizan tus vistas. La línea de tiempo ofrece una descripción general rápida de todos los procesos de SwiftUI y cuando las actualizaciones de vistas tardan demasiado y te ponen en riesgo de que se produzca un fallo. En el resumen de actualizaciones del cuerpo de la vista se indican las veces se actualizó cada vista de tu app. Si la cantidad de actualizaciones de una de las vistas es mayor de lo previsto, abre el gráfico para comprender por qué.

    Para más información de las mejoras, consulta la sección sobre las novedades en SwiftUI. Para más información sobre cómo usar los instrumentos de SwiftUI, consulta “Optimiza el rendimiento de SwiftUI con instrumentos”. A la gente le encantan las apps en las que puede confiar, y una parte crucial de eso es la duración de la batería. Mientras depuras tu app, quizás hayas notado un alto impacto de energía en Xcode, lo que indica un problema. Pero encontrar la causa raíz puede ser difícil. En estas situaciones, lo que necesitas es la capacidad de ejecutar la app, reproducir el problema y registrar datos. El instrumento Power Profiler es la herramienta perfecta para esto. Te permite crear un perfil de tu app y registrar métricas de potencia que luego pueden visualizarse. La pista Power Profiler muestra el uso de energía del sistema, relacionado con estados térmicos y carga del dispositivo para ayudar a identificar picos inesperados. La pista del proceso muestra el impacto que tiene la app en subcomponentes de energía del dispositivo, como el CPU, el GPU, la pantalla y la red. Power Profiler admite dos modos de seguimiento: Grabación conectada directamente al dispositivo destino, y grabación pasiva, donde se puede iniciar un rastreo desde la configuración del desarrollador. El rastro puede luego importarse a los instrumentos para su análisis. Al registrar cargas de trabajo estables, usa Power Profiler para ver cómo la elección de los algoritmos y las API afectan la sostenibilidad. Obtén información en “Crear perfiles y optimizar el uso de energía en tu app”. Mientras que los instrumentos son ideales para analizar el rendimiento durante el desarrollo, Xcode Organizer te permite monitorizar la potencia y el impacto en el rendimiento de tus apps de envío a través de métricas y diagnósticos.

    Organizer en Xcode 16 presentó una funcionalidad de información de tendencias para diagnóstico de escritura en disco, con un ícono de llama. Estos ayudan a señalar problemas cuyo impacto haya aumentado y a los que quizás quieras prestar atención. Este año en Xcode incorporamos la información de tendencias a los diagnósticos de bloqueos e inicio, donde el ícono de la llama indica los tiempos de bloqueo e inicio que tienden en la dirección equivocada. Además, el área Insights ahora proporciona una clara tendencia al graficar las últimas cinco versiones de la app. Esto no solo proporciona un punto de partida para optimizar el rendimiento, también te ayuda a comprender dónde podrías haber incorporado código que cause el aumento general del impacto.

    Y ahora que ya sabes qué priorizar, puedes compartir un informe de diagnóstico con tus colegas mediante una URL.

    Las métricas te ayudarán a comprender el rendimiento de tu app en las distintas versiones. Se amplió en Xcode 26 con la incorporación de las recomendaciones. Las recomendaciones comparan las métricas de tu app con otras fuentes, incluidas apps similares y los datos históricos, para proporcionar un importante punto de referencia a fin de comprender el rendimiento de la app en la base de usuarios. En este ejemplo, el tiempo de inicio se mide en alrededor de 564 milisegundos. Según las métricas de apps similares, Xcode recomienda que el tiempo de inicio sea más cercano a 425 milisegundos, un objetivo claro. Este año, las recomendaciones están disponibles para la métrica de tiempo de inicio. Apple habilitará recomendaciones para otras métricas con el tiempo. Ahora, hablaré sobre el sistema de compilación de Xcode. En Xcode 16 presentamos módulos creados explícitamente, habilitados para código C y Objective-C. En Xcode 26 habilitamos módulos creados explícitamente para el código Swift predeterminado. Con módulos explícitos, Xcode divide el procesamiento de unidad de compilación en tres fases: Escanear, construir módulos y crear el código fuente original. Esta separación le da al sistema de compilación un mejor control de las tareas para optimizar el proceso.

    La creación de módulos explícitos mejora la eficiencia y la confiabilidad de la compilación con un reparto preciso y determinista. Y mejora la tasa de depuración del código Swift, ya que el depurador reutiliza los módulos ya compilados. Para más información, consulta la sección sobre desmitificar los módulos creados explícitamente. A principios de este año, Apple abrió Swift Build, un motor de compilación potente y ampliable que se utiliza en Xcode y Swift Playground, y en el proceso interno de los propios sistemas operativos de Apple. También incorporamos Swift Build en Swift Package Manager, para unificar la experiencia a través de cadenas de herramientas de código abierto Swift y Xcode. También agregamos soporte para todas las plataformas compatibles con el ecosistema Swift, como Linux, Windows y Android. Usa la opción “build-system” de la línea de comandos Swift para obtener una vista previa de esta nueva implementación. O mira los cambios en vivo en Xcode con las instrucciones en el repositorio Swift Build.

    Por primera vez, la comunidad puede contribuir a la implementación del motor de compilación que impulsa Xcode y el ecosistema Swift. Para más información sobre Swift Build o participar en el desarrollo, ve el repositorio en GitHub. Los usuarios ven la seguridad como un requisito cada vez más crítico para las apps. La capacidad de seguridad mejorada de Xcode ofrece las mismas protecciones que usan las apps de Apple, como la autenticación por puntero. Puedes habilitar estas configuraciones para tu app agregando la capacidad de seguridad mejorada en el editor de firma y capacidades. Recomendamos habilitarlas para apps con una superficie de ataque significativa, como redes sociales, mensajería o visualización de imágenes. Obtén más detalles sobre la seguridad mejorada en la documentación de Apple Developer. A continuación, hablemos de las pruebas. Las pruebas de IU de Xcode recibieron una gran actualización este año. La grabación de automatización de IU se mejoró con un sistema de generación de código totalmente nuevo. Esta es una gran noticia, ya que quería implementar una prueba de IU para Landmarks para probar la IU de edición de colecciones. Usemos la funcionalidad de grabación de automatización de IU de Xcode 26 para crear la prueba. Ya tengo un objetivo de prueba configurado y un nuevo método de prueba listo para completar. Al colocar el cursor en el cuerpo del método de prueba, Xcode revela un botón “Iniciar grabación” en el editor. Podemos tocarlo para iniciar una sesión de grabación. Xcode me solicita que confirme y me avisa que el archivo es de solo lectura hasta completar la grabación.

    Ahora Xcode prepara la sesión. Inicia la app en el simulador, en modo grabación.

    Ahora puedo ejecutar las interacciones exactas que quiero que realice mi prueba. Comenzaré por ir a la pantalla “Colecciones”.

    Mira cómo Xcode agrega código al método de prueba para mis interacciones. ¡Increíble!

    Ahora, agregaré una nueva colección y la cambiaré al modo “editar”.

    Editar una colección es el objetivo principal de esta prueba. Entonces interactuaré con los campos para editar el título, la descripción y agregar un punto de referencia.

    ¡Este parece perfecto!

    Así finalizamos los pasos para agregar y editar una colección. Finalmente, para verificar la edición, seleccionemos el punto de referencia agregado para ver los detalles.

    Es todo lo que necesitamos para esta prueba de IU. De vuelta al editor de origen, tocaré para detener la grabación para finalizar la grabación de prueba.

    Ahora usemos el diamante de prueba para verla en acción.

    Ve cómo Xcode generó un código conciso para todas las interacciones. Y obtenemos varias opciones de identificador para muchos elementos.

    Podemos usarlos para ajustar cómo se identifica un elemento en nuestras pruebas. Es más fácil realizar una nueva prueba de IU con solo realizar las interacciones en la app que quieres.

    Ese es un ejemplo de grabación de una prueba de IU en Xcode 26. Xcode se encarga de todo el trabajo pesado de convertir las interacciones en el mejor código de prueba posible. Pero la generación de código de pruebas de IU no termina allí. La misma generación de código se integró en el explorador de automatización del informe de pruebas.

    Tengo un informe de prueba abierto, que contiene un error en la prueba de IU. Parece que la prueba intentaba aprovechar un TextField, pero no pudo encontrar uno con el identificador especificado. A la derecha, el explorador de automatización contiene una grabación de video completa de la prueba. Podemos reproducir toda la prueba en tiempo real, si es necesario. El fotograma de video actual muestra el punto en el que se produjo el error. Vemos un campo de descripción en la IU de la app. Lo bueno de las pruebas de IU es que Xcode registra los atributos mientras se ejecuta una prueba. Luego, podremos inspeccionar los elementos en el explorador de automatización a posteriori. Inspeccionemos el elemento “descripción”. El elemento tiene el identificador correcto, pero el tipo es una vista de texto, no un campo de texto, como se esperaba. Parece que la IU de la app se actualizó para admitir descripciones de varias líneas. Afortunadamente, se nos generó el fragmento de código correcto para identificar este elemento. Podemos solo copiar el código de la ventana emergente y actualizar la prueba para la corrección.

    Esa es la experiencia de prueba de IU mejorada. Además de la grabación de IU mejorada, este año Xcode ofrece mejor compatibilidad con dispositivos para interacciones de hardware automatizadas. En conjunto, estas mejoras hacen que las pruebas de IU sean mucho más optimizadas. Así que pruébalo, agrega algunas pruebas de IU a tu proyecto y usa Xcode Cloud para ejecutarlas de forma autónoma. Para más información, consulta “Grabar, reproducir y revisar: Automatización de IU en Xcode”.

    Las pruebas de IU también son excelentes para medir la capacidad de respuesta de IU, con API de “medición”. En Xcode 26, ampliamos la API agregando un XCTHitchMetric para que puedas detectar fallas en la app durante las pruebas. Por ejemplo, puedes usar XCTHitchMetric para probar el rendimiento de la animación de desplazamiento de tu app.

    XCTHitchMetric informa métricas para el rendimiento de fluidez de la app, como la tasa de tiempo de interrupción. La tasa de tiempo de interrupción es el tiempo total que la app se interrumpió durante la parte medida de tu prueba. Para más información, consulta la charla sobre cómo explorar la fluidez de animación de IU y bucle renderizado.

    Otra forma de realizar pruebas de regresión es con comprobaciones de API en tiempo de ejecución. Ahora, Xcode incorpora más comprobaciones de API en tiempo de ejecución a las pruebas, configuradas en el editor. Ahora, las pruebas detectan los problemas de tiempo de ejecución de la estructura y los problemas de subprocesos mediante el comprobador.

    El comprobador de rendimiento de subprocesos detecta problemas de subprocesos en el subproceso principal. El comprobador nos notifica de una API que no debería invocarse en el hilo principal si queremos que la app responda.

    Los planes de prueba brindan una opción para fallar una prueba si hay algún problema con las verificaciones de API. Ahora las pruebas pueden brindarte la seguridad de que el código sigue las prácticas recomendadas de API. Éstas son algunas de las funcionalidades nuevas y emocionantes de este año. Xcode 26 te ayuda a ser más eficiente al escribir código, te guía mientras creas nuevas funcionalidades y te ofrece nuevas herramientas que facilitan la compatibilidad con más plataformas y lenguajes. Puede ayudarte ya sea que estés depurando en tu escritorio, inspeccionando el rendimiento de tu app o probando la IU. Descarga Xcode 26 para crear, compilar y depurar código. Y usa Xcode Cloud para probar y distribuir tu app. Pregunta cualquier duda que tengas en los foros para desarrolladores. Para más información, consulta las notas de lanzamiento en developer.apple.com. ¡Gracias por acompañarnos!

    • 5:25 - Using Playgrounds

      import Playgrounds
    • 5:30 - Using Playgrounds

      #Playground {
        
      }
    • 5:37 - Using Playgrounds

      let landmark = Landmark.exampleData.first
    • 6:10 - Using Playgrounds

      let region = landmark?.coordinateRegion
    • 6:33 - Regex to scan for floating point numbers

      func scanForFloatingPointNumbers() -> [Regex<Substring>.Match] {
          return self.matches(of: /[0-9]*[.][0-9]+/)
      }
    • 6:42 - Adding another playground

      #Playground {
        
      }
    • 6:49 - Adding another playground

      let string = "lon: -113.16096, lat: 36.21904"
      let longitude = string.scanForFloatingPointNumbers().first
      let latitude = string.scanForFloatingPointNumbers().last
    • 7:33 - Updated regular expression

      func scanForFloatingPointNumbers() -> [Regex<Substring>.Match] {
          return self.matches(of: /[+-]?[0-9]*[.][0-9]+/)
      }
    • 18:49 - Checking for camera authorization

      // Checking for camera authorization
      
      var isCameraAuthorized: Bool {
          get async {
              let status = AVCaptureDevice.authorizationStatus(for: .video)
      
              // Determine if the user previously authorized camera access.
              var isAuthorized = status == .authorized
      
              // If the system hasn't determined the user's authorization status,
              // explicitly prompt them for approval.
              if status == .notDetermined {
                  isAuthorized = await AVCaptureDevice.requestAccess(for: .video)
              }
      
              return isAuthorized
          }
      }
    • 34:40 - Test scrolling animation performance with XCTHitchMetric

      // XCTHitchMetric
      
      func testScrollingAnimationPerformance() throws {
          // Custom performance test measure options.
          let measureOptions = XCTMeasureOptions()
          measureOptions.invocationOptions = .manuallyStop
      
          // App being tested.
          let app = XCUIApplication()
      
          // Launch app and get reference to scroll view.
          app.launch()
          let scrollView = app.scrollViews.firstMatch
      
          measure(metrics: [XCTHitchMetric(application: app)], options: measureOptions) {
              scrollView.swipeUp(velocity: .fast)
              stopMeasuring()
              scrollView.swipeDown(velocity: .fast)
          }
      }
    • 0:00 - Introducción
    • Descubre las mejoras de Xcode para desarrolladores de apps, como las optimizaciones del tamaño y el rendimiento de las descargas, las mejoras en el espacio de trabajo y el editor de código fuente, las nuevas funciones de inteligencia de código, las herramientas de depuración y rendimiento, las actualizaciones de compilación y las mejoras en las pruebas.

    • 0:49 - Optimizaciones
    • Xcode presenta mejoras significativas este año, que se traducen en un 24% menos de tamaño de descarga, gracias a la eliminación de la compatibilidad por defecto con Intel de los tiempos de ejecución del simulador y a las descargas condicionales de Metal. La entrada de texto se mejora hasta en un 50% en expresiones complejas y el rendimiento de carga del espacio de trabajo aumenta en un 40%, lo que beneficia a los proyectos grandes.

    • 1:42 - Espacio de trabajo y edición
    • La versión de Xcode de este año trae mejoras importantes al editor de código fuente para mejorar la experiencia del usuario y la productividad. Las pestañas del editor ahora cuentan con una nueva página de inicio, similar a Safari, y permiten a los usuarios anclar pestañas y así ofrecer un mayor control sobre el espacio de trabajo. La funcionalidad de búsqueda se renueva con la introducción de la búsqueda múltiple de palabras. Este nuevo modo usa técnicas de motor de búsqueda para encontrar grupos de palabras en el proyecto, lo que le permite localizar fragmentos de código específicos de manera más eficiente, incluso si los términos de búsqueda aparecen en diferentes órdenes o en varias líneas. La accesibilidad también dio un gran paso adelante. Xcode ahora admite el modo Swift para control por voz, lo que le permite escribir y pronunciar código Swift de forma natural. El control por voz entiende la sintaxis de Swift, ya que inserta espacios automáticamente y aplica el formato correcto al código, lo que lo convierte en una herramienta potente para desarrolladores con necesidades de accesibilidad o para quienes prefieren la entrada por voz. Además de estas mejoras fundamentales, Xcode presenta una nueva macro llamada "#Playground", que permite iterar sobre cualquier código rápidamente. Puedes añadir playgrounds en línea en los documentos, y los resultados de la ejecución del código aparecen en una pestaña separada del lienzo, que ofrece información en tiempo real a medida que se modifica el código. Xcode incluye una nueva app, Icon Composer, que simplifica el proceso de creación de íconos de múltiples capas que funcionan en varias plataformas y modos, como el oscuro y el tintado.

    • 10:37 - Inteligencia
    • Xcode 26 integra modelos de lenguaje grandes como ChatGPT para mejorar la asistencia a la codificación. Ahora puedes hacer preguntas generales sobre Swift o preguntas específicas sobre tus proyectos y el modelo puede dar explicaciones, realizar cambios o generar código. Un nuevo menú liviano te permite aplicar cambios automáticamente al código seleccionado. El modelo también puede analizar el contexto de todo el proyecto, lo que le permite comprender referencias y realizar modificaciones pertinentes. Tienes control sobre si el sistema incluye el contexto del proyecto y si aplica cambios de código automáticamente. Xcode mantiene instantáneas del código antes de cada cambio, lo que permite una fácil revisión y reversión. Además de la explicación y modificación del código, Xcode ahora puede generar playgrounds, corregir errores y resolver advertencias de paso a estado obsoleto. Puedes elegir entre varios proveedores de modelos de lenguaje, como ChatGPT, Anthropic o modelos locales, y cambiar entre ellos con facilidad dentro de Xcode.

    • 17:47 - Depuración y rendimiento
    • El nuevo Xcode introduce mejoras importantes en la depuración y el análisis del rendimiento para los desarrolladores de apps. La depuración del código concurrente de Swift ahora es más sencilla: Xcode sigue la ejecución en funciones asincrónicas, muestra los ID de las tareas y provee representaciones fáciles de leer de los tipos de concurrencia. Xcode ahora también identifica automáticamente cuando una app se detiene debido a una descripción de uso faltante para acceder a recursos privados y ofrece un botón directo de Agregar para solucionar el problema en el editor de firmas y capacidades. Para el análisis del rendimiento, hay un Instruments actualizado. El instrumento Processor Trace del Xcode 16.3 y compatible con dispositivos M4 y iPhone 16, captura cada decisión de ramificación de bajo nivel que toma el CPU, lo que proporciona una visualización de alta fidelidad del flujo de ejecución. También se actualizó significativamente el instrumento CPU Counters, que usa modos preestablecidos para ayudarte a entender cómo interactúa tu código con el CPU, lo que permite optimizar la microarquitectura e identificar cuellos de botella. Instruments también incluye nuevas funciones para SwiftUI, que te permiten rastrear de las actualizaciones de las vistas e identificar cuellos de botella en el rendimiento. El instrumento Power Profiler ayuda a optimizar la vida útil de la batería al registrar métricas de energía y visualizar el uso de energía del sistema y el impacto de la app en varios componentes del dispositivo. Xcode Organizer se actualiza con información de tendencias ampliada, que resalta problemas de rendimiento cada vez mayores, como bloqueos y escrituras en disco, en las distintas versiones de la app. Las métricas se amplían para incluir recomendaciones, comparar el rendimiento de una app con apps similares y datos históricos y establecer objetivos claros de mejora, como la optimización del tiempo de lanzamiento.

    • 27:50 - Construcciones
    • Xcode 26 mejora la eficiencia de la compilación al habilitar módulos creados explícitamente por defecto, lo que mejora la confiabilidad y la velocidad de depuración. Swift Build, el motor de creación de código abierto, se integra en Swift Package Manager para ofrecer compatibilidad entre plataformas y contribuciones de la comunidad. Xcode también introduce capacidades de seguridad mejorada para las apps, similares a las utilizadas en las apps de Apple, para reforzar la protección contra ataques.

    • 30:15 - Prueba
    • Las capacidades de pruebas de IU de Xcode también mejoraron significativamente. El nuevo sistema de generación de código mejora la grabación de la automatización de la IU, lo que le permite crear pruebas de manera más eficiente. Al usar la función de grabación, puedes interactuar con la app en el Simulador y Xcode genera automáticamente un código de prueba conciso para cada acción. Esta capacidad agiliza el proceso de creación de pruebas, lo que facilita la creación de pruebas de IU integrales. El explorador de automatización en los informes de pruebas ayuda aún más a la depuración al proporcionar grabaciones de video y herramientas de inspección de elementos. Xcode también incluye soporte ampliado para medir la capacidad de respuesta de la IU, detectar fallas y realizar comprobaciones de API en tiempo de ejecución, lo que garantiza que el código se adhiera a las mejores prácticas y permanezca receptivo y estable.

    • 36:10 - Conclusión
    • Xcode 26 mejora la eficiencia de la programación, la creación de funciones y el soporte del lenguaje. Ayuda en la depuración, la inspección del rendimiento y las pruebas de IU. Puedes descargar Xcode 26 y usar Xcode Cloud para pruebas y distribución.

Developer Footer

  • Videos
  • WWDC25
  • Novedades de Xcode
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Store
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Sample Code
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • 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
    • 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
    Get the Apple Developer app.
    Copyright © 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines