{"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":"la-obsesion-por-el-arranque-en-frio","status":"publish","type":"post","link":"https:\/\/zydeno.com\/es\/la-obsesion-por-el-arranque-en-frio\/","title":{"rendered":"La obsesi\u00f3n por el arranque en fr\u00edo"},"content":{"rendered":"<p>El inicio en fr\u00edo es la primera impresi\u00f3n que una aplicaci\u00f3n causa en el usuario. Si tarda m\u00e1s de un segundo en estar lista para su uso, ya le hemos dado a entender a la persona que la utiliza que se trata de una aplicaci\u00f3n lenta, independientemente de lo r\u00e1pido que funcione todo lo dem\u00e1s a partir de ese momento.<\/p>\n<p>Adem\u00e1s, es el momento que los usuarios viven con m\u00e1s frecuencia. Una aplicaci\u00f3n para llevar un seguimiento de h\u00e1bitos se abre durante unos segundos para marcar algo como completado. Una aplicaci\u00f3n para llevar un seguimiento de las migra\u00f1as se abre cuando alguien se encuentra mal y quiere registrarlo r\u00e1pidamente. En el caso de aplicaciones como estas, la apertura no es un preludio de la experiencia, sino que constituye la mayor parte de la misma.<\/p>\n<h2>Nuestro objetivo<\/h2>\n<p>Nuestro objetivo es <strong>menos de 600 ms<\/strong> Desde que se pulsa el icono hasta que aparece la interfaz de usuario interactiva en un iPhone de hace cinco a\u00f1os. Eso ocurre despu\u00e9s de que el sistema operativo haya cargado el binario, haya asignado memoria y nos haya cedido el hilo principal. Todo lo que ocurre entre ese traspaso y el primer fotograma depende de nosotros.<\/p>\n<p>\u201cInteractivo\u201d es la palabra clave. Una pantalla de bienvenida que aparece al instante y luego se queda ah\u00ed sin m\u00e1s no cuenta. Tampoco cuenta un primer fotograma lleno de marcadores de posici\u00f3n que se reorganizan un momento despu\u00e9s. El objetivo es llegar al punto en el que puedas tocar lo que has venido a buscar y esto responda.<\/p>\n<p>Realizamos las mediciones en el dispositivo antiguo, no en el nuevo, por la misma raz\u00f3n por la que hacemos las pruebas all\u00ed: el tel\u00e9fono m\u00e1s nuevo ocultar\u00e1 casi cualquier error.<\/p>\n<h2>Lo que obliga<\/h2>\n<p>Alcanzar esa cifra pone fin a muchas discusiones desde el principio. No se puede establecer una red de contactos durante la fase de lanzamiento. Los SDK de terceros son dif\u00edciles de vender: la mayor\u00eda de ellos generan tareas en segundo plano antes de <code>application(_:didFinishLaunching\u2026)<\/code> devuelve incluso resultados. Las cach\u00e9s de im\u00e1genes se cargan de forma diferida. Las migraciones de la base de datos se ejecutan en una cola en segundo plano, sin bloquear nunca la cola principal.<\/p>\n<p>De ah\u00ed se derivan algunos h\u00e1bitos. La primera pantalla se genera a partir de los datos que ya hay en el dispositivo, por lo que la aplicaci\u00f3n muestra algo real de inmediato y se actualiza de forma discreta si hay algo que actualizar. Las funciones que no son necesarias en la primera pantalla no se configuran hasta que alguien las solicita. Y cada vez que nos sentimos tentados a a\u00f1adir una biblioteca, nos preguntamos qu\u00e9 hace al iniciarse antes de preguntarnos qu\u00e9 nos aporta.<\/p>\n<h2>Las ventajas y desventajas<\/h2>\n<p>Esta disciplina tiene su precio. Renunciar a un SDK que nos vendr\u00eda bien a veces implica escribir y mantener nosotros mismos el c\u00f3digo equivalente. Mostrar primero los datos locales significa dise\u00f1ar teniendo en cuenta el caso en el que est\u00e9n ligeramente desactualizados. La carga diferida requiere un cuidado especial para evitar que la pantalla se cuelgue la primera vez que se abre una p\u00e1gina m\u00e1s pesada. Aceptamos esos costes porque la alternativa es un peque\u00f1o retraso en cada inicio, para siempre, para todos.<\/p>\n<h2>En qu\u00e9 nos equivocamos<\/h2>\n<p>El tiempo de inicio rara vez se ve afectado por un \u00fanico cambio dr\u00e1stico. Se va deteriorando poco a poco: un poco de c\u00f3digo de configuraci\u00f3n por aqu\u00ed, una comprobaci\u00f3n adicional por all\u00e1, cada uno de ellos inofensivo por s\u00ed solo. Lo aprendimos por las malas, al darnos cuenta demasiado tarde de que una aplicaci\u00f3n tardaba m\u00e1s en abrirse sin que hubiera una \u00fanica modificaci\u00f3n a la que culpar. Ahora, el tiempo de inicio se comprueba en el dispositivo de referencia como parte de cada lanzamiento, de modo que cualquier desviaci\u00f3n se detecta cuando a\u00fan es m\u00ednima.<\/p>\n<p>El mismo principio se aplica a nuestras otras plataformas. Una aplicaci\u00f3n Windows o una ventana emergente de una extensi\u00f3n de navegador tiene su propia versi\u00f3n de \u00abarranque en fr\u00edo\u00bb, y se aplica la misma regla: mostrar algo \u00fatil de inmediato y posponer todo lo dem\u00e1s.<\/p>\n<h2>Por qu\u00e9 merece la pena<\/h2>\n<p>La disciplina se amortiza por s\u00ed sola. Cuando el lanzamiento es r\u00e1pido, todo lo dem\u00e1s tambi\u00e9n lo es, porque las mismas reglas se aplican en todas partes.<\/p>","protected":false},"excerpt":{"rendered":"<p>Por qu\u00e9 medimos en milisegundos el tiempo de arranque de una app y por qu\u00e9 eso cambia c\u00f3mo se construye todo lo dem\u00e1s.<\/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\/es\/la-obsesion-por-el-arranque-en-frio\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/la-obsesion-por-el-arranque-en-frio\/\" \/>\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=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrii Matiushev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\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\":\"es\"},{\"@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\":\"es\",\"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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/zydeno.com\/#organization\",\"name\":\"Zydeno Studio\",\"url\":\"https:\/\/zydeno.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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":"La obsesi\u00f3n por el arranque en fr\u00edo - 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\/es\/la-obsesion-por-el-arranque-en-frio\/","og_locale":"es_ES","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\/es\/la-obsesion-por-el-arranque-en-frio\/","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":{"Escrito por":"Andrii Matiushev","Tiempo de lectura":"3 minutos"},"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":"es"},{"@type":"WebPage","@id":"https:\/\/zydeno.com\/the-cold-start-obsession\/","url":"https:\/\/zydeno.com\/the-cold-start-obsession\/","name":"La obsesi\u00f3n por el arranque en fr\u00edo - 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":"es","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 es un estudio independiente que dise\u00f1a aplicaciones de diversas categor\u00edas, todas ellas unidas por una obsesi\u00f3n compartida por la calidad y el detalle. Aplicaciones r\u00e1pidas, con car\u00e1cter e independientes para iPhone, Android, Windows y Mac, adem\u00e1s de extensiones para Chrome, Edge y Firefox. Desarrolladas sin prisas, lanzadas con esmero.","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":"es"},{"@type":"Organization","@id":"https:\/\/zydeno.com\/#organization","name":"Zydeno Studio","url":"https:\/\/zydeno.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@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":"es","@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\/es\/wp-json\/wp\/v2\/posts\/570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/comments?post=570"}],"version-history":[{"count":2,"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/posts\/570\/revisions"}],"predecessor-version":[{"id":773,"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/posts\/570\/revisions\/773"}],"wp:attachment":[{"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/media?parent=570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/categories?post=570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zydeno.com\/es\/wp-json\/wp\/v2\/tags?post=570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}