<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Swift</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur le nouveau langage de programmation Swift d'Apple]]></description>
		<language>fr</language>
		<lastBuildDate>Tue, 21 Jul 2026 12:40:14 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Swift</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title><![CDATA[Apple rachète Play, une appli de prototypage SwiftUI qui permet de créer des concepts d'applis interactives]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184472&amp;goto=newpost</link>
			<pubDate>Thu, 02 Jul 2026 10:19:51 GMT</pubDate>
			<description>*Apple acquiert Play, une...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Apple acquiert Play, une application de prototypage SwiftUI qui a remporté le prix Apple Design Award 2025 pour la catégorie « Innovation » et qui est utilisée par les développeurs pour créer des concepts d'applications interactives</font></b><br />
<br />
<b>Apple a racheté Play, une application de prototypage SwiftUI développée par Rabbit 3 Times, Inc., dans le cadre d'une opération d'acquisition divulguée conformément à la loi européenne sur les marchés numériques (DMA). Cet outil, lauréat du prix Apple Design Award dans la catégorie « Innovation » en 2025, permet aux développeurs de créer des maquettes de projets Swift et d'obtenir rapidement un aperçu de leur apparence et de leur comportement en situation d'utilisation. Il permet également de synchroniser les prototypes interactifs en temps réel entre Mac et iPhone, ainsi que d'exporter les projets vers Xcode. À la suite de cette acquisition, Play a été retirée de l’App Store et Apple pourrait intégrer progressivement les fonctionnalités de Play dans ses ressources gratuites destinées aux développeurs.</b><br />
<br />
Swift est un langage de programmation de haut niveau, polyvalent, multiparadigme et compilé, créé par Chris Lattner en 2010 pour Apple Inc. et maintenu par la communauté open source. Swift se compile en code machine et utilise un compilateur basé sur LLVM. Swift a été lancé pour la première fois en juin 2014 et la chaîne d'outils Swift est intégrée à Xcode depuis la version 6 de ce dernier, sortie en septembre 2014. Il s'agissait initialement d'un langage propriétaire, mais la version 2.2 a été rendue open source sous licence Apache 2.0 le 3 décembre 2015, pour les plateformes Apple et Linux.<br />
<br />
Apple a racheté Play, une application de prototypage SwiftUI utilisée par les développeurs et les concepteurs pour créer et prévisualiser des concepts d'applications interactives, ainsi que pour générer du code SwiftUI en temps réel. La marque à la pomme a également acquis divers actifs de Rabbit 3 Times, la société new-yorkaise à l'origine de Play, et s'est assurée le droit de recruter certains de ses employés. Ce rachat fait suite à l'obtention par Play du prix Apple Design Award dans la catégorie « Innovation » en 2025.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/oDz8hxWaIuE?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
<b><font size="3">Quelles sont les fonctionnalités de Play</font></b><br />
<br />
Play fonctionne comme une combinaison de Shortcuts et d’Xcode. Cet outil gratuit permet aux développeurs de créer rapidement des maquettes de projets Swift et d’avoir immédiatement un aperçu de leur apparence et de leur comportement en situation d’utilisation. Les concepteurs peuvent créer des prototypes interactifs et les synchroniser en temps réel entre un Mac et un iPhone, puis exporter ces projets vers Xcode. Ce service d’exportation vers Xcode était auparavant une fonctionnalité payante, mais Apple l’a rendu gratuit après la finalisation de l’acquisition.<br />
<br />
En 2025, Apple a décerné à Play un Apple Design Award dans la catégorie « Innovation ». Lors de l'annonce de cette distinction, Apple a souligné que « l'interface utilisateur soigneusement conçue » de l'application aidait les designers à « créer des prototypes interactifs et à collaborer entre Mac et iPhone, le tout synchronisé en temps réel pour une créativité fluide » .<br />
<br />
<b><font size="3">Comment l’opération a été révélée</font></b><br />
<br />
L'acquisition de Play par Apple a été rendue publique conformément aux obligations d'information prévues par le règlement européen sur les marchés numériques (Digital Markets Act). En vertu de la DMA, les grandes entreprises technologiques sont tenues de signaler les acquisitions qui atteignent certains seuils. La Commission européenne (CE) publie ensuite ces rapports, au plus tôt quatre mois après leur dépôt.<br />
<br />
L'opération a été révélée la semaine de fin juin 2026, lorsque la CE a publié le dossier correspondant sur sa page consacrée aux acquisitions, à l'issue de la période d'attente suivant la notification adressée par Apple aux autorités de régulation en février 2026. La fiche descriptive présente Rabbit 3 Times comme proposant « des outils iOS et macOS pour la conception, le prototypage et la génération de code SwiftUI en temps réel » — une formulation qui correspond exactement à ce que Play offrait aux développeurs.<br />
<br />
Rabbit 3 Times, fondée en 2021 et officiellement enregistrée dans le Delaware, a annoncé qu'elle cesserait de prendre en charge ses applications Play pour iPhone et Mac à compter du 20 avril 2026. Le site web de la société, qui indiquait auparavant « Nous travaillons sur quelque chose de nouveau », n'est plus accessible et l'application Play a été retirée de l'App Store.<br />
<br />
<b><font size="3">Ce qu'Apple pourrait faire de Play</font></b><br />
<br />
Apple n'a fait aucune déclaration publique concernant cette acquisition ni ses intentions. L'accord porte sur certains actifs spécifiques de Rabbit 3 Times et donne à Apple le droit de recruter une partie du personnel de l'entreprise. Il s'agit d'une opération que le secteur appelle un « acqui-hire », où les talents comptent autant que la technologie.<br />
<br />
Les analystes s'attendent à ce qu'Apple intègre les fonctionnalités de Play dans Xcode ou les propose sous la forme d'une application autonome complémentaire à Xcode. Autre possibilité : Apple pourrait intégrer progressivement les fonctionnalités de Play dans ses ressources gratuites destinées aux développeurs. Quelle que soit la voie choisie, cela offrirait aux développeurs Apple un moyen plus rapide et plus visuel de créer des prototypes d'interfaces SwiftUI. C'est un domaine dans lequel l'équipe de Play excellait manifestement, puisque Apple lui-même lui avait décerné l'un de ses prix les plus prestigieux moins d'un an avant de l'acquérir.<br />
<br />
Cette acquisition fait suite à l'acquisition par Apple, en amont, du projet open source « Swift Package Index », ce qui laisse penser que l'entreprise souhaite renforcer son écosystème de développement Swift. Pour les développeurs Mac et iPhone, cette tendance laisse entrevoir un avenir où la création d'applications avec SwiftUI deviendra nettement plus facile.<br />
<br />
<b>Source :</b> <a rel="nofollow" href="https://digital-markets-act-cases.ec.europa.eu/acquisitions" target="_blank">Annonce de l'acquisition de Play par Apple</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Quel est votre avis sur le sujet ?<br />
:fleche: Trouvez-vous cette initiative d'Apple crédible ou pertinente ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/381546/Apple-publie-Swift-6-3-la-derniere-version-de-son-langage-de-programmation-open-source-avec-le-premier-SDK-Android-officiel-une-interoperabilite-amelioree-avec-le-langage-C-et-bien-plus-encore/" target="_blank">Apple publie Swift 6.3, la dernière version de son langage de programmation open source, avec le premier SDK Android officiel, une interopérabilité améliorée avec le langage C et bien plus encore</a><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/349816/L-utilisation-par-Apple-de-Swift-et-de-SwiftUI-dans-iOS-17-1-516-binaires-utilisent-Swift-selon-une-analyse-d-Alexandre-Colucci/" target="_blank">L'utilisation par Apple de Swift et de SwiftUI dans iOS 17 : 1 516 binaires utilisent Swift, selon une analyse d'Alexandre Colucci</a><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/264036/Apple-annonce-SwiftUI-un-framework-d-interface-utilisateur-declaratif-moderne-pour-les-plateformes-d-Apple/" target="_blank">Apple annonce SwiftUI, un framework d'interface utilisateur déclaratif moderne pour les plateformes d'Apple</a></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1980/systemes/apple/swift/">Swift</category>
			<dc:creator>Anthony</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184472/systemes/apple/swift/apple-rachete-play-appli-prototypage-swiftui-permet-creer-concepts-d-applis-interactives/</guid>
		</item>
		<item>
			<title>Apple publie Swift 6.3, la dernière version de son langage de programmation open source</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182874&amp;goto=newpost</link>
			<pubDate>Thu, 26 Mar 2026 09:23:48 GMT</pubDate>
			<description>*Apple publie Swift 6.3, la...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Apple publie Swift 6.3, la dernière version de son langage de programmation open source, avec le premier SDK Android officiel, une interopérabilité améliorée avec le langage C et bien plus encore</font></b><br />
<br />
<b>La version 6.3 de Swift vient d'être publiée, marquant une expansion significative du langage de programmation d'Apple vers de nouveaux domaines. Cette mise à jour apporte le premier SDK Android officiel, permettant aux développeurs de créer des applications Android natives en Swift et d'intégrer du code Swift dans des projets Kotlin ou Java. Elle renforce également l'interopérabilité avec le langage C et améliore les outils multiplateformes, la prise en charge des environnements embarqués et l'optimisation de la compilation.</b><br />
<br />
Swift est un langage de programmation compilé de haut niveau, polyvalent et multi-paradigme, créé par Chris Lattner en 2010 pour Apple Inc. et maintenu par la communauté open source. Swift se compile en code machine et utilise un compilateur basé sur LLVM. Swift a été lancé pour la première fois en juin 2014 et la chaîne d'outils Swift est intégrée à Xcode depuis la version 6 de ce dernier, sortie en septembre 2014.<br />
<br />
La version 6.3 de Swift vient d'être publiée, apportant le premier SDK officiel Swift pour Android. Cela permet aux développeurs de créer des applications Android natives en Swift, d'adapter des paquets Swift pour Android et d'intégrer du code Swift dans des projets Kotlin ou Java. Cette version étend également la portée de Swift dans les environnements embarqués et les systèmes à grande échelle grâce à une prise en charge plus large des plateformes et à des améliorations au niveau de la compilation.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p675235d1774516974/systemes/apple/swift/apple-publie-swift-6-3-derniere-version-langage-programmation-open-source/swift-6.3-programmation.png/" border="0" alt="Nom : swift 6.3 programmation.png
Affichages : 8267
Taille : 240,8 Ko"  style="float: CONFIG" /></div><br />
L'une des principales nouveautés du langage est le nouvel attribut <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@c</span>, qui permet d'exposer des fonctions et des énumérations Swift au code C au sein d'un même projet. Les développeurs peuvent attribuer des noms de symboles C personnalisés et, en combinaison avec <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@implementation</span>, relier des fonctions Swift à des déclarations C existantes afin d'améliorer l'interopérabilité dans les bases de code multi-langages. Swift 6.3 introduit également les sélecteurs de modules, ce qui facilite la résolution des conflits de nommage lorsque plusieurs modules importés exposent des API portant le même nom.<br />
<br />
En matière d'outils, Swift 6.3 propose un aperçu de l'intégration de Swift Build dans Swift Package Manager, pour une expérience de compilation multiplateforme plus homogène. Il ajoute également de nouveaux contrôles d'optimisation tels que <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@specialize</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@inline<span class="br0">&#40;</span>always<span class="br0">&#41;</span></span>, ainsi que des améliorations concernant la prise en charge des bibliothèques de macros, la documentation des paquets et les tests. DocC prend désormais en charge la sortie au format Markdown et propose de nouvelles améliorations axées sur l'accessibilité pour la documentation.<br />
<br />
<b><font size="3">Langage et bibliothèque standard</font></b><br />
<br />
<b><font size="2">Interopérabilité avec le langage C</font></b><br />
<br />
Swift 6.3 introduit l'attribut <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@c</span>, qui permet d'exposer des fonctions et des énumérations Swift au code C au sein d'un même projet. En annotant une fonction ou une énumération avec @c, les développeurs peuvent demandez à Swift d'inclure une déclaration correspondante dans l'en-tête C généré, qu'ils pourront ensuite inclure dans leurs fichiers C/C++ :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0">@c
<span style="color: #0000ff;">func</span> callFromC<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">// Generated C header</span>
&nbsp;
<span style="color: #0000ff;">void</span> callFromC<span style="color: black;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: black;">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Les développeurs peuvent définir un nom personnalisé à utiliser pour la déclaration C générée :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0">@c<span class="br0">&#40;</span>MyLibrary_callFromC<span class="br0">&#41;</span>
<span style="color: #0000ff;">func</span> callFromC<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">// Generated C header</span>
&nbsp;
<span style="color: #0000ff;">void</span> MyLibrary_callFromC<span style="color: black;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: black;">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
<span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@c</span> fonctionne également en association avec <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@implementation</span>. Cela permet aux développeurs de fournir une implémentation Swift pour une fonction déclarée dans un en-tête C :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">// C header</span>
&nbsp;
<span style="color: #0000ff;">void</span> callFromC<span style="color: black;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: black;">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">// Implementation written in Swift</span>
&nbsp;
@c @implementation
<span style="color: #0000ff;">func</span> callFromC<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Lorsque l'on utilise <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@c</span> avec <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@implementation</span>, Swift vérifie que la fonction Swift correspond à une déclaration préexistante dans un en-tête C, plutôt que d'inclure une déclaration C dans l'en-tête généré.<br />
<br />
<b><font size="2">Sélecteurs de modules</font></b><br />
<br />
Swift 6.3 introduit les sélecteurs de modules afin de préciser dans quel module importé Swift doit rechercher une API utilisée dans le code. Si un développeur importe plusieurs modules fournissant une API portant le même nom, les sélecteurs de modules permettent de déterminer clairement quelle API utiliser :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">import</span> ModuleA
<span style="color: #0000ff;">import</span> ModuleB
&nbsp;
<span style="color: #0000ff;">let</span> x = ModuleA::getValue<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #808080;">// Call 'getValue' from ModuleA</span>
<span style="color: #0000ff;">let</span> y = ModuleB::getValue<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #808080;">// Call 'getValue' from ModuleB</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Swift 6.3 permet également d'utiliser le nom de module Swift pour accéder aux API des bibliothèques de concurrence et de traitement des chaînes de caractères :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">let</span> task = Swift::Task <span class="br0">&#123;</span>
  <span style="color: #808080;">// async work</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<b><font size="2">Contrôle des performances pour les API de bibliothèques</font></b><br />
<br />
Swift 6.3 introduit de nouveaux attributs qui permettent aux auteurs de bibliothèques de contrôler plus finement les optimisations du compilateur pour les clients de leurs API :<br />
<br />
<ul><li style=""> Spécialisation des fonctions : fournit des implémentations pré-spécialisées d'une API générique pour des types concrets courants à l'aide de <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@specialize</span>.</li><li style=""> Inlining : garantit l'inlining — une optimisation du compilateur qui développe le corps d'une fonction au point d'appel — pour les appels directs à une fonction avec <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@inline<span class="br0">&#40;</span>always<span class="br0">&#41;</span></span>. Cet attribut ne doit être utilisé que si les avantages de l'inlining l'emportent sur l'augmentation éventuelle de la taille du code.</li><li style=""> Visibilité de l'implémentation d'une fonction : exposition de l'implémentation d'une fonction dans une bibliothèque ABI-stable aux clients à l'aide de <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">@export<span class="br0">&#40;</span>implementation<span class="br0">&#41;</span></span>. Cela permet à la fonction de bénéficier d'un plus grand nombre d'optimisations du compilateur.</li></ul><br />
<b><font size="3">Améliorations apportées aux paquets et à la compilation</font></b><br />
<br />
Swift 6.3 inclut une version préliminaire de Swift Build intégrée à Swift Package Manager. Cette version préliminaire offre un moteur de compilation unifié sur toutes les plateformes prises en charge, pour une expérience de développement multiplateforme plus cohérente. <br />
<br />
Swift 6.3 apporte également les améliorations suivantes au gestionnaire de paquets Swift :<br />
<br />
<ul><li style=""> Syntaxe Swift précompilée pour les bibliothèques de macros partagées : extraire le code d'implémentation des macros partagées dans une bibliothèque prenant en charge les binaires précompilés Swift Syntax dans les bibliothèques utilisées exclusivement par des macros.</li><li style=""> Documentation héritée flexible : contrôler si la documentation héritée est incluse dans les plugins de commande qui génèrent des graphiques de symboles.</li><li style=""> Caractéristiques détectables des paquets : identifier les caractéristiques prises en charge par un paquet à l'aide de la nouvelle commande <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">swift package show-traits</span>.</li></ul><br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p675236d1774516988/systemes/apple/swift/apple-publie-swift-6-3-derniere-version-langage-programmation-open-source/swift-6.3-programmation-1.png/" border="0" alt="Nom : swift 6.3 programmation 1.png
Affichages : 663
Taille : 205,9 Ko"  style="float: CONFIG" /></div><br />
<b><font size="3">Mises à jour de la bibliothèque principale</font></b><br />
<br />
<b><font size="2">Swift Testing</font></b><br />
<br />
Swift Testing bénéficie de plusieurs améliorations, notamment en matière d'avertissements, d'annulation des tests et de pièces jointes sous forme d'images.<br />
<br />
<ul><li style=""> Problèmes de type « avertissement » : indiquer le niveau de gravité d'un problème de test à l'aide du nouveau paramètre <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">severity</span> de <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Issue.record</span>. Les développeurs peuvent enregistrer un problème en tant qu'avertissement à l'aide de <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Issue.record<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Un &eacute;v&eacute;nement suspect s'est produit&quot;</span>, severity: .warning<span class="br0">&#41;</span></span>. Cela apparaît dans les résultats du test, mais ne marque pas le test comme un échec.</li><li style=""> Annulation d'un test : annuler un test (et sa hiérarchie de tâches) après son lancement à l'aide de <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block"><span style="color: #0000ff;">try</span> Test.cancel<span class="br0">&#40;</span><span class="br0">&#41;</span></span>. Cette fonctionnalité est utile pour ignorer des arguments individuels d'un test paramétré ou pour réagir à des conditions survenant pendant un test qui indiquent qu'il ne doit pas se poursuivre.</li><li style=""> Pièces jointes d'images : joindre des images de formats courants pendant un test sur les plateformes Apple et Windows. Cette fonctionnalité est accessible via plusieurs nouveaux modules de superposition à importation croisée avec des frameworks d'interface utilisateur tels que UIKit.</li></ul><br />
<b><font size="2">DocC</font></b><br />
<br />
Swift 6.3 ajoute trois nouvelles fonctionnalités expérimentales à DocC :<br />
<br />
<ul><li style=""> Sortie Markdown : générer des versions Markdown des pages de documentation en plus du JSON standard, pour les symboles, les articles et les tutoriels. Cette fonctionnalité peut être testée en passant l'option <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">--enable-experimental-markdown-output</span> à la commande <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">docc convert</span>.</li><li style=""> Contenu HTML statique par page : intégrer un résumé HTML léger de chaque page — comprenant le titre, la description, la disponibilité, les déclarations et la discussion — directement dans le fichier index.html, à l'intérieur d'une balise <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">&lt;noscript&gt;</span>. Cela améliore la visibilité auprès des moteurs de recherche et l'accessibilité pour les lecteurs d'écran, sans nécessiter de JavaScript. Cette fonctionnalité peut être testée en passant les options <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">--transform-<span style="color: #0000ff;">for</span>-<span style="color: #0000ff;">static</span>-hosting</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">--experimental-transform-<span style="color: #0000ff;">for</span>-<span style="color: #0000ff;">static</span>-hosting-with-content</span> à la commande <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">docc convert</span>.</li><li style=""> Annotations des blocs de code : de nouvelles options de mise en forme pour les blocs de code sont disponibles, notamment <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">nocopy</span> pour désactiver la copie dans le presse-papiers, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">highlight</span> pour mettre en surbrillance des lignes spécifiques par leur numéro, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">showLineNumbers</span> pour afficher les numéros de ligne, et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">wrap</span> pour renvoyer à la ligne les lignes trop longues en fonction de la largeur de colonne. Ces options peuvent être spécifiées sous forme de liste séparée par des virgules après le nom du langage, sur la ligne d'ouverture des accolades :</li></ul><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">```swift, nocopy
<span style="color: #0000ff;">let</span> config = loadDefaultConfig<span class="br0">&#40;</span><span class="br0">&#41;</span>
```</pre></td></tr></table></code><hr />
</div><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0"> ```swift, highlight=<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">3</span><span class="br0">&#93;</span>
<span style="color: #0000ff;">let</span> name = <span style="color: #FF0000;">&quot;World&quot;</span>       <span style="color: #808080;">// highlighted</span>
<span style="color: #0000ff;">let</span> greeting = <span style="color: #FF0000;">&quot;Hello&quot;</span>
<span style="color: #0080ff;">print</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #800000;">\(greeting)</span>, <span style="color: #800000;">\(name)</span>!&quot;</span><span class="br0">&#41;</span>  <span style="color: #808080;">// highlighted</span>
```</pre></td></tr></table></code><hr />
</div><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">```swift, showLineNumbers, wrap=<span style="color: #cc66cc;">80</span>
<span style="color: #0000ff;">func</span> example<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span style="color: #808080;">/* ... */</span> <span class="br0">&#125;</span>
```</pre></td></tr></table></code><hr />
</div><br />
<br />
DocC valide les indices de ligne et signale les options non reconnues. Les nouvelles annotations de blocs de code peuvent être testées avec l'option <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">--enable-experimental-code-block-annotations</span>.<br />
<br />
<b><font size="3">Plateformes et environnements</font></b><br />
<br />
<b><font size="2">Swift embarqué</font></b><br />
<br />
Swift Embedded bénéficie de nombreuses améliorations dans Swift 6.3, allant d'une interopérabilité renforcée avec le langage C et d'une meilleure prise en charge du débogage à des avancées significatives vers un modèle de liaison complet.<br />
<br />
<b><font size="2">Android</font></b><br />
<br />
Swift 6.3 inclut la première version officielle du SDK Swift pour Android. Grâce à ce SDK, les développeurs peuvent commencer à créer des applications Android natives en Swift, mettre à jour leurs paquets Swift pour prendre en charge la compilation pour Android, et utiliser Swift Java et Swift Java JNI Core pour intégrer du code Swift dans des applications Android existantes écrites en Kotlin/Java. Il s'agit d'une étape importante qui ouvre de nouvelles perspectives pour le développement multiplateforme en Swift.<br />
<br />
« Swift est conçu pour être le langage de prédilection à tous les niveaux de la pile logicielle. Que vous développiez du micrologiciel embarqué, des services à l'échelle d'Internet ou des applications mobiles complètes, Swift offre des garanties de sécurité solides, un contrôle des performances lorsque vous en avez besoin, ainsi que des fonctionnalités de langage et des API riches en expressivité. Swift 6.3 rend ces avantages plus accessibles sur l'ensemble de la pile », a déclaré l'équipe Swift.<br />
<br />
<b>Source :</b> <a rel="nofollow" href="https://www.swift.org/blog/swift-6.3-released/" target="_blank">Swift 6.3</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Quel est votre avis sur le sujet ?<br />
:fleche: Que pensez-vous des nouveautés proposées par cette version de Swift ? Les trouvez-vous utiles et intéressantes ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/375905/Apple-publie-Swift-6-2-la-derniere-version-de-son-langage-de-programmation-open-source-avec-une-concurrence-simplifiee-une-securite-amelioree-la-prise-en-charge-de-WebAssembly-et-bien-plus-encore/" target="_blank">Apple publie Swift 6.2, la dernière version de son langage de programmation open source, avec une concurrence simplifiée, une sécurité améliorée, la prise en charge de WebAssembly et bien plus encore</a><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/362800/Swift-6-la-nouvelle-version-majeure-du-langage-de-programmation-Swift-est-disponible-avec-une-nouvelle-bibliotheque-Swift-Testing-et-une-prise-en-charge-etendue-de-Linux-et-de-Windows/" target="_blank">Swift 6, la nouvelle version majeure du langage de programmation Swift, est disponible, avec une nouvelle bibliothèque Swift Testing et une prise en charge étendue de Linux et de Windows</a><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/293633/En-route-vers-Swift-6-l-equipe-en-charge-du-developpement-de-Swift-devoile-la-nouvelle-feuille-de-route-du-projet/" target="_blank">En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675235d1774516974/systemes/apple/swift/apple-publie-swift-6-3-derniere-version-langage-programmation-open-source/swift-6.3-programmation.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p675236d1774516988/systemes/apple/swift/apple-publie-swift-6-3-derniere-version-langage-programmation-open-source/swift-6.3-programmation-1.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1980/systemes/apple/swift/">Swift</category>
			<dc:creator>Anthony</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182874/systemes/apple/swift/apple-publie-swift-6-3-derniere-version-langage-programmation-open-source/</guid>
		</item>
		<item>
			<title>Apple publie Swift 6.2, avec une concurrence simplifiée, une sécurité améliorée et le support de WebAssembly</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179314&amp;goto=newpost</link>
			<pubDate>Wed, 17 Sep 2025 10:44:27 GMT</pubDate>
			<description>*Apple publie Swift 6.2, la...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Apple publie Swift 6.2, la dernière version de son langage de programmation open source, avec une concurrence simplifiée, une sécurité améliorée, la prise en charge de WebAssembly et bien plus encore</font></b><br />
<br />
<b>Apple a officiellement lancé Swift 6.2, la prochaine étape majeure dans l'évolution de son puissant langage de programmation. Cette version introduit de nouvelles fonctionnalités, améliore la gestion de la concurrence, renforce l'interopérabilité entre les langages et optimise les performances à grande échelle. Cette mise à jour apporte également des changements significatifs qui auront une incidence sur la manière dont les développeurs structureront et écriront leur code à l'avenir, qu'ils créent des applications dans l'écosystème Apple ou qu'ils intègrent Swift dans des environnements côté serveur et multiplateformes.</b><br />
<br />
Swift est un langage de programmation compilé, polyvalent, multi-paradigme et de haut niveau, créé par Chris Lattner en 2010 pour Apple Inc. et maintenu par la communauté open source. Swift compile en code machine et utilise un compilateur basé sur LLVM. Le langage a été lancé pour la première fois en juin 2014 et la chaîne d'outils Swift est intégrée à Xcode depuis la version 6 de Xcode, sortie en septembre 2014.<br />
<br />
Swift 6.2 introduit des mises à jour axées sur la programmation concurrente, les performances et l'amélioration des outils de développement. Cette version rend la programmation concurrente plus accessible en utilisant par défaut un fonctionnement à thread unique et en proposant des fonctions asynchrones intuitives, ce qui permet aux développeurs d'écrire du code concurrent sécurisé avec moins de code standard. <br />
<br />
Parallèlement, Swift 6.2 optimise les performances sans sacrifier la sécurité, permettant ainsi un code de bas niveau avec une exécution prévisible et une surcharge minimale.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/7MGLTYxIlXs?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
Suite à ces améliorations du langage, l'extension officielle Swift pour Visual Studio Code a été vérifiée et est désormais distribuée par Swift.org. Afin d'aider les équipes à effectuer les mises à niveau, de nouveaux outils de migration permettent aux projets d'adopter les fonctionnalités du langage à venir. <br />
<br />
L'expérience des développeurs est encore améliorée grâce à des temps de compilation nettement plus rapides, en particulier pour les projets utilisant des API basées sur des macros. Les développeurs bénéficient d'un débogage amélioré du code concurrent dans LLDB et de nouvelles options pour gérer les avertissements du compilateur au niveau du groupe de diagnostic.<br />
<br />
S'appuyant sur les améliorations apportées à l'écosystème, les mises à jour de la bibliothèque Swift 6.2 comprennent un nouveau package Subprocess, des améliorations de la bibliothèque Foundation et de nouvelles API destinées à prendre en charge des modèles de codage plus sûrs. <br />
<br />
Enfin, Swift 6.2 ajoute également la prise en charge de WebAssembly, permettant aux applications Swift clientes et serveurs de cibler Wasm et de se déployer sur des navigateurs ou d'autres environnements compatibles.<br />
<br />
<b><font size="3">Concurrence accessible</font></b><br />
<br />
Swift 6.2 facilite la programmation concurrente grâce à une série de modifications visant à réduire les codes standard et à permettre d'écrire plus naturellement du code concurrent sécurisé :<br />
<br />
<ul><li style=""> <b>Monothread par défaut :</b> les développeurs peuvent exécuter leur code sur le thread principal sans annotations @MainActor explicites à l'aide de la nouvelle option permettant d'isoler le code vers l'acteur principal par défaut. Cette option est idéale pour les scripts, le code d'interface utilisateur et d'autres cibles exécutables.</li><li style=""> <b>Fonctions asynchrones intuitives :</b> écrire du code asynchrone sans accès simultané à un état modifiable. Auparavant, les méthodes asynchrones non isolées basculaient toujours vers l'exécuteur global qui gère le pool de threads simultanés, ce qui rendait difficile l'écriture de méthodes asynchrones pour les types de classes sans erreurs de sécurité liées aux conflits de données. Dans Swift 6.2, il est possible de migrer vers une fonctionnalité à venir où les fonctions asynchrones s'exécutent dans le contexte d'exécution de l'appelant, même lorsqu'elles sont appelées sur l'acteur principal.</li><li style=""> <b>Activer la concurrence avec @concurrent :</b> introduire du code qui s'exécute simultanément à l'aide du nouvel attribut @concurrent. Cela permet de préciser clairement quand on souhaite que le code reste sérialisé sur l'acteur et quand il peut s'exécuter en parallèle.</li></ul><br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">// In '-default-isolation MainActor' mode</span>
&nbsp;
<span style="color: #0000ff;">struct</span> Image <span class="br0">&#123;</span>
  <span style="color: #808080;">// The image cache is safe because it's protected</span>
  <span style="color: #808080;">// by the main actor.</span>
  <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">var</span> cachedImage: <span class="br0">&#91;</span>URL: Image<span class="br0">&#93;</span> = <span class="br0">&#91;</span>:<span class="br0">&#93;</span>
&nbsp;
  <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">func</span> create<span class="br0">&#40;</span>from url: URL<span class="br0">&#41;</span> async <span style="color: #0000ff;">throws</span> -&gt; Image <span class="br0">&#123;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #0000ff;">let</span> image = cachedImage<span class="br0">&#91;</span>url<span class="br0">&#93;</span> <span class="br0">&#123;</span>
      <span style="color: #0000ff;">return</span> image
    <span class="br0">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">let</span> image = <span style="color: #0000ff;">try</span> await fetchImage<span class="br0">&#40;</span>at: url<span class="br0">&#41;</span>
&nbsp;
    cachedImage<span class="br0">&#91;</span>url<span class="br0">&#93;</span> = image
    <span style="color: #0000ff;">return</span> image
  <span class="br0">&#125;</span>
&nbsp;
  <span style="color: #808080;">// Fetch the data from the given URL and decode it.</span>
  <span style="color: #808080;">// This is performed on the concurrent thread pool to</span>
  <span style="color: #808080;">// keep the main actor free while decoding large images.</span>
  @concurrent
  <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">func</span> fetchImage<span class="br0">&#40;</span>at url: URL<span class="br0">&#41;</span> async <span style="color: #0000ff;">throws</span> -&gt; Image <span class="br0">&#123;</span>
    <span style="color: #0000ff;">let</span> <span class="br0">&#40;</span>data, _<span class="br0">&#41;</span> = <span style="color: #0000ff;">try</span> await URLSession.shared.data<span class="br0">&#40;</span>from: url<span class="br0">&#41;</span>
    <span style="color: #0000ff;">return</span> await decode<span class="br0">&#40;</span>data: data<span class="br0">&#41;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Ensemble, ces améliorations permettent d'écrire du code sans conflit d'accès aux données avec moins de surcharge d'annotation, offrent un comportement plus prévisible pour le code asynchrone, tout en permettant d'introduire la concurrence lorsque cela est nécessaire.<br />
<br />
<b><font size="3">Programmation de systèmes sécurisés</font></b>  <br />
<br />
Swift 6.2 comprend des fonctionnalités conçues pour optimiser les performances sans compromettre la sécurité. Ces fonctionnalités aident à écrire du code sécurisé de bas niveau avec des performances prévisibles et une surcharge minimale.<br />
<br />
<span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">InlineArray</span> est un nouveau tableau de taille fixe avec stockage en ligne pour les éléments, qui peuvent être stockés dans la pile ou directement dans d'autres types sans allocation supplémentaire dans le tas. Le développeur peut introduire un tableau en ligne en écrivant la taille entre crochets avant l'élément, ou en utilisant la syntaxe abrégée :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">struct</span> Game <span class="br0">&#123;</span>
  <span style="color: #808080;">// Shorthand for InlineArray&lt;40, Sprite&gt;</span>
  <span style="color: #0000ff;">var</span> bricks: <span class="br0">&#91;</span><span style="color: #cc66cc;">40</span> of Sprite<span class="br0">&#93;</span>
&nbsp;
  <span style="color: #0000ff;">init</span><span class="br0">&#40;</span>_ brickSprite: Sprite<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    bricks = .<span style="color: #0000ff;">init</span><span class="br0">&#40;</span>repeating: brickSprite<span class="br0">&#41;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Le nouveau type <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Span</span> offre un accès direct et sécurisé à la mémoire contiguë. <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Span</span> garantit la sécurité de la mémoire en s'assurant que celle-ci reste valide pendant son utilisation. Ces garanties sont vérifiées lors de la compilation, sans surcoût d'exécution, et éliminent les problèmes de sécurité de la mémoire inhérents aux pointeurs, tels que les bogues de type « use-after-free ».<br />
<br />
Swift 6.2 améliore ses capacités pour les projets de bas niveau et critiques en matière de sécurité au-delà des nouvelles API :<br />
<br />
<ul><li style=""> <b>Swift embarqué :</b> Swift embarqué inclut désormais l'ensemble des API String de Swift, tous les types pour les protocoles contraints par classe, ainsi que les nouveaux types <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">InlineArray</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Span</span>.</li><li style=""> <b>Interopérabilité C++ sécurisée :</b> les projets qui combinent Swift et C++ peuvent tirer parti des abstractions sécurisées de Swift, telles que <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Span</span> pour les API C++, grâce à des annotations d'en-tête.</li><li style=""> <b>Sécurité mémoire stricte en option :</b> Swift assure la sécurité mémoire depuis sa création, tout en permettant l'utilisation de constructions non sécurisées telles que les pointeurs non sécurisés lorsque cela est nécessaire, par exemple lors de l'utilisation d'une API C qui accepte les pointeurs. Swift 6.2 introduit la sécurité mémoire stricte optionnelle, qui signale les utilisations de constructions non sécurisées afin que le développeur puisse les remplacer par des alternatives sécurisées ou les reconnaître explicitement dans le code source. Il s'agit d'une option facultative, car la majorité des projets n'ont pas besoin d'un tel niveau de sécurité. La sécurité mémoire stricte est réservée aux projets ayant les exigences de sécurité les plus élevées.</li></ul><br />
<b><font size="3">Workflows rationalisés</font></b> <br />
<br />
Au-delà des améliorations du langage, Swift 6.2 fluidifie le cycle quotidien d'itération consistant à éditer, compiler et déboguer le code.<br />
<br />
<b><font size="2">Extension Swift pour VS Code</font></b><br />
<br />
L'extension Swift pour VS Code est désormais officiellement vérifiée et distribuée par Swift.org. La dernière version de l'extension comprend :<br />
<br />
<ul><li style=""> Indexation en arrière-plan par défaut : écrire du code grâce à des fonctionnalités d'édition rapides et toujours à jour, telles que le saut vers la définition et la complétion de code.</li><li style=""> Débogage LLDB intégré : parcourir le code Swift, définir des points d'arrêt et inspecter l'état à l'aide de LLDB directement dans VS Code.</li><li style=""> Panneau de projet Swift : naviguer parmi les cibles, les dépendances et les tâches d'un projet Swift dans la vue Explorateur.</li><li style=""> Aperçu DocC en live : prévisualiser la documentation rendue côte à côte avec le code, la mise à jour se fait en live pendant la saisie.</li></ul><br />
Ces améliorations apportées au flux de travail facilitent le travail sur les projets Swift dans l'environnement de votre choix grâce à des outils de premier ordre.<br />
<br />
<b><font size="2">Contrôle précis des avertissements</font></b><br />
<br />
Swift 6.2 améliore la gestion des avertissements du compilateur en permettant un contrôle au niveau des groupes de diagnostics. Un groupe de diagnostics est une catégorie d'avertissements identifiée par un nom. Il est possible de spécifier le comportement souhaité des avertissements dans un groupe de diagnostics dans un manifeste de package Swift à l'aide de la méthode treatWarning sur SwiftSetting, ou de promouvoir tous les avertissements en erreurs à l'aide de la méthode treatAllWarnings. Par exemple, il est possible de promouvoir tous les avertissements en erreurs, à l'exception des avertissements concernant l'utilisation d'API obsolètes :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0">.target<span class="br0">&#40;</span>
  name: <span style="color: #FF0000;">&quot;MyLibrary&quot;</span>,
  swiftSettings: <span class="br0">&#91;</span>
    .treatAllWarnings<span class="br0">&#40;</span><span style="color: #0000ff;">as</span>: .error<span class="br0">&#41;</span>,
    .treatWarning<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;DeprecatedDeclaration&quot;</span>, <span style="color: #0000ff;">as</span>: .warning<span class="br0">&#41;</span>,
  <span class="br0">&#93;</span>
<span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<b><font size="2">Performances de compilation des macros</font></b><br />
<br />
Swift 6.2 améliore considérablement les temps de compilation des projets qui utilisent des API basées sur des macros. Auparavant, le système de compilation devait d'abord récupérer et compiler le paquet swift-syntax à partir du code source avant de compiler le projet macro, ce qui allongeait considérablement les temps de compilation, en particulier dans les environnements CI. SwiftPM prend désormais en charge les dépendances swift-syntax précompilées, éliminant ainsi complètement une étape de compilation coûteuse.<br />
<br />
<b><font size="2">Débogage asynchrone amélioré</font></b> <br />
<br />
Swift 6.2 facilite considérablement le suivi de ce qui se passe dans le code concurrent lors du débogage avec LLDB :  Exécution asynchrone robuste : exécution fiable des fonctions asynchrones dans LLDB, même lorsque l'appel asynchrone nécessite un changement de thread.<br />
<br />
<ul><li style=""> Exécution de la commande « step-in » dans les fonctions asynchrones : exécution fiable de la commande « step-in » dans les fonctions asynchrones, même lorsque l'appel asynchrone nécessite un changement de thread.</li><li style=""> Affichage du contexte de la tâche : visualiser la tâche sur laquelle s'exécute un morceau de code lorsqu'il est arrêté à un point d'arrêt et lors de l'affichage de la trace de retour pour le thread actuel.</li><li style=""> Tâches nommées : attribution de noms lisibles par l'utilisateur lors de la création de tâches, qui apparaissent dans le contexte de la tâche dans les outils de débogage et de profilage.</li></ul><br />
<b><font size="2">Migration vers les fonctionnalités à venir</font></b> <br />
<br />
Swift 6.2 comprend des outils de migration pour permettre l'adoption des fonctionnalités à venir du langage :<br />
<br />
<ul><li style=""> Identifier les incompatibilités de source : identifier les modèles de code qui ne compileront plus ou modifieront leur comportement lorsque la fonctionnalité à venir sera activée, grâce aux avertissements générés par les outils de migration.</li><li style=""> Automatiser les modifications de code : appliquer des correctifs pour mettre à jour le code afin de préserver son comportement existant.</li></ul><br />
Cela simplifie le processus d'activation des fonctionnalités à venir en éliminant la tâche fastidieuse des modifications manuelles du code. <br />
<br />
<b><font size="3">Mises à jour des bibliothèques principales</font></b><br />
<br />
Que vous gériez des processus externes, réagissiez à des changements d'état ou écriviez des suites de tests, les bibliothèques Swift 6.2 évoluent pour vous aider à écrire un code plus propre et plus sûr.<br />
<br />
<b><font size="2">Sous-processus</font></b><br />
<br />
Swift 6.2 introduit un nouveau package Subprocess qui offre une API simplifiée et adaptée à la concurrence pour lancer et gérer des processus externes. Cela inclut des API construites avec async/await, un contrôle précis de l'exécution des processus, une configuration spécifique à la plateforme, et plus encore — idéal pour les scripts, l'automatisation et les tâches côté serveur :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">import</span> Subprocess
&nbsp;
<span style="color: #0000ff;">let</span> swiftPath = FilePath<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;/usr/bin/swift&quot;</span><span class="br0">&#41;</span>
<span style="color: #0000ff;">let</span> result = <span style="color: #0000ff;">try</span> await run<span class="br0">&#40;</span>
  .path<span class="br0">&#40;</span>swiftPath<span class="br0">&#41;</span>,
  arguments: <span class="br0">&#91;</span><span style="color: #FF0000;">&quot;--version&quot;</span><span class="br0">&#93;</span>
<span class="br0">&#41;</span>
&nbsp;
<span style="color: #0000ff;">let</span> swiftVersion = result.standardOutput</pre></td></tr></table></code><hr />
</div><br />
<br />
<b><font size="2">Foundation</font></b><br />
<br />
Dans Swift 6.2, la bibliothèque Foundation comprend une API NotificationCenter moderne qui utilise des types de notification concrets au lieu de s'appuyer sur des chaînes de caractères et des dictionnaires non typés pour les noms et les charges utiles des notifications. Cela signifie que vous pouvez définir une structure de notification avec des propriétés stockées, et que les observateurs peuvent utiliser le type sans indexation et conversion dynamique sujettes à des erreurs. Les types de notification spécifient également s'ils sont publiés de manière synchrone sur l'acteur principal ou de manière asynchrone via une conformité à MainActorMessage ou AsyncMessage, ce qui élimine les erreurs de concurrence lors de l'utilisation des notifications de l'acteur principal.<br />
<br />
<b><font size="2">Observation</font></b><br />
<br />
Swift 6.2 permet la diffusion en continu des changements d'état transactionnels des types observables à l'aide du nouveau type de séquence asynchrone Observations. Les mises à jour incluent tous les changements synchrones apportés aux propriétés observables, et la transaction se termine au prochain await qui suspend. Cela évite les mises à jour redondantes de l'interface utilisateur, améliore les performances et garantit que votre code réagit à un instantané cohérent de la valeur.<br />
<br />
<b><font size="2">Tests Swift</font></b><br />
<br />
Les tests Swift dans Swift 6.2 ajoutent de nouvelles API pour améliorer l'expressivité des tests et de leurs résultats :<br />
<br />
<ul><li style=""> Les tests de sortie permettent de vérifier que le code se termine dans des conditions spécifiques, telles qu'une condition préalable non remplie. Les tests de sortie s'exécutent dans un nouveau processus et vérifient que le comportement de sortie correspond aux attentes du développeur, ce qui lui permet d'exercer des chemins d'échec critiques comme il le ferait dans n'importe quel autre test.</li><li style=""> Les pièces jointes permettent à un développeur d'inclure des informations supplémentaires dans les résultats des tests, notamment des chaînes de caractères, des images, des journaux et d'autres artefacts, qui apparaissent dans les rapports de test ou sont enregistrés sur le disque. Il est ainsi plus facile de diagnostiquer les défaillances à l'aide de preuves concrètes, qu'il s'agisse d'une capture d'écran de l'état de l'interface utilisateur, d'une charge utile JSON ou d'une trace des étapes ayant conduit au problème.</li><li style=""> Les noms d'affichage des identifiants bruts permettent de personnaliser les noms des fonctions de test et des types de suites avec moins de code :</li></ul><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">  -@Test<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;square() returns x * x&quot;</span><span class="br0">&#41;</span>
  -<span style="color: #0000ff;">func</span> squareIsXTimesX<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  +@Test <span style="color: #0000ff;">func</span> `square<span class="br0">&#40;</span><span class="br0">&#41;</span> returns x * x`<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
     #expect<span class="br0">&#40;</span>square<span class="br0">&#40;</span><span style="color: #cc66cc;">4</span><span class="br0">&#41;</span> == <span style="color: #cc66cc;">4</span> * <span style="color: #cc66cc;">4</span><span class="br0">&#41;</span>
   <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<b><font size="3">Prise en charge de WebAssembly</font></b><br />
<br />
Swift 6.2 prend désormais en charge WebAssembly, également connu sous le nom de Wasm. WebAssembly est une plateforme de machine virtuelle axée sur la portabilité, la sécurité et les performances élevées. Les développeurs peuvent désormais créer des applications client et serveur pour Wasm et les déployer sur le navigateur ou d'autres environnements d'exécution.<br />
<br />
<b>Source :</b> <a rel="nofollow" href="https://developer.apple.com/swift/whats-new/" target="_blank">Apple</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Que pensez-vous de cette version du langage de programmation Swift ?<br />
:fleche: Trouvez-vous les améliorations apportées par cette version cohérentes et pertinentes ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/362800/Swift-6-la-nouvelle-version-majeure-du-langage-de-programmation-Swift-est-disponible-avec-une-nouvelle-bibliotheque-Swift-Testing-et-une-prise-en-charge-etendue-de-Linux-et-de-Windows/" target="_blank">Swift 6, la nouvelle version majeure du langage de programmation Swift, est disponible, avec une nouvelle bibliothèque Swift Testing et une prise en charge étendue de Linux et de Windows</a><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/293633/En-route-vers-Swift-6-l-equipe-en-charge-du-developpement-de-Swift-devoile-la-nouvelle-feuille-de-route-du-projet/" target="_blank">En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet</a><br />
<br />
:fleche: <a href="https://swift.developpez.com/actu/352903/Apple-recrute-des-developpeurs-de-compilateurs-pour-ameliorer-l-interoperabilite-entre-Swift-et-Cplusplus/" target="_blank">Apple recrute des développeurs de compilateurs pour améliorer l'interopérabilité entre Swift et C++</a></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1980/systemes/apple/swift/">Swift</category>
			<dc:creator>Anthony</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179314/systemes/apple/swift/apple-publie-swift-6-2-concurrence-simplifiee-securite-amelioree-support-webassembly/</guid>
		</item>
	</channel>
</rss>
