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

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Sujets
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Transcription
  • Code
  • Nouveautés dans Xcode

    Découvrez les dernières avancées en matière de productivité et de performances de Xcode 26. Apprenez à exploiter de grands modèles de langage dans votre workflow de développement. Explorez les améliorations apportées à l'édition et au débogage, les performances et les outils de test optimisés, ainsi que Swift Build, le moteur de système de build open source utilisé par Xcode.

    Chapitres

    • 0:00 - Introduction
    • 0:49 - Optimisations
    • 1:42 - Espace de travail et édition
    • 10:37 - Intelligence
    • 17:47 - Débogage et performances
    • 27:50 - Builds
    • 30:15 - Test
    • 36:10 - Conclusion

    Ressources

    • 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
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC25

    • Code-along : explorez la localisation avec Xcode
    • Créer des icônes avec Icon Composer
    • Découvrez le nouveau design des icônes d’app
    • Enregistrer, revoir et réviser : Automatisation de l’interface utilisateur avec Xcode
    • Nouveautés dans Swift
    • Nouveautés dans SwiftUI
    • Optimiser les performances de SwiftUI avec Instruments
    • Optimiser les performances du processeur avec Instruments
    • Profilez et optimisez la consommation d’énergie de votre app

    WWDC24

    • Demystify explicitly built modules

    Tech Talks

    • Explore UI animation hitches and the render loop
  • Rechercher dans cette vidéo…

    Bonjour, je m’appelle Eliza et je travaille sur Swift Previews. Et je m’appelle Chris. Je travaille sur Xcode. Développer des apps de qualité demande beaucoup de travail, que ce soit pour écrire du code, explorer et prototyper de nouvelles fonctionnalités, déboguer, améliorer les performances, et bien plus encore. Nous sommes heureux de vous présenter certaines des améliorations notables apportées à Xcode cette année pour faciliter le développement de votre app. Nous allons commencer par l’optimisation du téléchargement et des performances de Xcode. Nous verrons les améliorations de l’espace de travail et de l’éditeur de code source, et nous testerons de nouvelles fonctionnalités d’intelligence du code. Chris présentera de nouvelles fonctionnalités pour le débogage et les performances, les nouveautés dans les builds, puis terminera par quelques mises à jour sur les tests. Commençons par les optimisations ! Ces dernières années, nous avons réduit la taille de Xcode afin que vous puissiez accéder à vos outils plus rapidement et ne télécharger que les composants nécessaires. Cette année, Xcode est 24 % plus compact. Les environnements d’exécution du simulateur ne prennent plus en charge Intel par défaut et la chaîne d’outils Metal ne sera téléchargée que si nécessaire. Cette année, le fichier de téléchargement de Xcode est plus léger que celui de Xcode 6 en 2014 ! Nous avons optimisé la saisie de texte dans Xcode et amélioré de 50 % la latence de frappe de certaines expressions complexes.

    Nous avons considérablement amélioré les performances de chargement de Xcode. Le chargement d’un espace de travail est 40 % plus rapide, ce qui fait une grande différence pour les projets volumineux. Ceci nous amène au sujet des mises à jour de l’espace de travail et de l’édition. De nombreuses améliorations ont été apportées à l’éditeur de code source dans Xcode. Commençons par les onglets de l’éditeur. Xcode améliore le comportement des onglets de l’éditeur pour les rendre beaucoup plus intuitifs. Comme dans Safari, je peux ouvrir un onglet et décider où aller à partir de là, grâce à cette nouvelle page d’accueil. Et je peux épingler un onglet pour me concentrer sur un fichier particulier. Je peux ainsi gérer précisément le nombre d’onglets que j’ai, que ce soit un seul, un pour chaque fichier, ou un ensemble parfaitement organisé.

    Parlons maintenant de la recherche. Lorsque vous explorez un projet inconnu, ou naviguez dans un projet familier, il est essentiel de pouvoir rechercher efficacement dans votre code. Xcode intègre un nouveau mode de recherche appelé « recherche de mots multiples », qui utilise des techniques de moteur de recherche pour identifier des groupes de mots dans votre projet. Dans ce mode de recherche, je peux saisir un groupe de mots. Par exemple, j’essaie de trouver où dans mon projet je crée des images redimensionnables découpées.

    Xcode recherchera alors tous les groupes de mots proches les uns des autres dans vos documents, puis classera les documents par pertinence.

    Les groupes peuvent s’étendre sur plusieurs lignes et les termes recherchés peuvent apparaître dans n’importe quel ordre, ce qui rend cette fonctionnalité très intéressante.

    Cette année marque une avancée majeure en matière d’accessibilité dans Xcode. Vous pouvez utiliser le contrôle vocal pour écrire du code Swift facilement, et vous pouvez le prononcer comme si vous le lisiez naturellement à haute voix. Dans ce mode, le contrôle vocal comprend la syntaxe de Swift. Il détermine où les espaces doivent apparaître, si les expressions correspondent à des opérateurs ou doivent être écrites en casse chameau, etc. Nous allons voir cette fonctionnalité en action. Grâce au mode Swift pour le contrôle vocal, je peux accéder à mon code Swift et le modifier en parlant à mon Mac. Profitons-en pour ajouter un champ à notre inspecteur de repères afin d’indiquer le continent du repère.

    « démarrer l’écoute » « mode Swift » « Sélectionner LabledContent » « Quatre » « Aller au bout de la ligne » « Nouvelle ligne, nouvelle ligne » « if let continent equals landmark point continent ouvrir accolade » « Nouvelle ligne » « labeled content ouvrir guillemet continent guillemet virgule valeur deux points continent » « corriger guillemet continent » « Un » « arrêter l’écoute » Notez que le champ continent s’affiche maintenant vers le bas de mon aperçu, et je n’ai pas touché mon clavier une seule fois ! Passons maintenant à l’itération sur du code. L’utilisation des aperçus a toujours été un excellent moyen d’itérer rapidement sur votre code de UI. Nous introduisons une nouvelle macro appelée « Playground » que vous pouvez utiliser pour itérer sur n’importe quel code. Comme pour les aperçus, vous pouvez ajouter un playground en ligne dans votre document, et les résultats de l’exécution du code s’afficheront dans leur propre onglet du canevas. Je vais vous faire une démo. J’ai remarqué un bug dans l’app Landmarks où les points de repère apparaissent au mauvais endroit sur la carte. J’utilise un playground pour examiner la structure des points de repère et voir si je peux comprendre ce qui se passe.

    L’importation du module Playgrounds me donne accès à la macro playground.

    Chargeons un exemple de point de repère afin de pouvoir examiner ses données.

    Dans le canevas, je vois une entrée pour chaque expression de mon playground. Je n’en ai qu’une, qui est la structure landmark du Grand Canyon, et je peux voir les valeurs de chacune de ses propriétés. Certains types de propriétés ont une icône d’aperçu. Examinons de plus près la propriété des coordonnées. Ok, c’est étrange... le Grand Canyon ne devrait pas être dans une ville. Je peux ajouter une autre expression à mon playground pour obtenir plus d’infos sur la région correspondant à ce point de repère. À mesure que je modifie le playground, les expressions qu’il contient sont réexécutées et le canevas se met à jour automatiquement.

    Le Grand Canyon n’est définitivement pas en Chine. Voyons ce qui se passe ici. Lorsque nous chargeons des points de repère à partir d’un fichier, nous utilisons une expression régulière pour analyser les coordonnées de localisation à partir d’une chaîne. Voilà l’expression régulière que nous utilisons. Le problème provient peut-être d’une erreur d’analyse de nos coordonnées ? Examinons cela dans un autre playground. Lorsque j’ajoute un nouveau playground, un nouvel onglet s’affiche dans le canevas.

    Ajoutons un peu de code à ce playground.

    Nous allons appeler la fonction dans laquelle cette expression régulière est définie.

    J’utilise un exemple de chaîne d’entrée et j’extrais certains résultats calculés dans des variables locales afin de faciliter leur examen. Certains types, tels que les résultats de correspondance d’expressions régulières, ont des visualisations personnalisées dans le canevas. Dans ce cas, je constate que Xcode met en évidence la plage de correspondance dans la chaîne d’origine. La plage de correspondance indique clairement qu’il y a eu un problème lors de la capture du signe moins. Je comprends d’où vient le problème. La longitude négative a été interprétée comme un nombre positif, ce qui a déplacé le Grand Canyon au mauvais endroit.

    Je vais corriger l’expression. Si vous regardez le playground sur l’espace de travail, vous verrez que les résultats se mettent à jour instantanément. Je constate dans la visualisation que le signe moins est désormais inclus dans la plage correspondante à l’expression régulière.

    Si je retourne au playground d’origine, je constate que le Grand Canyon est désormais au bon endroit. Et voilà pour les playgrounds. Ils sont très utiles pour comprendre le code existant et pour tester de nouvelles idées. La nouvelle macro #Playground est open source pour permettre aux développeurs Swift qui écrivent pour d’autres plates-formes d’en profiter. Consultez les forums Swift et participez à la conversation ! Parlons maintenant des icônes. Icon Composer est une nouvelle app fournie avec Xcode 26. Avec Icon Composer, vous pouvez créer des icônes élégantes, sophistiquées et multicouches qui fonctionnent sur plusieurs plates-formes et versions logicielles. Au cours des dernières années, nous avons simplifié la création d’icônes pour toutes les plates-formes. Désormais, les icônes ne diffèrent pas seulement en fonction de la plate-forme pour laquelle vous développez. Elles varient selon les modes, notamment en mode sombre et teinté sur iOS, iPadOS et macOS. Et watchOS bénéficie également d’un nouveau design.

    Tout cela est possible dans un seul fichier à l’aide d’Icon Composer.

    Vous pouvez profiter de tous nos effets matériels et même ajouter des propriétés dynamiques à vos calques, telles que le flou, l’ombre, les reflets spéculaires et la translucidité. Cet outil est idéal pour créer des icônes plates compatibles avec les systèmes d’exploitation précédents, les pages web ou tout autre support où vous en avez besoin.

    Pour en savoir plus sur les icônes d’app et sur Icon Composer, regardez « Say hello to the new look of app icons » et « Create app icons with Icon Composer ». Pouvoir proposer votre app à davantage d’utilisateurs à travers le monde est un avantage considérable. La prise en charge de plusieurs langues permet aux utilisateurs de naviguer confortablement dans votre app. Grâce aux catalogues de chaînes, la localisation devient un jeu d’enfant. Les catalogues de chaînes ont été grandement améliorés pour simplifier le travail des développeurs et des traducteurs. Pour les développeurs, nous avons ajouté des symboles Swift type-safe pour les chaînes localisées. Les développeurs qui souhaitent contrôler plus précisément les chaînes peuvent les définir directement dans le catalogue de chaînes, qui génère des symboles Swift accessibles dans le code. Ces symboles apparaissent même dans les suggestions de saisie automatique ! Pour aider les traducteurs, les catalogues de chaînes peuvent générer automatiquement des commentaires pour décrire le contexte.

    Pour ce faire, Xcode analyse intelligemment où et comment une chaîne localisée est utilisée dans votre projet. Il génère ensuite des commentaires à l’aide du modèle sur l’appareil.

    Pour en savoir plus sur les catalogues de chaînes, regardez « Explore localization with Xcode », ce qui nous amène à l’intelligence. Xcode intègre de nouvelles fonctionnalités d’intelligence. Xcode peut désormais utiliser de grands modèles de langage, tels que ChatGPT pour aider à la programmation. Vous pouvez poser des questions d’ordre général sur Swift, par exemple « Parle de la concurrence Swift ».

    Et grâce à son intégration avec Xcode, le modèle peut analyser votre code, répondre à des questions précises sur votre projet, et même effectuer des modifications pour vous.

    Nous proposons aussi un menu pratique et allégé qui vous permet d’appliquer automatiquement des modifications au code sélectionné. Lorsque vous affichez des outils de codage, vous accédez aux actions courantes ou vous pouvez saisir une requête personnalisée dans le champ de texte. Voyons ces fonctionnalités plus en détail. Je ne suis pas familier avec le code de cette app. Elle a une vue qui affiche mes collections de points de repère préférées, et j’ignore où cela est implémenté. Je vais donc demander à Xcode.

    Xcode envoie le contexte du projet au modèle, qui répond avec une explication décrivant les fichiers sources pertinents et leur fonction. Le modèle peut aussi solliciter Xcode pour obtenir des informations sur le contexte nécessaire lors de la recherche d’une réponse.

    Le bouton « info » de la transcription montre le contexte envoyé par Xcode.

    La réponse contient aussi des liens pour accéder facilement à tous les fichiers mentionnés. Celui-ci semble être le bon. C’est un excellent moyen d’explorer une base de code inconnue. Maintenant, ajoutons une fonctionnalité ! Demandons à Xcode d’ajouter des notes aux collections de points de repère.

    J’utilise le symbole « @ » pour faire référence à un caractère que nous voulons que le modèle modifie.

    Avec le « @ » dans mon invite, je peux mentionner des symboles, des fichiers sources ou tout problème spécifique sur lesquels je veux que la réponse se concentre. Cela peut être utile lorsque vous avez des changements spécifiques à l’esprit. Je peux ajouter des fichiers pour que la requête puisse s’y référer. Les images sont particulièrement utiles, car de nombreux grands modèles de langage peuvent générer du code à partir d’une simple esquisse d’UI. Les changements automatiques du contexte et du code font ce qu’il faut dès le départ, mais si vous pouvez aussi avoir plus de contrôle si vous le souhaitez. Cette option détermine si Xcode inclut des informations sur votre projet dans la requête. Si vous posez une question générale sur Swift, par exemple, vous pouvez choisir de désactiver le contexte du projet. Il vaut généralement mieux le laisser activé. Cette option vous permet de contrôler l’application automatique des modifications de code dans la réponse. Si elle est désactivée, vous pouvez examiner chaque modification avant de décider de l’appliquer ou non. Très bien, il semble que la réponse soit complète et que toutes les modifications aient été apportées à mon projet. Je peux cliquer pour voir un résumé des changements apportés... ceux-ci ont l’air bien. Je peux taper un nouveau message pour poursuivre la conversation. Demandons au modèle d’ajouter cette note à l’interface utilisateur.

    Le modèle peut comprendre quelle est la référence ici, car les nouveaux messages gardent le contexte des requêtes et des réponses précédentes.

    Ce changement a l’air plutôt bien !

    Je peux continuer à apporter des modifications en tenant compte du contexte précédent. Amusons-nous un peu et faisons en sorte qu’il aille jusqu’à onze.

    Encore une fois, le modèle comprend ce que je veux dire ici.

    Et voilà ! Nous avons désormais 11 étoiles ! Par défaut, les modifications sont appliquées automatiquement à votre code. Xcode garde une copie de votre code avant chaque modification. Cela vous permet de les consulter et de les annuler grâce à l’historique des modifications dans la vue Conversation. Ici, je peux examiner chaque ligne de code modifiée à chaque étape de la conversation. Je peux faire des allers-retours dans le temps pour appliquer ou annuler des ensembles individuels de modifications. Les changements me conviennent, je vais donc supprimer l’historique des modifications.

    Jusqu’à présent, j’ai utilisé l’assistant de code pour apporter des modifications qui affectent plusieurs fichiers de mon projet. Pour une partie spécifique du code, je peux utiliser des outils de programmation directement dans mon éditeur de code source.

    Utilisons des outils de codage pour ajouter un playground qui permettra d’exécuter notre structure Landmark. Les outils de codage ont des boutons pour appliquer des actions à mon code, ou je peux saisir une requête personnalisée. Dans ce cas, sélectionnons l’action pour générer un playground. Puisque le modèle a accès au contexte, que ce soit pour le code nouvellement généré ou pour le code déjà existant, il est capable de créer des playgrounds qui exercent le code de manière intéressante. Nous avons désormais un playground qui me permet d’inspecter un exemple de point de repère ! En plus d’expliquer ou de modifier le code, Xcode m’aide pour corriger les problèmes dans mon code. Par exemple, j’ai ici une erreur lorsque j’essaie d’utiliser une vue ForEach avec un type qui n’est pas conforme à Identifiable. Une nouvelle option est disponible pour générer une correction. Elle permet d’afficher l’assistant de codage.

    Puisque le modèle a accès à la déclaration de type ainsi qu’à l’endroit où l’erreur est détectée, il peut déterminer quel fichier doit être modifié pour corriger l’erreur. Dans ce cas, le correctif consistait à ajouter une conformité au protocole dans activity.swift.

    L’erreur est maintenant corrigée. Xcode est très efficace pour résoudre d’autres problèmes. Par exemple, je laisse parfois traîner des avertissements d’obsolescence dans le code, car ils ne causent pas de problèmes immédiats. Je peux gagner du temps et demander à Xcode de les corriger pour moi ! Il existe plusieurs méthodes pour ajouter un modèle dans Xcode. Tout d’abord, vous pouvez activer ChatGPT en quelques clics. Vous recevrez un nombre limité de requêtes chaque jour, mais vous pourrez utiliser votre propre compte ChatGPT pour en obtenir davantage.

    Si vous voulez utiliser un autre fournisseur, comme Anthropic, vous pourrez entrer votre clé API pour interagir avec des modèles tels que Claude 4 Opus et Sonnet ! Vous pouvez choisir les modèles pour chaque fournisseur et marquer vos favoris pour y accéder facilement. Vous pouvez aussi utiliser des modèles locaux sur votre Mac ou votre réseau privé avec des outils comme Ollama et LM Studio !

    Vous pouvez ajouter autant de fournisseurs que vous le souhaitez dans les préférences de Xcode. Une fois vos modèles configurés, vous pouvez facilement passer de l’un à l’autre dans l’assistant de codage au début d’une nouvelle conversation. Voici un aperçu des nouvelles fonctionnalités de l’espace de travail et de l’éditeur de code source de Xcode et de la manière d’utiliser l’intelligence du code pour stimuler votre créativité et votre productivité. Chris va maintenant prendre la parole pour nous parler du débogage et des performances. Merci Eliza ! Améliorer les performances et corriger les bogues de vos apps sont des étapes essentielles pour une expérience utilisateur optimale. Cette année, nous avons des mises à jour intéressantes, à commencer par le débogueur. Le débogage du code concurrent en Swift est devenu plus convivial dans la nouvelle version de Xcode. Xcode suit désormais l’exécution du code dans les fonctions asynchrones lors de l’exécution d’une tâche Swift, même si cela implique un changement de thread. Et la UI du débogueur Xcode affiche désormais les identifiants de tâche. Ici, par exemple, la tâche Swift actuelle est affichée dans un backtrace à gauche et dans l’annotation du compteur de programme à droite. Et dans la vue des variables, vous verrez des représentations plus lisibles des types de concurrence. Tels que les tâches, les groupes de tâches et les acteurs. Dans cet exemple, il est beaucoup plus facile de voir les propriétés de la variable Task, telles que sa priorité et les tâches enfants.

    Xcode 26 simplifie plus que jamais le débogage du code de concurrence Swift. Pour plus d’infos sur la concurrence Swift, regardez « What’s New in Swift ».

    Si vous avez déjà ajouté à votre app une fonctionnalité nécessitant l’accès à une ressource privée, telle que la position de l’utilisateur ou l’appareil photo, vous avez peut-être remarqué que votre app s’arrêtait brusquement dans le débogueur, avec une erreur de « description d’utilisation » manquante. Les « descriptions d’utilisation » sont requises lors de l’accès à des ressources privées, afin que le système puisse les inclure dans une invite d’autorisation, pour aider l’utilisateur à comprendre pourquoi l’app demande l’accès. Cette année, Xcode détecte quand une app s’arrête à cause d’une description d’utilisation manquante et explique ce qui manque. À partir de l’annotation, vous pouvez accéder à la documentation pour en savoir plus. Le moyen le plus rapide de résoudre ce problème est d’utiliser le nouveau bouton « Add », qui vous dirigera vers l’éditeur Signing & Capabilities. La fonctionnalité requise sera ajoutée pour vous, car l’éditeur Signing & Capabilities de Xcode 26 permet de modifier de nombreuses fonctionnalités nécessitant des descriptions d’utilisation, le tout au même endroit. Xcode se chargera de mettre à jour le fichier Info, les paramètres de build ou les droits sous-jacents pour vous. Il ne vous reste plus qu’à saisir votre description d’utilisation. Vous pouvez relancer l’app et vérifier que la fonctionnalité demande bien l’autorisation, comme prévu. Instruments est un outil puissant qui permet d’analyser les performances de vos apps et de vos versions à chaque installation de Xcode. Instruments propose des outils puissants pour analyser le processeur et profiler efficacement les performances de votre code sur le matériel moderne équipé d’une puce Apple. Auparavant, Instruments se servait de profileurs basés sur l’échantillonnage pour analyser l’utilisation du CPU, une méthode idéale pour étudier les charges de travail de longue durée. Mais qu’est-ce que cela signifie pour un profileur d’être basé sur l’échantillonnage ? Cela signifie que l’outil effectue des échantillonnages réguliers des processeurs, en partant du principe que les piles d’appels échantillonnées reflètent la même utilisation relative globale du processeur. L’échantillonnage, par sa nature, n’est qu’une approximation de la charge de travail globale, ce qui le rend plus adapté à l’analyse des charges de travail de longue durée. Dans notre illustration, les sections orange de l’exécution n’ont pas été capturées par l’échantillonnage. Les appareils récents dotés d’une puce Apple peuvent capturer une trace du CPU, où celui-ci conserve des infos sur le code qu’il exécute, y compris les branches qu’il suit et les instructions vers lesquelles il saute. Le CPU transmet ces infos à une zone du système de fichiers afin qu’elles puissent être analysées avec l’instrument Processor Trace.

    Au lieu de procéder à un échantillonnage périodique, la trace du processeur capture les détails de chaque décision de branchement à bas niveau prise par le CPU, pour tous les threads actifs, tout en imposant une surcharge d’exécution très faible. Cela signifie que la chronologie Processor Trace peut fournit une visualisation haute fidélité du flux d’exécution. Contrairement aux profileurs d’échantillonnage traditionnels qui risquent de passer à côté de chemins de code essentiels entre les intervalles d’échantillonnage, cet outil met en lumière chaque branche empruntée et chaque fonction appelée, y compris le code généré par le compilateur, comme la gestion de la mémoire ARC dans Swift. Processor Trace représente une révolution dans la manière d’évaluer les performances logicielles, en capturant chaque appel de fonction sur tous les threads avec une surcharge minimale. Processor Trace a été introduit avec Xcode 16.3 et est pris en charge par les appareils M4 et iPhone 16.

    Processor Trace est utile pour comprendre l’exécution de votre code et savoir où le temps du processeur est utilisé. L’instrument CPU Counters a été considérablement amélioré et vous aidera à mieux comprendre comment votre code interagit avec le CPU.

    Cet outil vous aide à optimiser la microarchitecture. CPU Counters utilise désormais des modes prédéfinis qui regroupent les compteurs associés afin de comprendre comment votre code est traité par le processeur. Ces modes incluent un mode général CPU Bottlenecks, qui constitue un bon point de départ pour ce type d’analyse.

    CPU Bottlenecks divise la bande passante des instructions durables en travail utile ou en goulot d’étranglement pour l’une des trois raisons suivantes : Soit le processeur devait attendre que des unités d’exécution ou de la mémoire se libèrent, soit il ne pouvait pas fournir les instructions assez rapidement, soit il avait mal anticipé le travail à venir et devait se réajuster.

    Outre l’approche par analyse des goulots d’étranglement, les modes Caractéristiques des instructions et Statistiques offrent une utilisation plus traditionnelle des compteurs pour obtenir des comptages absolus de la consommation. Ceux-ci vous permettent de vous concentrer sur l’optimisation des séquences d’instructions critiques en analysant directement les branches, le comportement du cache et les opérations numériques.

    CPU Counters comprend une documentation détaillée pour comprendre la signification des modes et des compteurs. Pour en savoir plus sur Processor Trace et CPU Counters, regardez « Optimize CPU performance with Instruments ». Avec SwiftUI, la création d’apps hautement interactives n’a jamais été aussi simple. Pour la meilleure expérience utilisateur possible, les performances sont essentielles. Nous avons donc amélioré les performances de SwiftUI dans les versions du système d’exploitation. Les listes peuvent, par exemple, être actualisées jusqu’à 16 fois plus vite sans aucune modification de votre app. Même avec ces améliorations, il se peut que votre app ne fonctionne pas aussi bien que vous l’espérez, et vous voudrez peut-être comprendre pourquoi vos vues sont souvent mises à jour. Pour vous aider, la nouvelle génération d’outils SwiftUI intégrée à Xcode 26 recueille des informations détaillées sur les causes et les effets des mises à jour SwiftUI. Il est ainsi plus facile que jamais de comprendre quand et pourquoi vos vues sont actualisées. La chronologie offre un aperçu des moments où SwiftUI travaille sur le thread principal et où les mises à jour individuelles des vues prennent beaucoup de temps et risquent de provoquer un blocage ou un plantage. Le résumé « View Body Updates » vous indique combien de fois chaque vue de votre app a été mise à jour. Si le nombre de mises à jour de l’une de vos vues est beaucoup plus important que prévu, ouvrez le graphique de cause à effet pour comprendre pourquoi.

    Pour en savoir plus sur les améliorations des performances de SwiftUI, regardez « What’s new in SwiftUI ». Pour plus d’informations sur l’utilisation de SwiftUI Instrument, regardez « Optimize SwiftUI performance with Instruments ». Les utilisateurs aiment les apps sur lesquelles ils peuvent compter à tout moment. Et une bonne autonomie est essentielle pour garantir cette fiabilité. Lors du débogage de votre app, vous avez peut-être remarqué une consommation d’énergie élevée dans Xcode, ce qui indique un problème. Trouver la cause profonde peut être difficile. Dans ce cas, pouvoir exécuter votre app, reproduire le problème et enregistrer des statistiques de puissance est une bonne approche. L’instrument Power Profiler est l’outil idéal pour cela. Il vous permet de créer le profil de votre app et d’enregistrer des statistiques que vous pouvez ensuite visualiser. L’outil Power Profiler montre la consommation d’énergie du système en lien avec les états thermiques et la charge de l’appareil, ce qui permet de repérer les pics de consommation imprévus. Le suivi des processus révèle comment l’app affecte différents sous-composants énergétiques de l’appareil, comme le CPU, le GPU, l’écran et la connectivité réseau. Power Profiler prend en charge deux modes de suivi : l’enregistrement en mode connecté, avec Instruments directement connecté à l’appareil cible, et l’enregistrement « passif », où une trace peut être initiée sur un appareil à partir des paramètres du développeur, sans être connectée. La trace peut ensuite être importée dans Instruments pour analyse. En enregistrant des charges de travail stables, vous pouvez utiliser l’outil Power Profiler pour voir comment vos choix d’algorithmes et d’API influencent la durabilité d’une charge de travail. Pour en savoir plus, regardez « Profile and optimize power usage in your app ». Bien qu’Instruments soit idéal pour analyser les performances de votre app pendant son développement, Xcode Organizer vous aide à suivre l’impact de vos apps sur les performances et la consommation d’énergie grâce à des statistiques et des diagnostics.

    L’Organizer de Xcode 16 a ajouté une nouvelle fonctionnalité appelée Trending Insights dans les diagnostics d’écriture sur disque, identifiable par une icône de flamme dans la liste des sources. Ces données mettent en lumière les problèmes dont l’impact a augmenté et auxquels vous devriez être attentif. Dans la nouvelle version Xcode, nous avons franchi une étape supplémentaire en intégrant Trending Insights aux diagnostics de blocage et de lancement. L’icône en forme de flamme signale les temps de blocage et de lancement qui vont dans la mauvaise direction. De plus, la section Insights fournit des infos claires sur la tendance en représentant graphiquement l’augmentation au cours des 5 dernières versions de l’app. C’est non seulement un bon point de départ pour améliorer les performances, mais cela vous aide aussi à repérer les endroits où vous avez pu ajouter du code qui a augmenté l’impact global.

    Maintenant que vous savez quelles sont les priorités, vous pouvez partager un rapport de diagnostic avec vos collègues à l’aide du partage d’URL.

    Les statistiques sont une autre section de l’Organizer qui vous aide à comprendre les performances de votre app d’une version à l’autre. Les statistiques ont été étendues dans Xcode 26 avec l’ajout des recommandations. Les recommandations statistiques comparent les statistiques de votre app à celles d’autres sources, notamment des apps similaires et les données historiques de votre app, afin de vous fournir un point de référence important pour comprendre les performances de votre app auprès de vos utilisateurs. Dans cet exemple, le temps de lancement de notre app est d’environ 564 millisecondes. Sur la base des statistiques d’apps similaires, Xcode recommande un temps de lancement de notre app proche de 425 millisecondes, ce qui nous donne un objectif clair à atteindre. Les recommandations statistiques sont disponibles pour la statistique du temps de lancement. Apple activera progressivement les recommandations pour d’autres statistiques. Ensuite, j’aimerais parler du système de build de Xcode. Dans Xcode 16, nous avons introduit des modules de build explicite, disponibles pour le code C et Objective-C. Dans Xcode 26, nous sommes ravis d’annoncer que nous activons par défaut des modules de build explicite pour le code Swift. Avec les modules explicites, Xcode divise le traitement de chaque unité de compilation en trois phases : l’analyse, la compilation de modules, puis la compilation du code source d’origine. Cette séparation permet au système de build de mieux contrôler les tâches de compilation des modules afin d’optimiser le pipeline de compilation.

    La création de modules explicites améliore l’efficacité et la fiabilité de la build, avec un partage plus précis et déterministe des modules. Elle améliore la vitesse de débogage du code Swift, car le débogueur peut réutiliser les modules déjà compilés. Pour plus d’informations, regardez « Demystify explicitly built modules ». Plus tôt cette année, Apple a rendu le code source de Swift Build accessible au public. Ce moteur de compilation, à la fois puissant et flexible, est utilisé par Xcode, Swift Playground et dans le processus de compilation interne des systèmes d’exploitation Apple. Nous avons travaillé à l’intégration de Swift Build dans Swift Package Manager afin d’uniformiser l’expérience de compilation entre les chaînes d’outils open source Swift et Xcode. Nous ajoutons la prise en charge de toutes les plates-formes prises en charge par l’écosystème Swift, notamment Linux, Windows, Android, etc. Vous pouvez prévisualiser cette nouvelle implémentation sur vos propres packages en utilisant l’option build-system de l’outil de ligne de commande Swift. Ou consultez vos modifications en direct dans Xcode en suivant les instructions du dépôt Swift Build.

    Pour la première fois, la communauté peut contribuer à la mise en œuvre du moteur de compilation qui alimente Xcode et l’écosystème Swift. Pour en savoir plus sur Swift Build ou participer au développement, consultez le dépôt sur GitHub. Dans notre monde interconnecté, les utilisateurs voient la sécurité comme une exigence essentielle pour les apps. La fonctionnalité Enhanced Security de Xcode offre à vos apps les mêmes protections que celles utilisées dans les apps d’Apple, comme l’authentification par pointeur. Vous pouvez activer ces paramètres de sécurité pour votre app en ajoutant la fonctionnalité Enhanced Security dans l’éditeur Signing & Capabilities. Nous vous recommandons de l’activer pour les apps dont la surface d’attaque est importante, comme les réseaux sociaux, la messagerie, l’affichage d’images et la navigation web. Pour en savoir plus sur Enhanced Security, consultez la documentation Apple Developer. Parlons maintenant des tests. Les tests de l’interface utilisateur de Xcode ont été considérablement améliorés. L’enregistrement de l’automatisation de la UI a été amélioré grâce à un nouveau système de génération de code. Excellente nouvelle ! Je souhaitais justement tester la UI d’édition de la collection de Landmarks. Utilisons la fonction d’enregistrement d’automatisation de UI de Xcode 26 pour créer mon test automatiquement. J’ai déjà configuré une cible de test pour ce projet et une nouvelle méthode de test est prête à être complétée. En plaçant le curseur dans le corps de la méthode de test, Xcode révèle un bouton « Start Recording » dans la marge de l’éditeur. Appuyons sur ce bouton pour démarrer l’enregistrement. Xcode m’invite alors à confirmer et m’informe que le fichier sera en mode lecture seule jusqu’à la fin de l’enregistrement.

    Xcode prépare maintenant la session. Il lance l’app dans le simulateur, en mode Enregistrement.

    Je peux effectuer exactement les interactions que je souhaite voir dans mon test. Je vais commencer par accéder à l’écran Collections.

    Remarquez comment Xcode ajoute du code à ma méthode de test pour chacune de mes interactions. C’est super !

    Ensuite, je vais ajouter une nouvelle collection et passer en mode modification.

    La modification d’une collection est l’objectif principal de ce test. Je vais donc interagir avec chacun des champs de cet écran, pour modifier le titre, la description et ajouter un point de repère.

    Celui-ci a l’air parfait !

    Nous avons terminé les étapes pour ajouter et modifier une nouvelle collection. Enfin, pour vérifier notre modification, sélectionnons le point de repère que nous avons ajouté à la collection afin d’accéder à ses détails.

    C’est tout ce dont nous avons besoin pour ce test de UI. De retour dans l’éditeur source, j’appuie sur Stop Recording dans la marge de l’éditeur pour mettre fin à l’enregistrement.

    Utilisons maintenant le diamant de test pour voir notre test en action.

    Remarquez comment Xcode a généré du code concis pour toutes nos interactions. De plus, nous obtenons plusieurs options d’identifiant pour de nombreux éléments.

    Nous pouvons les utiliser pour affiner la manière dont un élément est identifié dans nos tests. Créer un nouveau test de UI devient bien plus facile quand il suffit d’effectuer les interactions directement dans l’app que vous voulez tester.

    Et voilà un exemple d’enregistrement d’un test de UI dans Xcode 26. Xcode se charge de toutes les tâches complexes liées à la conversion de vos interactions en un code de test optimal. La génération de code pour les tests de UI ne s’arrête pas là. La même génération de code a été intégrée dans l’Automation Explorer du rapport de test.

    Ici, j’ai un rapport de test ouvert, contenant un échec du test de l’interface utilisateur. Il semble que le test ait tenté d’accéder à un champ TextField, mais qu’il n’en ait pas trouvé un ayant l’identifiant spécifié. Sur la droite, l’Automation Explorer contient un enregistrement vidéo complet du test. Nous pouvons rejouer l’intégralité du test en temps réel, si nécessaire. L’image vidéo actuelle montre le moment où l’échec s’est produit. Nous pouvons certainement voir un champ de description dans l’interface utilisateur de l’app. Ce qui est génial avec les tests d’interface utilisateur, c’est que Xcode enregistre les attributs de chaque élément identifiable lors de l’exécution d’un test. Nous pouvons ensuite inspecter les éléments dans l’Automation Explorer après coup. Examinons donc l’élément « description ». En examinant les détails de l’élément, on constate que son identifiant est correct, mais que son type est en réalité Text View et non Text Field, contrairement à ce que le test attendait. Il semble que l’interface utilisateur de l’app ait été mise à jour pour prendre en charge les descriptions multilignes. Heureusement, l’extrait de code approprié pour identifier cet élément a été généré pour nous. Nous pouvons copier le code de la fenêtre contextuelle et mettre à jour notre test pour effectuer la correction.

    Et voilà l’expérience améliorée des tests d’interface utilisateur. Outre l’amélioration de l’enregistrement de l’interface utilisateur, Xcode offre une meilleure prise en charge des appareils pour les interactions matérielles automatisées, notamment les claviers matériels et les pressions sur les boutons matériels. Ensemble, ces améliorations rendent les tests d’interface utilisateur beaucoup plus fluides. Nous vous invitons donc à ajouter des tests de UI à votre projet et à tirer parti de Xcode Cloud pour exécuter vos tests de manière autonome. Pour en savoir plus, veuillez consulter « Record, replay, and review: UI automation in Xcode ».

    Les tests d’interface utilisateur sont aussi très utiles pour évaluer la réactivité de votre interface grâce à l’API « measure ». Dans Xcode 26, nous avons enrichi l’API avec l’ajout d’un XCTHitchMetric. Cela permet de détecter les problèmes dans votre app lors des tests. Par exemple, vous pouvez utiliser XCTHitchMetric pour tester les performances d’animation du défilement de votre app.

    XCTHitchMetric fournit différentes statistiques sur les performances de votre app en matière d’accroc, notamment le taux d’accroc. Le ratio de temps d’accroc représente la durée totale pendant laquelle votre app a connu des accrocs au cours de la partie mesurée de votre test. Pour plus d’infos sur les accrocs, regardez le Tech Talk « Explore UI animation hitches and the render loop ».

    Les vérifications de l’API d’exécution constituent une autre excellente méthode pour tester la régression de votre code. Xcode intègre davantage de vérifications de l’API d’exécution aux tests, configurables dans l’éditeur de configuration du plan de test. Les tests peuvent désormais détecter les problèmes d’exécution du framework et signaler les problèmes de threading à l’aide du vérificateur de performances des threads.

    Le vérificateur de performances des threads détecte les problèmes de threading tels que les inversions de priorité et les tâches non liées à l’interface utilisateur sur le thread principal. Ici, il nous signale une API qui ne devrait pas être appelée sur le thread principal si nous souhaitons que notre app reste réactive.

    Les plans de test permettent aussi de faire échouer un test si les vérifications de l’API d’exécution détectent des problèmes. Vos tests peuvent vous garantir que votre code respecte toujours les meilleures pratiques en matière d’API. Ce ne sont là que quelques-unes des nouvelles fonctionnalités intéressantes. Xcode 26 peut améliorer l’efficacité de votre code, vous guider dans le développement de nouvelles fonctionnalités et vous fournir de nouveaux outils pour mieux gérer un plus grand nombre de plates-formes et de langages. Il peut vous aider que vous soyez en train de déboguer à votre bureau, d’analyser les performances de votre app en conditions réelles ou de tester vos interfaces utilisateur. Téléchargez Xcode 26 pour créer, compiler et déboguer votre code. Et utilisez Xcode Cloud pour tester et distribuer votre app. Posez-nous toutes vos questions sur les forums des développeurs. Et pour en savoir plus, consultez nos notes de version sur developer.apple.com. Merci de votre attention !

    • 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 - Introduction
    • Découvrez les nouveautés d'Xcode pour les développeurs, notamment les optimisations de taille de téléchargement et de performance, les améliorations de l'espace de travail et de l'éditeur, les nouvelles fonctions d'intelligence de code, les outils de débogage et de performance, les mises à jour de build et les améliorations de test.

    • 0:49 - Optimisations
    • Xcode bénéficie cette année d'optimisations majeures, avec une taille de téléchargement réduite de 24 %, grâce à la suppression du support Intel par défaut dans les exécutions du simulateur et au téléchargement conditionnel de la chaîne d'outils Metal. La saisie de texte est jusqu'à 50 % plus rapide dans les expressions complexes, et le chargement de l'espace de travail est accéléré de 40 %, ce qui profite particulièrement aux gros projets.

    • 1:42 - Espace de travail et édition
    • La nouvelle version d'Xcode apporte des améliorations significatives à l'éditeur de code, renforçant l'expérience utilisateur et la productivité. Les onglets de l'éditeur disposent désormais d'une page de démarrage, similaire à Safari, et permettent d'épingler des onglets pour mieux organiser l'espace de travail. La recherche a été repensée avec l'introduction de la recherche de mots multiples. Ce mode utilise des techniques de moteur de recherche pour trouver des groupes de mots dans le projet, même s'ils apparaissent dans un ordre différent ou sur plusieurs lignes. L'accessibilité a également fait un grand bond en avant. Xcode prend désormais en charge le mode Swift pour Voice Control, permettant d'écrire et de prononcer du code Swift naturellement. Voice Control comprend la syntaxe Swift, insère automatiquement les espaces et formate correctement le code, ce qui en fait un outil puissant pour les développeurs ayant des besoins d'accessibilité ou préférant la saisie vocale. Au-delà de ces améliorations, Xcode introduit une nouvelle macro #Playground, permettant d'itérer rapidement sur n'importe quel code. Vous pouvez insérer des playgrounds directement dans les documents, et les résultats s'affichent dans un onglet de canevas séparé, offrant un retour en temps réel lors de la modification du code. Une nouvelle app appelée Icon Composer est incluse avec Xcode, facilitant la création d'icônes multicouches compatibles avec plusieurs plateformes et modes (sombre, teinté, etc.).

    • 10:37 - Intelligence
    • Xcode 26 intègre des modèles de langage comme ChatGPT pour améliorer l'assistance au codage. Vous pouvez poser des questions générales sur Swift ou spécifiques à votre projet, et le modèle peut fournir des explications, générer du code ou proposer des modifications. Un nouveau menu léger permet d'appliquer automatiquement des modifications au code sélectionné. Le modèle peut aussi analyser le contexte global du projet pour comprendre les références et proposer des modifications pertinentes. Vous gardez le contrôle sur l'inclusion du contexte du projet et sur l'application automatique des modifications. Xcode crée des instantanés du code avant chaque modification, facilitant la révision et l'annulation. En plus des explications et modifications de code, Xcode peut désormais générer des playgrounds, corriger des erreurs et résoudre les avertissements de dépréciation. Vous pouvez choisir parmi plusieurs fournisseurs de modèles de langage, comme ChatGPT, Anthropic ou des modèles locaux, et basculer facilement entre eux dans Xcode.

    • 17:47 - Débogage et performances
    • La nouvelle version d'Xcode introduit des améliorations majeures pour le débogage et l'analyse de performance. Le débogage du code Swift asynchrone est simplifié : Xcode suit l'exécution dans les fonctions asynchrones, affiche les identifiants de tâches et fournit une représentation claire des types de concurrence. Xcode détecte automatiquement quand une app plante à cause d'une description d'usage manquante pour accéder à une ressource privée, et propose un bouton Ajouter pour corriger cela dans l'éditeur Signature et fonctionnalités. Pour l'analyse de performance, Instruments a été mis à jour. L'instrument Processor Trace, introduit dans Xcode 16.3 et pris en charge par les appareils M4 et iPhone 16, capture chaque décision de branchement bas niveau du CPU, offrant une visualisation fidèle du flux d'exécution. L'instrument CPU Counters a également été largement amélioré, avec des modes prédéfinis pour comprendre comment votre code interagit avec le CPU, permettant des optimisations microarchitecturales et l'identification des goulots d'étranglement. Instruments inclut également de nouvelles fonctionnalités pour SwiftUI, permettant de suivre les mises à jour de vues et d'identifier les goulets d'étranglement de performance. L'instrument Power Profiler aide à optimiser l'autonomie en enregistrant les métriques d'énergie et en visualisant la consommation du système ainsi que l'impact de l'app sur les différents composants de l'appareil. L'Organizer d'Xcode a été mis à jour avec des Trending Insights étendus, mettant en évidence les problèmes de performance croissants comme les blocages ou les écritures disque entre les versions de l'app. Les métriques incluent désormais des Recommandations, comparant les performances de l'app à celles d'apps similaires et à l'historique, pour fournir des cibles claires d'amélioration, comme l'optimisation du temps de lancement.

    • 27:50 - Builds
    • Xcode 26 améliore l'efficacité de compilation en activant par défaut les modules explicitement construits, ce qui renforce la fiabilité et accélère le débogage. Swift Build, le moteur de build open source, est intégré à Swift Package Manager pour un support multiplateforme et des contributions communautaires. Xcode introduit également des capacités de sécurité renforcée pour les apps, similaires à celles utilisées dans les apps Apple, afin de mieux les protéger contre les attaques.

    • 30:15 - Test
    • Les capacités de test UI de Xcode sont également grandement améliorées. Le nouveau système de génération de code améliore l'enregistrement automatique des interactions UI, permettant de créer des tests plus efficacement. Grâce à cette fonction d'enregistrement, vous pouvez interagir avec l'app dans le simulateur, et Xcode génère automatiquement un code de test concis pour chaque action. Cette capacité simplifie la création de tests, facilitant la mise en place de tests UI complets. L'Automation Explorer dans les rapports de test facilite encore le débogage en fournissant des enregistrements vidéo et des outils d'inspection d'éléments. Xcode prend désormais en charge la mesure de la réactivité UI, la détection de saccades et les vérifications d'API à l'exécution, garantissant que le code respecte les bonnes pratiques et reste fluide et stable.

    • 36:10 - Conclusion
    • Xcode 26 améliore l'efficacité du codage, la création de fonctionnalités et le support linguistique. Il facilite le débogage, l'analyse de performance et les tests UI. Vous pouvez télécharger Xcode 26 et utiliser Xcode Cloud pour les tests et la distribution.

Developer Footer

  • Vidéos
  • WWDC25
  • Nouveautés dans 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