{"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":"warum-wir-swift-statt-swiftui-einsetzen","status":"publish","type":"post","link":"https:\/\/zydeno.com\/de\/warum-wir-swift-statt-swiftui-einsetzen\/","title":{"rendered":"Warum wir Swift und nicht SwiftUI bereitstellen"},"content":{"rendered":"<p>Seit 2019 wurde SwiftUI auf jeder WWDC ein St\u00fcck weiter vorangetrieben, und jedes Mal, wenn wir eine neue App in Angriff nehmen, setzen wir uns als Team zusammen und stellen uns dieselbe Frage: <em>Hat es sich schon einen Platz in unseren Apps verdient?<\/em> Bislang lautete die Antwort \u201eNein\u201c f\u00fcr die wichtigen Aspekte \u2013 und wahrscheinlich \u201eJa\u201c f\u00fcr die unwichtigen.<\/p>\n<p>Das ist kein Urteil \u00fcber SwiftUI im Allgemeinen. Viele Teams bringen damit hervorragende Apps auf den Markt. Es ist vielmehr eine Beschreibung dessen, wo es f\u00fcr uns Sinn macht: ein kleines Studio, das mehrere iPhone- und iPad-Apps gleichzeitig betreut, bei denen in keiner einzigen Platz f\u00fcr \u00dcberraschungen ist.<\/p>\n<h2>Was funktioniert<\/h2>\n<p>SwiftUI eignet sich wirklich hervorragend f\u00fcr statische Einstellungsbildschirme, Formularlayouts und alles, wo der View-Baum klein ist und der Datenfluss in eine Richtung verl\u00e4uft. Wir nutzen es. Au\u00dferdem verwenden wir es f\u00fcr Vorschauen w\u00e4hrend des Designprozesses \u2013 der Iterationszyklus ist schneller als der von UIKit.<\/p>\n<p>In der Praxis bedeutet das, dass der Bildschirm, auf dem man Einheiten ausw\u00e4hlt oder Daten exportiert, oft auf SwiftUI basiert und in eine App eingebettet ist, deren Hauptbildschirme auf UIKit basieren. Beide koexistieren reibungslos nebeneinander, und durch ihre Kombination k\u00f6nnen wir die jeweiligen St\u00e4rken der beiden Technologien nutzen, anstatt die gesamte App einem einzigen Ansatz zu unterwerfen.<\/p>\n<h2>Was (f\u00fcr uns) nicht funktioniert<\/h2>\n<p>Sobald ein Bildschirm benutzerdefinierte Gesten, leistungskritische Listen, komplexe Navigationszust\u00e4nde oder pr\u00e4zises Animations-Timing erfordert, greifen wir wieder auf UIKit zur\u00fcck. Der Grund daf\u00fcr ist kein Hype \u2013 es sind die Fehler, die auftreten, wenn wir darauf verzichten. SwiftUI hat sich in den letzten Versionen deutlich verbessert, \u00fcberrascht uns aber bei der Ausf\u00fchrung immer noch auf eine Weise, wie es UIKit selten tut.<\/p>\n<p>Konkrete Beispiele helfen dabei. Bei einem Tipptrainer muss jeder Tastenanschlag ohne sichtbare Verz\u00f6gerung zum richtigen Zeichen f\u00fchren, und der Bildschirm muss mit den Fingern des Nutzers Schritt halten. Eine lange Historie von Eintr\u00e4gen in einem Tracker muss sich auf einem \u00e4lteren Smartphone fl\u00fcssig scrollen lassen. Ein Planer mit Drag-and-Drop-Funktion ben\u00f6tigt Gesten, die nicht mit den systemeigenen in Konflikt stehen. Bei solchen Bildschirmen haben wir festgestellt, dass UIKit vorhersehbarer ist.<\/p>\n<h2>Die Vor- und Nachteile<\/h2>\n<p>Das Festhalten an UIKit hat seinen Preis. Es bedeutet mehr Code f\u00fcr denselben Bildschirm, und es bedeutet, dass jeder, der neu einsteigt, sich mit einem \u00e4lteren Framework auskennen muss, das in Tutorials zunehmend \u00fcbersprungen wird. Einige neue Systemfunktionen erscheinen zuerst in SwiftUI, und ihre \u00dcbernahme aus UIKit erfordert zus\u00e4tzlichen Aufwand. Wir m\u00fcssen auch ehrlich zugeben, dass ein Teil unserer Zur\u00fcckhaltung auf Vertrautheit zur\u00fcckzuf\u00fchren ist: Ein Framework gr\u00fcndlich zu kennen, ist zwar wertvoll, kann aber auch zu einer Ausrede werden.<\/p>\n<p>Es gibt aber auch noch eine offene Frage. Unsere iPhone- und iPad-Apps laufen bereits auf Mac-Ger\u00e4ten mit Apple-Silicon, und native Mac-Apps sind in Planung. Sollte SwiftUI die gemeinsame Nutzung von UI-Code \u00fcber diese Plattformen hinweg deutlich vereinfachen, k\u00f6nnte sich die Situation \u00e4ndern.<\/p>\n<h2>Was wir falsch gemacht haben<\/h2>\n<p>Wir haben SwiftUI einmal f\u00fcr einen Bildschirm verwendet, der auf dem Papier einfach aussah, sich in der Praxis jedoch als alles andere als einfach erwies: eine Liste mit benutzerdefinierten Wischgesten und einem Status, der sich beim Scrollen \u00e4nderte. In der Vorschau funktionierte alles einwandfrei, auf echten Ger\u00e4ten verhielt es sich jedoch seltsam. Die Neuprogrammierung in UIKit kostete mehr Zeit, als es gekostet h\u00e4tte, von Anfang an mit UIKit zu arbeiten. Jetzt entscheiden wir von vornherein f\u00fcr jeden Bildschirm einzeln, je nachdem, was der Bildschirm tats\u00e4chlich leisten muss.<\/p>\n<p>Das ist der einzige wirkliche Test: <em>Wird uns das in der Produktion \u00fcberraschen?<\/em> Bei den meisten unserer Projekte kommt SwiftUI als Kerntechnologie nicht in Frage. Wir werden uns n\u00e4chstes Jahr erneut damit befassen.<\/p>","protected":false},"excerpt":{"rendered":"<p>Ein ehrliches Pl\u00e4doyer daf\u00fcr, bei UIKit zu bleiben, obwohl der Rest der Branche bereits weitergezogen ist.<\/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\/de\/warum-wir-swift-statt-swiftui-einsetzen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/warum-wir-swift-statt-swiftui-einsetzen\/\" \/>\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=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrii Matiushev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\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\":\"de\"},{\"@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\":\"de\",\"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\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/zydeno.com\/#organization\",\"name\":\"Zydeno Studio\",\"url\":\"https:\/\/zydeno.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\",\"@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":"Warum wir Swift und nicht SwiftUI einsetzen \u2013 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\/de\/warum-wir-swift-statt-swiftui-einsetzen\/","og_locale":"de_DE","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\/de\/warum-wir-swift-statt-swiftui-einsetzen\/","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":{"Verfasst von":"Andrii Matiushev","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"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":"de"},{"@type":"WebPage","@id":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/","url":"https:\/\/zydeno.com\/why-we-ship-swift-not-swiftui\/","name":"Warum wir Swift und nicht SwiftUI einsetzen \u2013 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":"de","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 ist ein Indie-Studio, das Apps in vielen verschiedenen Kategorien entwickelt \u2013 verbunden durch eine gemeinsame Leidenschaft f\u00fcr Handwerkskunst und Detailtreue. Schnelle, eigenwillige und unabh\u00e4ngige Apps f\u00fcr iPhone, Android, Windows und Mac sowie Erweiterungen f\u00fcr Chrome, Edge und Firefox. Langsam entwickelt, sorgf\u00e4ltig ver\u00f6ffentlicht.","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":"de"},{"@type":"Organization","@id":"https:\/\/zydeno.com\/#organization","name":"Zydeno Studio","url":"https:\/\/zydeno.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@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":"de","@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\/de\/wp-json\/wp\/v2\/posts\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":2,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/posts\/569\/revisions"}],"predecessor-version":[{"id":774,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/posts\/569\/revisions\/774"}],"wp:attachment":[{"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/media?parent=569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/categories?post=569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/tags?post=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}