{"id":569,"date":"2026-06-08T10:00:00","date_gmt":"2026-06-08T10:00:00","guid":{"rendered":"https:\/\/zydeno.com\/?p=569"},"modified":"2026-10-14T16:43:19","modified_gmt":"2026-10-14T16:43:19","slug":"pourquoi-nous-utilisons-swift-plutot-que-swiftui","status":"publish","type":"post","link":"https:\/\/zydeno.com\/fr\/pourquoi-nous-utilisons-swift-plutot-que-swiftui\/","title":{"rendered":"Pourquoi nous distribuons Swift, et non SwiftUI"},"content":{"rendered":"<p>Depuis 2019, chaque WWDC a pouss\u00e9 SwiftUI un peu plus loin, et chaque fois que nous lan\u00e7ons une nouvelle application, nous nous r\u00e9unissons en \u00e9quipe pour nous poser la m\u00eame question : <em>Est-ce qu'elle a d\u00e9j\u00e0 trouv\u00e9 sa place dans nos applications ?<\/em> Jusqu\u2019\u00e0 pr\u00e9sent, la r\u00e9ponse a \u00e9t\u00e9 \u00ab non \u00bb pour les aspects qui comptent \u2014 et probablement \u00ab oui \u00bb pour ceux qui n\u2019ont pas d\u2019importance.<\/p>\n<p>Il ne s'agit pas ici d'un jugement sur SwiftUI en g\u00e9n\u00e9ral. De nombreuses \u00e9quipes d\u00e9veloppent d'excellentes applications gr\u00e2ce \u00e0 cet outil. Il s'agit simplement de d\u00e9crire dans quel contexte il nous convient : un petit studio qui g\u00e8re simultan\u00e9ment plusieurs applications iPhone et iPad, sans pouvoir se permettre la moindre impr\u00e9vu dans aucune d'entre elles.<\/p>\n<h2>Ce qui fonctionne<\/h2>\n<p>SwiftUI est vraiment id\u00e9al pour les \u00e9crans de param\u00e8tres statiques, les mises en page de formulaires et tout ce o\u00f9 l'arborescence des vues est r\u00e9duite et o\u00f9 le flux de donn\u00e9es est unidirectionnel. Nous l'utilisons. Nous l'utilisons \u00e9galement pour les aper\u00e7us pendant la conception : le cycle d'it\u00e9ration est plus rapide qu'avec UIKit.<\/p>\n<p>Concr\u00e8tement, cela signifie que l'\u00e9cran sur lequel vous s\u00e9lectionnez des \u00e9l\u00e9ments ou exportez vos donn\u00e9es est souvent r\u00e9alis\u00e9 en SwiftUI, int\u00e9gr\u00e9 \u00e0 une application dont les \u00e9crans principaux sont en UIKit. Les deux coexistent sans trop de probl\u00e8mes, et leur combinaison nous permet de tirer parti des points forts de chacun, plut\u00f4t que de consacrer l'int\u00e9gralit\u00e9 d'une application \u00e0 une seule approche.<\/p>\n<h2>Ce qui ne fonctionne pas (pour nous)<\/h2>\n<p>D\u00e8s qu\u2019un \u00e9cran n\u00e9cessite des gestes personnalis\u00e9s, des listes sensibles aux performances, un \u00e9tat de navigation complexe ou un timing d\u2019animation pr\u00e9cis, nous revenons \u00e0 UIKit. Ce n\u2019est pas par effet de mode : c\u2019est \u00e0 cause des bugs que nous rencontrons lorsque nous ne le faisons pas. SwiftUI s\u2019est consid\u00e9rablement am\u00e9lior\u00e9 au fil de ses derni\u00e8res versions, mais il nous r\u00e9serve encore des surprises lors de l\u2019ex\u00e9cution, ce qui arrive rarement avec UIKit.<\/p>\n<p>Les exemples concrets sont utiles. Dans un logiciel d\u2019apprentissage de la dactylographie, chaque frappe doit correspondre au bon caract\u00e8re sans d\u00e9lai visible, et l\u2019\u00e9cran doit suivre le rythme des doigts de l\u2019utilisateur. Un historique long d\u2019entr\u00e9es enregistr\u00e9es dans un outil de suivi doit d\u00e9filer en douceur sur un t\u00e9l\u00e9phone plus ancien. Un agenda avec fonctionnalit\u00e9 de glisser-d\u00e9poser n\u00e9cessite des gestes qui ne vont pas \u00e0 l\u2019encontre de ceux du syst\u00e8me lui-m\u00eame. C\u2019est sur ce type d\u2019interfaces que nous avons trouv\u00e9 UIKit plus pr\u00e9visible.<\/p>\n<h2>Les compromis<\/h2>\n<p>S'en tenir \u00e0 UIKit a un co\u00fbt. Cela implique davantage de code pour un m\u00eame \u00e9cran, et cela signifie que toute nouvelle recrue doit \u00eatre \u00e0 l'aise avec un framework plus ancien que les tutoriels ont de plus en plus tendance \u00e0 ignorer. Certaines nouvelles fonctionnalit\u00e9s du syst\u00e8me apparaissent d'abord dans SwiftUI, et leur adoption depuis UIKit n\u00e9cessite un travail d'infrastructure suppl\u00e9mentaire. Il faut \u00e9galement reconna\u00eetre en toute honn\u00eatet\u00e9 qu\u2019une partie de notre prudence tient \u00e0 la familiarit\u00e9 : une connaissance approfondie d\u2019un framework a certes de la valeur, mais elle peut aussi devenir une excuse.<\/p>\n<p>Une question reste \u00e9galement en suspens. Nos applications iPhone et iPad fonctionnent d\u00e9j\u00e0 sur les Mac \u00e9quip\u00e9s d\u2019Apple Silicon, et nous pr\u00e9voyons de d\u00e9velopper des applications Mac natives. Si SwiftUI facilite consid\u00e9rablement le partage du code d\u2019interface entre ces plateformes, la donne pourrait changer.<\/p>\n<h2>Nos erreurs<\/h2>\n<p>Nous avons d\u00e9j\u00e0 utilis\u00e9 SwiftUI pour un \u00e9cran qui semblait simple sur le papier, mais qui s'est av\u00e9r\u00e9 ne pas l'\u00eatre : une liste avec des actions de balayage personnalis\u00e9es et un \u00e9tat qui changeait au fur et \u00e0 mesure du d\u00e9filement. Elle fonctionnait bien dans les aper\u00e7us, mais de mani\u00e8re \u00e9trange sur les appareils r\u00e9els. La refaire en UIKit nous a pris plus de temps que si nous avions commenc\u00e9 directement avec ce framework. D\u00e9sormais, nous prenons cette d\u00e9cision au cas par cas, d\u00e8s le d\u00e9part, en fonction de ce que l'\u00e9cran doit r\u00e9ellement faire.<\/p>\n<p>C'est l\u00e0 le seul v\u00e9ritable test : <em>Cela va-t-il nous surprendre lors de la production ?<\/em> Pour la plupart de nos projets, cela exclut SwiftUI comme technologie principale. Nous y reviendrons l'ann\u00e9e prochaine.<\/p>","protected":false},"excerpt":{"rendered":"<p>Pourquoi il vaut la peine de rester fid\u00e8le \u00e0 UIKit alors que le reste du secteur est pass\u00e9 \u00e0 autre chose.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-569","post","type-post","status-publish","format-standard","hentry","category-journal"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.2 (Yoast SEO v22.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Why we ship Swift, not SwiftUI - Zydeno Studio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zydeno.com\/fr\/pourquoi-nous-utilisons-swift-plutot-que-swiftui\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why we ship Swift, not SwiftUI\" \/>\n<meta property=\"og:description\" content=\"The honest case for sticking with UIKit when the rest of the industry has moved on.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zydeno.com\/fr\/pourquoi-nous-utilisons-swift-plutot-que-swiftui\/\" \/>\n<meta property=\"og:site_name\" content=\"Zydeno Studio\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-08T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-14T16:43:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zydeno.com\/wp-content\/uploads\/2026\/10\/zydeno-social.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andrii Matiushev\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrii Matiushev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/\"},\"author\":{\"name\":\"Andrii Matiushev\",\"@id\":\"https:\/\/zydeno.com\/#\/schema\/person\/1af4d0e254f05b407f306ede28252259\"},\"headline\":\"Why we ship Swift, not SwiftUI\",\"datePublished\":\"2026-06-08T10:00:00+00:00\",\"dateModified\":\"2026-10-14T16:43:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/\"},\"wordCount\":588,\"publisher\":{\"@id\":\"https:\/\/zydeno.com\/#organization\"},\"articleSection\":[\"Journal\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/\",\"url\":\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/\",\"name\":\"Why we ship Swift, not SwiftUI - Zydeno Studio\",\"isPartOf\":{\"@id\":\"https:\/\/zydeno.com\/#website\"},\"datePublished\":\"2026-06-08T10:00:00+00:00\",\"dateModified\":\"2026-10-14T16:43:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zydeno.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why we ship Swift, not SwiftUI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zydeno.com\/#website\",\"url\":\"https:\/\/zydeno.com\/\",\"name\":\"Zydeno Studio\",\"description\":\"Zydeno is an indie studio designing apps across many categories \u2014 united by a shared obsession with craft and detail. Fast, opinionated, independent apps for iPhone, Android, Windows and Mac, plus extensions for Chrome, Edge and Firefox. Built slowly, shipped carefully.\",\"publisher\":{\"@id\":\"https:\/\/zydeno.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zydeno.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/zydeno.com\/#organization\",\"name\":\"Zydeno Studio\",\"url\":\"https:\/\/zydeno.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/zydeno.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/zydeno.com\/wp-content\/uploads\/2026\/04\/cropped-icon-512-1.png\",\"contentUrl\":\"https:\/\/zydeno.com\/wp-content\/uploads\/2026\/04\/cropped-icon-512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Zydeno Studio\"},\"image\":{\"@id\":\"https:\/\/zydeno.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/zydeno.com\/#\/schema\/person\/1af4d0e254f05b407f306ede28252259\",\"name\":\"Andrii Matiushev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/zydeno.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4df57b6b4737601c798e728e7d4d209a9a9513422db2b613ff707286cb1ea58a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4df57b6b4737601c798e728e7d4d209a9a9513422db2b613ff707286cb1ea58a?s=96&d=mm&r=g\",\"caption\":\"Andrii Matiushev\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pourquoi nous proposons Swift et non SwiftUI - Zydeno Studio","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zydeno.com\/fr\/pourquoi-nous-utilisons-swift-plutot-que-swiftui\/","og_locale":"fr_FR","og_type":"article","og_title":"Why we ship Swift, not SwiftUI","og_description":"The honest case for sticking with UIKit when the rest of the industry has moved on.","og_url":"https:\/\/zydeno.com\/fr\/pourquoi-nous-utilisons-swift-plutot-que-swiftui\/","og_site_name":"Zydeno Studio","article_published_time":"2026-06-08T10:00:00+00:00","article_modified_time":"2026-10-14T16:43:19+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/zydeno.com\/wp-content\/uploads\/2026\/10\/zydeno-social.png","type":"image\/png"}],"author":"Andrii Matiushev","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Andrii Matiushev","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/#article","isPartOf":{"@id":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/"},"author":{"name":"Andrii Matiushev","@id":"https:\/\/zydeno.com\/#\/schema\/person\/1af4d0e254f05b407f306ede28252259"},"headline":"Why we ship Swift, not SwiftUI","datePublished":"2026-06-08T10:00:00+00:00","dateModified":"2026-10-14T16:43:19+00:00","mainEntityOfPage":{"@id":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/"},"wordCount":588,"publisher":{"@id":"https:\/\/zydeno.com\/#organization"},"articleSection":["Journal"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/","url":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/","name":"Pourquoi nous proposons Swift et non SwiftUI - Zydeno Studio","isPartOf":{"@id":"https:\/\/zydeno.com\/#website"},"datePublished":"2026-06-08T10:00:00+00:00","dateModified":"2026-10-14T16:43:19+00:00","breadcrumb":{"@id":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zydeno.com\/"},{"@type":"ListItem","position":2,"name":"Why we ship Swift, not SwiftUI"}]},{"@type":"WebSite","@id":"https:\/\/zydeno.com\/#website","url":"https:\/\/zydeno.com\/","name":"Zydeno Studio","description":"Zydeno est un studio ind\u00e9pendant qui con\u00e7oit des applications dans de nombreux domaines, toutes anim\u00e9es par une m\u00eame passion pour le savoir-faire et le souci du d\u00e9tail. Des applications rapides, originales et ind\u00e9pendantes pour iPhone, Android, Windows et Mac, ainsi que des extensions pour Chrome, Edge et Firefox. D\u00e9velopp\u00e9es avec soin, lanc\u00e9es avec minutie.","publisher":{"@id":"https:\/\/zydeno.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zydeno.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/zydeno.com\/#organization","name":"Zydeno Studio","url":"https:\/\/zydeno.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/zydeno.com\/#\/schema\/logo\/image\/","url":"https:\/\/zydeno.com\/wp-content\/uploads\/2026\/04\/cropped-icon-512-1.png","contentUrl":"https:\/\/zydeno.com\/wp-content\/uploads\/2026\/04\/cropped-icon-512-1.png","width":512,"height":512,"caption":"Zydeno Studio"},"image":{"@id":"https:\/\/zydeno.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zydeno.com\/#\/schema\/person\/1af4d0e254f05b407f306ede28252259","name":"Andrii Matiushev","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/zydeno.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4df57b6b4737601c798e728e7d4d209a9a9513422db2b613ff707286cb1ea58a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4df57b6b4737601c798e728e7d4d209a9a9513422db2b613ff707286cb1ea58a?s=96&d=mm&r=g","caption":"Andrii Matiushev"}}]}},"_links":{"self":[{"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/posts\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":2,"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/posts\/569\/revisions"}],"predecessor-version":[{"id":774,"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/posts\/569\/revisions\/774"}],"wp:attachment":[{"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/media?parent=569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/categories?post=569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zydeno.com\/fr\/wp-json\/wp\/v2\/tags?post=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}