{"id":11002,"date":"2014-09-26T16:17:39","date_gmt":"2014-09-26T14:17:39","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=11002"},"modified":"2014-09-26T16:18:53","modified_gmt":"2014-09-26T14:18:53","slug":"usare-assets-resolution-independent-con-xcode-6","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/usare-assets-resolution-independent-con-xcode-6\/","title":{"rendered":"Usare assets &#8220;resolution-independent&#8221; con Xcode 6"},"content":{"rendered":"<p>In tutte le applicazione mobili si usano sempre pi\u00f9 immagini per icone, grafiche e molto altro. Nel 2011 tutti gli sviluppatori hanno scoperto il suffisso @2x e hanno dovuto ricreare tutti gli assets per il <strong>retina display<\/strong>. Solo qualche settimana fa Apple ha chiesto di adattare ancora una volta tutti gli assets per il nuovo <strong>Retina HD Display<\/strong> con il suffisso <strong>@3x<\/strong>.<!--more--><\/p>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2014\/09\/Schermata-2014-09-23-alle-17.47.25.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2014\/09\/Schermata-2014-09-23-alle-17.47.25.png\" alt=\"Schermata 2014-09-23 alle 17.47.25\" width=\"1048\" height=\"579\" class=\"aligncenter size-full wp-image-11003\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2014\/09\/Schermata-2014-09-23-alle-17.47.25.png 1048w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2014\/09\/Schermata-2014-09-23-alle-17.47.25-300x165.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2014\/09\/Schermata-2014-09-23-alle-17.47.25-1024x565.png 1024w\" sizes=\"auto, (max-width: 1048px) 100vw, 1048px\" \/><\/a><\/p>\n<p>Grazie ad una novit\u00e0 di Xcode 6, per\u00f2, gran parte del lavoro pu\u00f2 essere agevolato usando degli <strong>assets vettoriali<\/strong>. Come spiegato in una sessione del WWDC&#8217;14, Xcode ora supporta la generazione automatica di PNG partendo da immagini vettoriali nel momento della compilazione.<\/p>\n<p>Il primo passo per usare assets vettoriali \u00e8 quello di esportare con Illustrator o Photoshop il file in <strong>formato PDF<\/strong> con le dimensioni settate in punti, le stesse\u00a0che si andrebbero ad usare\u00a0per le immagini @1x.<\/p>\n<p>In Xcode, dopo aver aperto o creato un <strong>XCAsset<\/strong>, si dovr\u00e0 creare un nuovo <strong>Image Set<\/strong> e dall&#8217;<strong>Attribute Inspector<\/strong> cambiare il valore <em><strong>Types<\/strong><\/em> in <strong><em>Vectors<\/em><\/strong>; a questo punto sar\u00e0 possibile trascinare il file PDF dell&#8217;assets dentro Xcode.<\/p>\n<p>Dopo aver completato questa procedura sar\u00e0 sufficiente usare nel codice (o dentro Interface Builder) il nome dell&#8217;Image Set per inizializzare un oggetto <strong><em>UIImage<\/em><\/strong>. Quando l&#8217;app verr\u00e0 compilata Xcode si preoccuper\u00e0 di generare automaticamente le tre immagini in PNG che verranno poi usate da iOS.<\/p>\n<p>Da sottolineare che il supporto vettoriale non \u00e8 completo, visto che vengono comunque create le immagini PNG. Altro dettaglio da non trascurare sono le dimensioni del PDF; usando l&#8217;immagine con dimensioni diverse da quelle specificate ci saranno problemi di rendering, come se l&#8217;immagine venisse sformata.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In tutte le applicazione mobili si usano sempre pi\u00f9 immagini per icone, grafiche e molto altro. Nel&#8230;<\/p>\n","protected":false},"author":557,"featured_media":10898,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[70,105],"tags":[1360,1388,1387,1386,1380],"class_list":["post-11002","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-grafica-e-design","category-tips-tricks","tag-ios-8","tag-ios-tips","tag-vector-assets-ottimizzare-grafica-iphone-6","tag-xcasset","tag-xcode-6"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/557"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=11002"}],"version-history":[{"count":5,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11002\/revisions"}],"predecessor-version":[{"id":11012,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11002\/revisions\/11012"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/10898"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=11002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=11002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=11002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}