Xcode 16 : Swift Assist, Swift 6, prédiction de code et plus encore
- Medhi Naitmazi
- Il y a 5 mois
- 💬 1 com
- 🔈 Écouter
Xcode 16 accompagne la première bêta d'iOS 18 et consorts, ce qui n'a rien d'exceptionnel. Si l'outil préféré des développeurs Apple apporte une mise à jour du langage de programmation, Swift 6, il inaugure surtout l'intelligence artificielle dans l'éditeur. Ou plutôt Apple Intelligence. La vision d'Apple pour l'IA a beau être différente dans les termes, pour les développeurs, il s'agit essentiellement d'un assistant intelligent et d'une prédiction du code.
Découvrez Xcode 16
Comme annoncé par la rumeur, Apple s'est inspiré du projet GitHub Copilot, intégré dans les outils de Microsoft pour doter Xcode d'une boîte à outils pratique sous la bannière d'Apple Intelligence. Pour information, Google l'avait fait l'an passé avec Gemini dans Android Studio.
Xcode 16 bêta inclut les SDK pour iOS 18, iPadOS 18, tvOS 18, watchOS 11, macOS Sequoia 15 et visionOS 2. La version beta de Xcode 16 supporte le débogage sur l'appareil dans iOS 13 et plus, tvOS 13 et plus, watchOS 4 et plus, et visionOS. Xcode 16 bêta nécessite un Mac exécutant macOS Sonoma 14.5 ou une version ultérieure.
Si Craig Federighi a évoqué Xcode 16 lors du keynote, il fallait attendre le « State of the Union » d'Apple pour découvrir en détail la nouvelle version de l'outil qui tourne sur Mac.
Ken Orr, senior manager en charge de Xcode et Swift Playgrounds, a fait la démontrastation de la plateforme Apple Intelligence. Pour Xcode 16, Apple est parti de son propre grand modèle de langage (LLM), avant de le spécialiser dans des modules plus petits et plus spécialisés, histoire de les avoir toujours en local, un gage de confidentialité et de célérité.
Pour installer Xcode 16, sachez qu'il faut au minimum macOS 14.5 Sonoma.
La prédiction de code
Les "petits" LLM intègrent les API (dont les nouvelles pour iOS 18), le langage Swift, la documentation, et les exemples de code que l'on trouve sur le site officiel. C'est avec cela que l'autocomplétion devient plus puissante que jamais, en prédisant même la prochaine ligne en fonction du contexte de votre projet. Selon Ken, la fonctionnalité peut même coder des blocs entiers. Par contre, elle est réservée aux Mac M1 et supérieurs, avec au moins 16 Go de RAM. En dessous, les performances auraient été trop mauvaises. On les croit volontiers, Xcode étant déjà gourmand.
Apple met trois éléments en avant pour l'autocomplétion nouvelle génération :
- Le nouveau modèle de codage est spécialement formé pour Swift et les SDK d'Apple.
- Le modèle s'exécute localement sur votre Mac, préserve la confidentialité de votre code, et fonctionne même lorsque vous êtes hors ligne.
- Xcode télécharge et met à jour automatiquement le modèle avec les dernières modifications du SDK et du langage.
Swift Assist
Si vous faites partie des débutants, Apple a aussi pensé à vous, avec Swift Assist. Ce "Copilot" connait également parfaitement l'environnement et le SDK, et fonctionne à la manière de ChatGPT. Vous écrirez ce que vous voulez faire, et il se charge de coder pour vous. En revanche, la puissance de calculs requise étant plus grande, Xcode 16 va alors interroger le Private Cloud Compute, que l'on a vu dans les "nouveautés sécurité" d'Apple.
Swift Assist permet de se passer d'un développeur pour créer des prototypes rapides, à partir d'idées plus ou moins simples. L'essentiel, comme avec toute IA générative, est d'être précis dans sa demande. Vous ne pourrez créer le prochain Uber ou Amazon en deux minutes, mais vous pourrez avoir quelque chose de concret pour illustrer votre prochaine présentation. Pratique pour les levées de fond par exemple. Contrairement à OpenAI ou Google, Apple promet d'office qu’elle n’utilisera pas le code généré. Même le code envoyé sur le Private Cloud est effacé après chaque requête.
Swift 6
Apple a présenté un nouveau mode de langage qui garantit par défaut la sécurité de la course aux données, ainsi qu'un sous-ensemble de langage qui permet d'exécuter Swift sur des systèmes à fortes contraintes. Dans sa vidéo dédiée à Swift 6, Apple explore également certaines mises à jour du langage, notamment les types non copiables, les throws typés et l'amélioration de l'interopérabilité avec le C++.
Voici les principales nouveautés du langage Swift 6 :
- Contrôle individuel du langage Swift par cible : Permet de régler les paramètres du langage Swift pour chaque cible de projet individuellement, facilitant la transition vers Swift 6. Enfin !
- Concurrence complète par défaut : Swift 6 active la vérification complète de la concurrence par défaut, simplifiant l'adoption et réduisant les faux positifs liés aux conditions de concurrence.
- API et structures logicielles pour des apps volumétriques : De nouvelles API comme TabletopKit permettent de créer des expériences partagées et immersives, notamment pour les jeux et les applications professionnelles.
- Typed throws : Swift 6 introduit la possibilité de spécifier les types d'erreurs qu'une fonction peut lancer, améliorant la gestion des erreurs.
- Pack iteration : Ajoute la capacité de boucler sur des packs de paramètres, simplifiant les comparaisons de tuples et d'autres opérations complexes.
- Opérations sur des éléments non contigus : De nouvelles méthodes pour manipuler les collections avec des éléments non contigus grâce à RangeSet.
- Modificateurs de niveau d'accès sur les déclarations d'importation : Permet de marquer les importations avec des modificateurs de contrôle d'accès pour mieux gérer les dépendances internes.
- Types non copiables améliorés : Extensions pour les types non copiables, permettant une meilleure gestion de l'emprunt et de la consommation partielle.
- Types d'entiers 128 bits : Introduction de Int128 et UInt128 pour les calculs nécessitant de grands nombres.
- BitwiseCopyable : Un nouveau protocole permettant des optimisations de copie au niveau des bits pour les types conformes.
SwiftUI
Du côté de SwiftUI, il y a aussi du neuf, avec notamment de nouveaux contrôles liées à iOS 18 et iPadOS 18. Par exemple, le menu dynamique vu sur l'iPad lors de la conférence est un nouveau style (sidebar) de l'objet TabView. Il y a aussi un ControlWidgetButton pour ceux qui veulent créer un composant à mettre dans le nouveau centre de contrôle, des TableColumn dynamique selon les données passées en paramètre, de nouvelles transitions, etc.
Il y a des tonnes de changements à découvrir dans la vidéo officielle d'Apple pour SwiftUI :
Swift Testing
Le nouveau framework Swift Testing offre aux développeurs des API expressives qui facilitent l'écriture de tests. Il est multiplateforme et facile à apprendre, de sorte que les développeurs peuvent l'utiliser pour écrire des tests pour une variété de plates-formes et de domaines. Le framework comprend également un système d'étiquetage flexible pour aider les développeurs à organiser leurs tests et leurs plans de test, dixit Apple.
Les autres nouveautés Xcode 16
Xcode 16 ne se limite pas à ces deux nouveautés, il y a aussi tout le langage Swift 6 avec par exemple des previews simplifiées (@Previewable, PreviewModifier), la prise en charge du format de débogage DWARF 5, l’amélioration de la localisation, un débogueur plus rapide avec les modules explicites, un diagnostic de lancement, un débogueur de vues RealityKit ou encore des mises à jour plus légères pour Xcode.
La première bêta est sortie hier soir, la version finale arrivera en même temps qu'iOS 18 en septembre prochain. Pour patienter, consultez les grandes nouveautés d'iOS 18.
Télécharger l'app gratuite Xcode