<?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, 20 Oct 2026 10:50:24 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>Swift 6.4 apporte une meilleure interopérabilité, des performances accrues et l’intégration Swift Build</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2185707&amp;goto=newpost</link>
			<pubDate>Thu, 17 Sep 2026 04:03:55 GMT</pubDate>
			<description>*Apple publie Swift 6.4 : la...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Apple publie Swift 6.4 : la dernière version de son langage de programmation open source offre une meilleure interopérabilité, des performances accrues et l'intégration par défaut de Swift Build</font></b><br />
<br />
<b>Apple a officiellement lancé Swift 6.4, marquant ainsi une nouvelle avancée significative pour le langage de programmation open source d’Apple. Fournie avec Xcode 27, cette mise à jour privilégie la productivité des développeurs grâce à une série d’améliorations ergonomiques conçues pour fluidifier les workflows quotidiens. Parmi les principales améliorations figure une interopérabilité renforcée entre Swift Testing et XCTest, permettant aux développeurs de migrer progressivement sans avoir à réécrire l’intégralité de leurs suites de tests. Des gains de performances et l’extension des plateformes complètent ces annonces majeures. </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.<br />
<br />
Apple a conçu Swift pour prendre en charge de nombreux concepts fondamentaux associés à Objective-C, notamment la distribution dynamique, la liaison tardive généralisée, la programmation extensible et d’autres fonctionnalités similaires, mais d’une manière « plus sûre », facilitant ainsi la détection des bogues logiciels ; Swift dispose de fonctionnalités permettant de remédier à certaines erreurs de programmation courantes, comme la déréférence d’un pointeur nul, et fournit des simplifications syntaxiques pour aider à éviter la « pyramide de la mort ». Swift prend en charge le concept d’extensibilité des protocoles, un système d’extensibilité applicable aux types, aux structures et aux classes, qu’Apple présente comme un véritable changement de paradigme de programmation qu’elle qualifie de « programmation orientée protocole » (similaire aux traits et aux classes de types).<br />
<br />
Récemment, Apple a officiellement lancé Swift 6.4, marquant ainsi une nouvelle avancée significative pour le langage de programmation open source d’Apple. Fournie avec Xcode 27, cette mise à jour privilégie la productivité des développeurs grâce à une série d’améliorations ergonomiques conçues pour fluidifier les workflows quotidiens. Parmi les principales améliorations figure une interopérabilité renforcée entre Swift Testing et XCTest, permettant aux développeurs de migrer progressivement sans avoir à réécrire l’intégralité de leurs suites de tests. Cette nouvelle version introduit également la prise en charge de l’asynchrone au sein des instructions &quot;defer&quot;, garantissant ainsi que le code de nettoyage s’exécute de manière fiable, que la fonction se termine normalement ou qu’elle génère une erreur.<br />
<br />
Des gains de performances et l’extension des plateformes complètent ces annonces majeures. La bibliothèque Foundation bénéficie d’optimisations notables, l’analyse des URL s’exécutant, selon les informations disponibles, jusqu’à quatre fois plus rapidement qu’auparavant. Le SDK Swift pour Android évolue avec le nouveau NDK 30 LTS, qui rationalise les processus de compilation et supprime le besoin de scripts post-installation. Swift Embedded continue de mûrir grâce à la prise en charge généralisée des types existentiels et à l’amélioration des métadonnées de débogage, qui permettent de conserver des binaires compacts tout en préservant les diagnostics de plantage. Les versions de débogage sous Linux, Windows et Darwin voient également leur taille considérablement réduite, car les modules binaires Swift ne sont plus intégrés dans les artefacts de débogage.<br />
<br />
Cette version renforce encore les ambitions multiplateformes de Swift grâce à une nouvelle infrastructure de documentation : un site dédié à la documentation Swift a été lancé, parallèlement à la mise à disposition en open source du contenu de la documentation de la bibliothèque standard. L’interopérabilité avec le C s’étend dans les deux sens, permettant aux fonctions Swift d’être exposées aux bases de code C. Grâce à un contrôle affiné des avertissements via l’attribut @diagnose et à des vérifications simplifiées de la disponibilité du système d’exploitation à l’aide de la nouvelle syntaxe anyAppleOS, Swift 6.4 s’attaque aux points faibles récurrents auxquels les développeurs expérimentés sont régulièrement confrontés. Le langage vise désormais à couvrir l’ensemble de la pile de développement, des applications mobiles et des serveurs cloud aux systèmes embarqués et aux navigateurs web.<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/ssppiors2Ak?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
Voici l'annonce de Swift 6.4 :<br />
<br />
<b><font size="3">Présentation Swift 6.4</font></b><br />
<br />
Swift 6.4 est désormais disponible. Swift se veut un excellent choix à tous les niveaux de la pile, des applications et serveurs au code système, en passant par les appareils embarqués et le navigateur. Cette version renforce encore cette prise en charge et facilite l’écriture du code au quotidien. Voici les principales nouveautés :<br />
<br />
- <b>Swift Build est désormais la valeur par défaut dans Swift Package Manager</b>, ce qui permet de compiler vos projets de la même manière sous Linux, macOS et Windows.<br />
<br />
- <b>Subprocess atteint la version 1.0</b>, offrant un moyen stable et multiplateforme d’exécuter d’autres programmes et d’interagir avec eux depuis Swift, qu’il s’agisse d’outils en ligne de commande ou de processus de streaming.<br />
<br />
- <b>L’interopérabilité s’étend encore davantage</b> : le type Span de Swift établit désormais un pont direct avec std::span de C++20, tandis que l’interopérabilité Swift/Java étend sa prise en charge de l’asynchrone et des callbacks.<br />
<br />
- <b>Swift s’exécute plus rapidement dans le navigateur</b> : grâce à JavaScriptKit, l’interfaçage avec WebAssembly est jusqu’à 40 fois plus rapide, et le SDK Wasm est disponible directement sur Swift.org.<br />
<br />
- <b>Swift embarqué gagne en capacités</b>, avec la prise en charge des types existentiels et une gestion des erreurs plus complète pour les cibles de type microcontrôleur.<br />
<br />
- <b>Les performances s’améliorent tout en préservant la sécurité mémoire</b>, grâce à de nouveaux types de tableaux pouvant contenir des éléments non copiables sans la surcharge liée à la copie à l’écriture, et au nouveau protocole &quot;Iterable&quot; permettant d’itérer sans copies.<br />
<br />
<b>Un code plus simple et plus clair</b><br />
<br />
Swift 6.4 rationalise votre programmation au quotidien pour rendre votre code plus simple et plus clair.<br />
<br />
- Des types optionnels « some » et « any » plus naturels. Lorsque vous écrivez un type optionnel « some » ou « any », vous n’avez plus besoin d’encadrer le type entre parenthèses. Au lieu de <i>(some Rocket)?</i>, vous pouvez simplement écrire some <i>Rocket?</i>.<br />
<br />
- Contrôle au niveau du code source des avertissements du compilateur. Lorsque vous avez besoin de contrôler le comportement des avertissements dans votre projet, par exemple pour les supprimer ou les transformer en erreurs, vous pouvez désormais définir ce comportement directement dans votre code à l’aide du nouvel attribut <i>@diagnose</i>.<br />
<br />
- Préciser quelle API utiliser en cas de conflit entre plusieurs bibliothèques. Lorsque plusieurs modules définissent le même nom d’API que vous souhaitez référencer, vous pouvez spécifier le module que vous souhaitez utiliser à l’aide de sélecteurs de module. Si votre application importe deux modules fournissant tous deux un type <i>CommonThing</i>, l’utilisation du sélecteur :: vous permet de préciser clairement lequel des deux vous souhaitez utiliser.<br />
<br />
- Appel de fonctions asynchrones dans un bloc defer. Tout code asynchrone que vous écrivez dans un bloc defer est mis en attente et s’exécute jusqu’à son terme avant que le bloc ne se termine.<br />
<br />
- Assurez-vous que les opérations de nettoyage nécessaires ne soient pas annulées. Vous pouvez exécuter une fermeture protégée contre l’annulation de la tâche qui l’encadre grâce à l’API <i>withTaskCancellationShield</i>.<br />
<br />
Vous pouvez combiner des appels asynchrones dans des blocs `defer` et des protections contre l’annulation pour garantir que les opérations de nettoyage aient toujours lieu, quel que soit le mode de retour de la fonction :<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="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 /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">func</span> processFile<span class="br0">&#40;</span>at url: URL<span class="br0">&#41;</span> async <span style="color: #0000ff;">throws</span> <span class="br0">&#123;</span>
    <span style="color: #0000ff;">let</span> handle = <span style="color: #0000ff;">try</span> FileHandle<span class="br0">&#40;</span>forReadingFrom: url<span class="br0">&#41;</span>
&nbsp;
    <span style="color: #0000ff;">defer</span> <span class="br0">&#123;</span>
        <span style="color: #808080;">// flushMetrics is a network call, so it can suspend after cancellation</span>
        <span style="color: #808080;">// is requested; the shield ensures it runs to completion and isn't</span>
        <span style="color: #808080;">// included in cancellation.</span>
        await withTaskCancellationShield <span class="br0">&#123;</span>
            await flushMetrics<span class="br0">&#40;</span><span style="color: #0000ff;">for</span>: url<span class="br0">&#41;</span>
            <span style="color: #0000ff;">try</span>? handle.close<span class="br0">&#40;</span><span class="br0">&#41;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">try</span> await processContents<span class="br0">&#40;</span>of: handle<span class="br0">&#41;</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<b>Des API de la bibliothèque de base plus riches</b><br />
<br />
Les améliorations apportées à Foundation et à la bibliothèque standard facilitent l’utilisation des API modernes avec les types existants.<br />
<br />
Par exemple, ProgressManager a ajouté une API pour prendre en charge async/await, et les types @Observable disposent désormais de notifications de changement granulaires et continues.<br />
<br />
La bibliothèque Subprocess a atteint la version 1.0. Elle fournit un package multiplateforme permettant d’exécuter des sous-processus et d’interagir avec eux, entièrement conçu à partir de zéro en utilisant la concurrence Swift. L’exemple suivant, tiré du guide « Getting Started with Subprocess », illustre l’exécution d’un processus et la capture de sa sortie.<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 /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">let</span> result = <span style="color: #0000ff;">try</span> await Subprocess.run<span class="br0">&#40;</span>
  .name<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;ls&quot;</span><span class="br0">&#41;</span>,
  arguments: <span class="br0">&#91;</span><span style="color: #FF0000;">&quot;-la&quot;</span><span class="br0">&#93;</span>,
  output: .string<span class="br0">&#40;</span>limit: <span style="color: #cc66cc;">4096</span><span class="br0">&#41;</span>
<span class="br0">&#41;</span>
<span style="color: #0080ff;">print</span><span class="br0">&#40;</span>result.standardOutput<span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Swift 6.4 facilite la migration des projets existants vers Swift Testing. Vous pouvez désormais utiliser XCTAssert en toute sécurité dans les tests Swift Testing ou #expect au sein des XCTests, et personnaliser les valeurs affichées dans les attentes ayant échoué à l’aide du protocole CustomTestReflectable. Swift Testing vous permet de répéter des cas de test pour gagner en efficacité et gagner du temps, ainsi que d’enregistrer des pièces jointes conformes au protocole Transferable sur les plateformes Apple.<br />
<br />
Swift dispose désormais d’un site de documentation, et le contenu de la documentation relative à la bibliothèque standard est désormais open source.<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/KS9xXdcjqCc?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
<b>Compilations plus rapides, débogage plus clair, prise en charge plus étendue des EDI</b><br />
<br />
Swift 6.4 apporte toute une série d’améliorations au niveau des outils qui facilitent le développement au quotidien, du débogage à la compilation en passant par la prise en charge des éditeurs :<br />
<br />
- Un débogage plus robuste. Swift 6.4 achève une refonte, étalée sur plusieurs versions, de la manière dont le compilateur suit les modules Swift dans les informations de débogage : LLDB importe désormais les modules grâce à un suivi précis des dépendances, au lieu de recherches ambiguës par nom. Les builds de débogage sous Linux et Windows, ainsi que les paquets dSYM sous Darwin, sont considérablement allégés, car les modules binaires Swift n’y sont plus intégrés. Consultez le récent article de blog « Module Tracking in Swift Debug Info » pour en savoir plus.<br />
<br />
- Système de compilation unifié pour tous les EDI. Swift Package Manager (SwiftPM) utilise désormais Swift Build comme plateforme de compilation par défaut et inclut la génération de nomenclatures logicielles (SBOM) pour Swift Package Manager (SE-0509), offrant ainsi la prise en charge de la génération de documents SBOM au format SPDX ou CycloneDX. Pour en savoir plus sur les mises à jour de SwiftPM, consultez les notes de version de SwiftPM 6.4, et découvrez comment générer une SBOM dans la section « Génération d’une nomenclature logicielle (SBOM) ».<br />
<br />
- Prise en charge élargie de Swift par les EDI. L’extension VS Code pour Swift est désormais disponible sur l’Open VSX Registry ; elle fonctionne donc non seulement dans VS Code, mais aussi dans Cursor, Antigravity, Kiro et d’autres outils de développement. Elle inclut désormais également une intégration avec Swiftly, ce qui facilite la sélection et l’utilisation de différentes versions des chaînes d’outils Swift dans votre projet.<br />
<br />
<b>Interopérabilité et prise en charge des plateformes renforcées</b><br />
<br />
L’interopérabilité de Swift étend sa portée à davantage de niveaux de la pile : du C++ au niveau système au runtime Java d’Android, et de WebAssembly (Wasm) dans le navigateur à Embedded Swift sur les microcontrôleurs.<br />
<br />
L’interopérabilité entre les langages est encore renforcée dans cette version.<br />
<br />
- <b>C</b> : associez @c à @implementation pour utiliser une fonction Swift afin de fournir l’implémentation d’un en-tête C sans déclaration C distincte. Sans @implementation, le compilateur génère la déclaration dans l’en-tête généré. Dans les deux cas, les fonctions @c peuvent bénéficier de wrappers sécurisés, tels qu’une fonction utilisant Span à la place d’une paire brute pointeur-compteur.<br />
<br />
- <b>C++</b> : Swift 6.4 établit une passerelle entre std::span de C++20 et Span de Swift. Vous pouvez ainsi transmettre un Span à une API C++ qui attend un std::span, et recevoir en retour un std::span sous la forme d’un Span, sans avoir à écrire de code de conversion manuel à la frontière.<br />
<br />
- <b>Java</b> : le projet d’interopérabilité Swift/Java, qui permet d’appeler du code Swift depuis Java et Kotlin, étend sa prise en charge des fonctions asynchrones et des fonctions levant des exceptions aux wrappers de protocole et de callback, ajoute un mappage automatique Runnable pour les fermetures, l’importation de paramètres variadiques et la prise en charge des types d’enregistrements Java.<br />
<br />
La prise en charge des plateformes par Swift s’étoffe également.<br />
<br />
<b>WebAssembly</b><br />
<br />
JavaScriptKit offre de meilleures performances lors de la liaison vers Wasm dans Swift 6.4, avec une liaison sécurisée jusqu’à 40 fois plus rapide que la liaison dynamique précédente. Le SDK Wasm est disponible sur la page « Installer Swift » de Swift.org ; la compilation de Swift pour le navigateur ne nécessite donc aucune configuration supplémentaire hormis l’ajout du SDK.<br />
<br />
Les mises à jour de Foundation pour Swift 6.4 améliorent la prise en charge de FileManager sur WASI (WebAssembly System Interface).<br />
<br />
<b>Android</b><br />
<br />
Swift sur Android continue de progresser. Cette version du SDK Swift pour Android est construite avec le nouveau NDK 30 LTS, qui fournit des attributs de disponibilité Android à la fois dans les bibliothèques d’exécution Swift et pour vos paquets Swift utilisant le NDK par défaut. Swift Build prend désormais également en charge Android dans SwiftPM, ce qui rend inutile tout script post-installation.<br />
<br />
<b>Swift embarqué</b><br />
<br />
L’article précédent, intitulé « Améliorations de Swift embarqué dans Swift 6.4 », traite plus en détail des autres améliorations apportées à Swift embarqué dans cette version, notamment la prise en charge généralisée des types existentiels (tels que le protocole `any`), qui vous permet d’exprimer naturellement des collections hétérogènes et de lancer et intercepter n’importe quelle erreur (`Error`).<br />
<br />
Swift embarqué bénéficie également d’un nouvel avertissement `EmbeddedRestrictions` que vous pouvez activer pour l’ensemble d’une cible :<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"><span style="color: #808080;">// Package.swift &#151; enable EmbeddedRestrictions warnings for the target</span>
.target<span class="br0">&#40;</span>
    name: <span style="color: #FF0000;">&quot;FirmwareCore&quot;</span>,
    swiftSettings: <span class="br0">&#91;</span>
        .treatWarning<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;EmbeddedRestrictions&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 />
<b>Un code plus rapide qui reste sûr</b><br />
<br />
Swift 6.4 permet d’éviter plus facilement les copies inutiles de vos données tout en garantissant la sécurité de la mémoire, en s’appuyant sur les travaux antérieurs concernant Span, les types non copiables et InlineArray.<br />
<br />
- Travaillez avec des valeurs en mémoire sans les copier. Les accesseurs « borrow » et « mutate » vous permettent de lire ou de mettre à jour un Span ou un InlineArray via une propriété ; les types non copiables peuvent désormais se conformer aux protocoles Equatable, Comparable et Hashable ; et les nouveaux types Ref et MutableRef vous offrent un conteneur de premier ordre et stockable qui vous permet d’emprunter ou de modifier une valeur à la fois. Les Optional de types non copiables fonctionnent désormais de la même manière ; vous pouvez ainsi inspecter ou mettre à jour le contenu d’un Optional sans le consommer.<br />
<br />
- Construisez des collections et des valeurs allouées sur le tas sans allocation de mémoire superflue. UniqueBox vous offre un pointeur intelligent qui détient en exclusivité une valeur du tas, y compris les valeurs non copiables, sans comptage de références. UniqueArray stocke des éléments non copiables sans les allocations de type « copy-on-write » que l’on observe lors de l’utilisation d’Array et fournit un tampon qui s’agrandit dynamiquement. Vous pouvez parcourir les éléments et les emprunter grâce au protocole Iterable, au lieu de copier chaque valeur, ce qui va au-delà de ce que prend en charge le protocole Sequence.<br />
<br />
- Accédez à la mémoire brute en toute sécurité, sans utiliser d’API annotées « unsafe ». La fonction `withTemporaryAllocation` fournit un tampon temporaire qui est automatiquement initialisé et nettoyé. Une nouvelle API de chargement sécurisée permet à `RawSpan` et à ses variantes de charger et de stocker des octets en toute sécurité, remplaçant ainsi les fonctions marquées « unsafe ».<br />
<br />
<b>Source</b> : <a rel="nofollow" href="https://www.swift.org/blog/swift-6.4-released/" target="_blank">Annonce de Swift 6.4</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que cette annonce est crédible ou pertinente ?<br />
:fleche: Quel est votre avis sur le sujet ?<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://programmation.developpez.com/actu/373119/Apple-migre-son-service-de-surveillance-des-mots-de-passe-de-Java-vers-Swift-et-obtient-une-augmentation-de-40-pourcent-des-performances-avec-une-reduction-de-85-pourcent-du-nombre-de-lignes-de-code/" target="_blank">Apple migre son service de surveillance des mots de passe de Java vers Swift et obtient une augmentation de 40 % des performances, avec une réduction de 85 % du nombre de lignes de code</a><br />
<br />
:fleche: <a href="https://linux.developpez.com/actu/372925/Au-dela-de-Docker-Apple-devoile-discretement-Container-un-framework-Swift-open-source-pour-faciliter-l-execution-de-containers-Linux-sur-macOS-et-ameliorer-la-performance-et-la-securite/" target="_blank">Au-delà de Docker : Apple dévoile discrètement &quot;Container&quot;, un framework Swift open source pour faciliter l'exécution de containers Linux sur macOS et améliorer la performance et la sécurité</a></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1980/systemes/apple/swift/">Swift</category>
			<dc:creator>Jade Emy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2185707/systemes/apple/swift/swift-6-4-apporte-meilleure-interoperabilite-performances-accrues-l-integration-swift-build/</guid>
		</item>
		<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 : 8528
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 : 793
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>
	</channel>
</rss>
