{"id":570,"date":"2026-06-22T10:00:00","date_gmt":"2026-06-22T10:00:00","guid":{"rendered":"https:\/\/zydeno.com\/?p=570"},"modified":"2026-10-14T16:43:18","modified_gmt":"2026-10-14T16:43:18","slug":"die-besessenheit-vom-kaltstart","status":"publish","type":"post","link":"https:\/\/zydeno.com\/de\/die-besessenheit-vom-kaltstart\/","title":{"rendered":"Die Besessenheit vom Kaltstart"},"content":{"rendered":"<p>Der Kaltstart ist das erste Versprechen, das eine App ihrem Nutzer gibt. Wenn es l\u00e4nger als eine Sekunde dauert, bis sie einsatzbereit ist, haben wir dem Nutzer bereits vermittelt, dass es sich um eine langsame App handelt \u2013 ganz gleich, wie schnell sie danach l\u00e4uft.<\/p>\n<p>Es ist auch der Moment, den die Nutzer am h\u00e4ufigsten erleben. Ein Gewohnheits-Tracker wird f\u00fcr ein paar Sekunden ge\u00f6ffnet, um etwas abzuhaken. Ein Migr\u00e4ne-Tracker wird ge\u00f6ffnet, wenn sich jemand unwohl f\u00fchlt und dies schnell festhalten m\u00f6chte. Bei Apps wie diesen ist das \u00d6ffnen nicht nur der Auftakt zum Erlebnis \u2013 es ist der gr\u00f6\u00dfte Teil des Erlebnisses.<\/p>\n<h2>Unser Ziel<\/h2>\n<p>Unser Ziel ist es, <strong>unter 600 ms<\/strong> Vom Antippen eines Symbols bis hin zur interaktiven Benutzeroberfl\u00e4che auf einem f\u00fcnf Jahre alten iPhone. Das geschieht, nachdem das Betriebssystem die Bin\u00e4rdatei geladen, Speicher zugewiesen und uns den Hauptthread \u00fcbergeben hat. Alles, was zwischen dieser \u00dcbergabe und dem ersten Frame passiert, liegt in unserer Verantwortung.<\/p>\n<p>\u201cInteraktiv\u201d ist hier das entscheidende Wort. Ein Startbildschirm, der sofort erscheint und dann einfach nur da bleibt, z\u00e4hlt nicht. Ebenso wenig wie ein erstes Bild voller Platzhalter, die sich einen Moment sp\u00e4ter neu anordnen. Das Ziel ist der Moment, in dem man auf das tippt, weswegen man gekommen ist, und es reagiert.<\/p>\n<p>Wir f\u00fchren die Messungen auf dem alten Ger\u00e4t durch, nicht auf dem neuen \u2013 aus demselben Grund, aus dem wir dort \u00fcberhaupt testen: Das neueste Smartphone kaschiert fast jeden Fehler.<\/p>\n<h2>Was es erzwingt<\/h2>\n<p>Wenn man diese Zahl erreicht, sind viele Diskussionen schon im Keim erstickt. Netzwerkanbindung ist auf dem Startpfad nicht m\u00f6glich. SDKs von Drittanbietern sind schwer zu verkaufen \u2013 die meisten von ihnen l\u00f6sen Hintergrundprozesse aus, bevor <code>application(_:didFinishLaunching\u2026)<\/code> gibt sogar Ergebnisse zur\u00fcck. Bild-Caches werden verz\u00f6gert geladen. Datenbankmigrationen werden in einer Hintergrundwarteschlange ausgef\u00fchrt, ohne die Hauptwarteschlange jemals zu blockieren.<\/p>\n<p>Daraus ergeben sich einige Vorgehensweisen. Der erste Bildschirm wird aus Daten erstellt, die bereits auf dem Ger\u00e4t vorhanden sind, sodass die App sofort aktuelle Informationen anzeigt und im Hintergrund aktualisiert wird, falls etwas aktualisiert werden muss. Funktionen, die auf dem ersten Bildschirm nicht ben\u00f6tigt werden, werden erst eingerichtet, wenn jemand danach fragt. Und wann immer wir in Versuchung geraten, eine Bibliothek hinzuzuf\u00fcgen, fragen wir uns zun\u00e4chst, welche Funktion sie beim Start erf\u00fcllt, bevor wir uns fragen, welchen Nutzen sie f\u00fcr uns hat.<\/p>\n<h2>Die Vor- und Nachteile<\/h2>\n<p>Diese Disziplin hat ihren Preis. Wenn wir auf ein praktisches SDK verzichten, bedeutet das manchmal, dass wir den entsprechenden Code selbst schreiben und pflegen m\u00fcssen. Lokale Daten zuerst anzuzeigen, bedeutet, dass wir f\u00fcr den Fall planen m\u00fcssen, dass diese leicht veraltet sind. Lazy Loading erfordert besondere Sorgfalt, um Ruckler beim ersten \u00d6ffnen eines datenintensiven Bildschirms zu vermeiden. Wir nehmen diese Kosten in Kauf, weil die Alternative eine kleine Belastung bei jedem einzelnen Start w\u00e4re \u2013 f\u00fcr immer und f\u00fcr jeden.<\/p>\n<h2>Was wir falsch gemacht haben<\/h2>\n<p>Die Startzeit verschlechtert sich selten durch eine einzige dramatische Ver\u00e4nderung. Sie verschlechtert sich schleichend: ein bisschen Einrichtungscode hier, eine zus\u00e4tzliche \u00dcberpr\u00fcfung dort \u2013 alles f\u00fcr sich genommen harmlos. Das haben wir auf die harte Tour gelernt, als wir erst sp\u00e4t bemerkten, dass sich eine App langsamer \u00f6ffnen lie\u00df, ohne dass ein einzelner Commit daf\u00fcr verantwortlich war. Mittlerweile wird die Startzeit bei jeder Ver\u00f6ffentlichung auf dem Referenzger\u00e4t \u00fcberpr\u00fcft, sodass Abweichungen bereits erkannt werden, solange sie noch gering sind.<\/p>\n<p>Das gleiche Prinzip gilt auch f\u00fcr unsere anderen Plattformen. Eine Windows-App oder ein Popup einer Browser-Erweiterung hat ihre eigene Version des Kaltstarts, und es gilt dieselbe Regel: Zeige sofort etwas N\u00fctzliches an, verschiebe alles andere auf sp\u00e4ter.<\/p>\n<h2>Warum es sich lohnt<\/h2>\n<p>Diese Disziplin zahlt sich aus. Sobald der Start schnell ist, ist auch alles andere schnell \u2013 denn \u00fcberall gelten dieselben Regeln.<\/p>","protected":false},"excerpt":{"rendered":"<p>Warum wir die Startzeit einer App in Millisekunden messen \u2013 und warum das bestimmt, wie wir alles andere bauen.<\/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-570","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>The cold-start obsession - 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\/die-besessenheit-vom-kaltstart\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The cold-start obsession\" \/>\n<meta property=\"og:description\" content=\"Why we count app launch time in milliseconds \u2014 and why it changes how everything else gets built.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zydeno.com\/de\/die-besessenheit-vom-kaltstart\/\" \/>\n<meta property=\"og:site_name\" content=\"Zydeno Studio\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-22T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-14T16:43:18+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\/the-cold-start-obsession\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/zydeno.com\/the-cold-start-obsession\/\"},\"author\":{\"name\":\"Andrii Matiushev\",\"@id\":\"https:\/\/zydeno.com\/#\/schema\/person\/1af4d0e254f05b407f306ede28252259\"},\"headline\":\"The cold-start obsession\",\"datePublished\":\"2026-06-22T10:00:00+00:00\",\"dateModified\":\"2026-10-14T16:43:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/zydeno.com\/the-cold-start-obsession\/\"},\"wordCount\":577,\"publisher\":{\"@id\":\"https:\/\/zydeno.com\/#organization\"},\"articleSection\":[\"Journal\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zydeno.com\/the-cold-start-obsession\/\",\"url\":\"https:\/\/zydeno.com\/the-cold-start-obsession\/\",\"name\":\"The cold-start obsession - Zydeno Studio\",\"isPartOf\":{\"@id\":\"https:\/\/zydeno.com\/#website\"},\"datePublished\":\"2026-06-22T10:00:00+00:00\",\"dateModified\":\"2026-10-14T16:43:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/zydeno.com\/the-cold-start-obsession\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zydeno.com\/the-cold-start-obsession\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zydeno.com\/the-cold-start-obsession\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zydeno.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The cold-start obsession\"}]},{\"@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":"Die Besessenheit vom Kaltstart \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\/die-besessenheit-vom-kaltstart\/","og_locale":"de_DE","og_type":"article","og_title":"The cold-start obsession","og_description":"Why we count app launch time in milliseconds \u2014 and why it changes how everything else gets built.","og_url":"https:\/\/zydeno.com\/de\/die-besessenheit-vom-kaltstart\/","og_site_name":"Zydeno Studio","article_published_time":"2026-06-22T10:00:00+00:00","article_modified_time":"2026-10-14T16:43:18+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\/the-cold-start-obsession\/#article","isPartOf":{"@id":"https:\/\/zydeno.com\/the-cold-start-obsession\/"},"author":{"name":"Andrii Matiushev","@id":"https:\/\/zydeno.com\/#\/schema\/person\/1af4d0e254f05b407f306ede28252259"},"headline":"The cold-start obsession","datePublished":"2026-06-22T10:00:00+00:00","dateModified":"2026-10-14T16:43:18+00:00","mainEntityOfPage":{"@id":"https:\/\/zydeno.com\/the-cold-start-obsession\/"},"wordCount":577,"publisher":{"@id":"https:\/\/zydeno.com\/#organization"},"articleSection":["Journal"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/zydeno.com\/the-cold-start-obsession\/","url":"https:\/\/zydeno.com\/the-cold-start-obsession\/","name":"Die Besessenheit vom Kaltstart \u2013 Zydeno Studio","isPartOf":{"@id":"https:\/\/zydeno.com\/#website"},"datePublished":"2026-06-22T10:00:00+00:00","dateModified":"2026-10-14T16:43:18+00:00","breadcrumb":{"@id":"https:\/\/zydeno.com\/the-cold-start-obsession\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zydeno.com\/the-cold-start-obsession\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zydeno.com\/the-cold-start-obsession\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zydeno.com\/"},{"@type":"ListItem","position":2,"name":"The cold-start obsession"}]},{"@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\/570","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=570"}],"version-history":[{"count":2,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/posts\/570\/revisions"}],"predecessor-version":[{"id":773,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/posts\/570\/revisions\/773"}],"wp:attachment":[{"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/media?parent=570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/categories?post=570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zydeno.com\/de\/wp-json\/wp\/v2\/tags?post=570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}