<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>i3Factory</title>
	<atom:link href="http://i3factory.com/it/feed/" rel="self" type="application/rss+xml" />
	<link>http://i3factory.com</link>
	<description>La tua Iphone, iPad &#038; Android Application Factory</description>
	<lastBuildDate>Mon, 03 Jun 2013 14:34:32 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>La rivista &#8220;accastampato&#8221; magazine con i3 Editorial per la facoltà di Fisica</title>
		<link>http://i3factory.com/it/la-rivista-accastampato-magazine-con-i3-editorial-per-la-facolta-di-fisica/</link>
		<comments>http://i3factory.com/it/la-rivista-accastampato-magazine-con-i3-editorial-per-la-facolta-di-fisica/#comments</comments>
		<pubDate>Mon, 03 Jun 2013 14:32:51 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[In Apple Store]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[apple store]]></category>
		<category><![CDATA[edicola]]></category>
		<category><![CDATA[editori]]></category>
		<category><![CDATA[i3editorial]]></category>
		<category><![CDATA[newstand]]></category>
		<category><![CDATA[sistema editoriale per iPad]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2173</guid>
		<description><![CDATA[<p>Il magazine accastampato è la prima rivista di divulgazione scientifica per studenti pensata e realizzata da studenti.  Pubblicato con <a title="sistema editoriale per iPad, iPhone e Android, pubblica le tue riviste senza costi." href="http://i3editorial.com"><strong>i3editorial.com</strong></a> permette una gestione di alta qualità senza costo di gestione.<br />
Il progetto è, infatti, curato dagli studenti di Fisica dell'associazione "accatagliato" con lo scopo di raccontare con parole semplici la ricerca di frontiera nella quale sono coinvolti in prima persona.</p>
<p>Scaricare da edicola itunes App store: <a title="magazine con sistema editoriale i3editorial.com" href="https://itunes.apple.com/it/app/accastampato/id630566984?mt=8">https://itunes.apple.com/it/app/accastampato/id630566984?mt=8 </a></p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/la-provincia-in-casa-pubblica-con-i3f-editorial-2/' rel='bookmark' title='La provincia in Casa pubblica con i3F Editorial'>La provincia in Casa pubblica con i3F Editorial</a></li>
<li><a href='http://i3factory.com/it/clicomunica-il-ministero-del-lavoro-con-i3-editorial/' rel='bookmark' title='CliComunica, il Ministero del Lavoro con i3 Editorial'>CliComunica, il Ministero del Lavoro con i3 Editorial</a></li>
<li><a href='http://i3factory.com/it/come-pubblicare-una-rivista-o-magazine-per-ipad-con-html5/' rel='bookmark' title='Come pubblicare una rivista o magazine per iPad con HTML5'>Come pubblicare una rivista o magazine per iPad con HTML5</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<div id="attachment_2175" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.i3factory.com/wp-content/uploads/iTunesArtwork5.png"><img class="size-full wp-image-2175" alt="accastampato magazine , una rivista pubblicata con i3editorial.com" src="http://www.i3factory.com/wp-content/uploads/iTunesArtwork5.png" width="512" height="512" /></a><p class="wp-caption-text">accastampato magazine , una rivista pubblicata con i3editorial.com</p></div>
<p>Il magazine accastampato è la prima rivista di divulgazione scientifica per studenti pensata e realizzata da studenti.  Pubblicato con <a title="sistema editoriale per iPad, iPhone e Android, pubblica le tue riviste senza costi." href="http://i3editorial.com"><strong>i3editorial.com</strong></a> permette una gestione di alta qualità senza costo di gestione.<br />
Il progetto è, infatti, curato dagli studenti di Fisica dell&#8217;associazione &#8220;accatagliato&#8221; con lo scopo di raccontare con parole semplici la ricerca di frontiera nella quale sono coinvolti in prima persona.</p>
<p>Scaricare da edicola itunes App store: <a title="magazine con sistema editoriale i3editorial.com" href="https://itunes.apple.com/it/app/accastampato/id630566984?mt=8">https://itunes.apple.com/it/app/accastampato/id630566984?mt=8 </a></p>
<p>&nbsp;</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/la-provincia-in-casa-pubblica-con-i3f-editorial-2/' rel='bookmark' title='La provincia in Casa pubblica con i3F Editorial'>La provincia in Casa pubblica con i3F Editorial</a></li>
<li><a href='http://i3factory.com/it/clicomunica-il-ministero-del-lavoro-con-i3-editorial/' rel='bookmark' title='CliComunica, il Ministero del Lavoro con i3 Editorial'>CliComunica, il Ministero del Lavoro con i3 Editorial</a></li>
<li><a href='http://i3factory.com/it/come-pubblicare-una-rivista-o-magazine-per-ipad-con-html5/' rel='bookmark' title='Come pubblicare una rivista o magazine per iPad con HTML5'>Come pubblicare una rivista o magazine per iPad con HTML5</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/la-rivista-accastampato-magazine-con-i3-editorial-per-la-facolta-di-fisica/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>La provincia in Casa pubblica con i3F Editorial</title>
		<link>http://i3factory.com/it/la-provincia-in-casa-pubblica-con-i3f-editorial-2/</link>
		<comments>http://i3factory.com/it/la-provincia-in-casa-pubblica-con-i3f-editorial-2/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 10:00:28 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[Android Market]]></category>
		<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[In Apple Store]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[editorial system]]></category>
		<category><![CDATA[i3F editorial]]></category>
		<category><![CDATA[sistema editoriale per iPad]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2154</guid>
		<description><![CDATA[<p><strong>La Provincia in Casa</strong> ha scelto di entrare nel mercato mobile e tablet con i3Factory utilizzando <a title="Sistema Editoriale per Magazine su iPhone, iPAd, Android, Kindle, Samsung, Google Play" href="http://i3factory.com/editorial/" target="_blank">il</a> sistema editoriale i3F Editorial, una soluzione tecnologicamente all'avanguardia senza alcun costo di gestione.</p>
<p>Scaricabile per dispositivi Apple e Android.<br />
La tecnologia avanzata di i3F Editorial permette agli editori di pubblicare nuovi numeri della rivista o magazine senza alcun costo. Appare incredibile ma è vero.</p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/clicomunica-il-ministero-del-lavoro-con-i3-editorial/' rel='bookmark' title='CliComunica, il Ministero del Lavoro con i3 Editorial'>CliComunica, il Ministero del Lavoro con i3 Editorial</a></li>
<li><a href='http://i3factory.com/it/varesefocus-on-android-market/' rel='bookmark' title='Varesefocus on Android Market'>Varesefocus on Android Market</a></li>
<li><a href='http://i3factory.com/it/novaestetyc-magazine-realizzato-con-i3factory-editorial/' rel='bookmark' title='Novaestetyc Magazine realizzato con i3Factory Editorial'>Novaestetyc Magazine realizzato con i3Factory Editorial</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<div id="attachment_2145" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.i3factory.com/wp-content/uploads/icon@512x512.png"><img class="size-full wp-image-2145" alt="Rivista della provincia di Milano" src="http://www.i3factory.com/wp-content/uploads/icon@512x512.png" width="512" height="512" /></a><p class="wp-caption-text">Rivista della provincia di Milano</p></div>
<p>&nbsp;</p>
<p><strong>La Provincia in Casa</strong> ha scelto di entrare nel mercato mobile e tablet con i3Factory utilizzando <a title="Sistema Editoriale per Magazine su iPhone, iPAd, Android, Kindle, Samsung, Google Play" href="http://i3factory.com/editorial/" target="_blank">il sistema editoriale i3F Editorial</a>, una soluzione tecnologicamente all&#8217;avanguardia senza alcun costo di gestione. La tecnologia avanzata di<a title="Sistema editoriale i3F Editorial per Apple Store e Android market iPhone, iPad, Android, Kindle, Tablet, Smartphone" href="http://i3factory.com/editorial/"> i3F Editorial </a>permette agli editori di pubblicare nuovi numeri della rivista o magazine senza alcun costo. Appare incredibile ma è vero.</p>
<p>La versione per i dispositivi iOS Apple, tutti gli iPhone e iPod Touch (iPhone 3, iPhone5, iPhone 5) e iPad (iPad 3 Retina, iPad 4 Retina, iPad 1, iPad2) la trovate al seguente link:</p>
<p><a title="Applicazione i3 Editorial per Magazine Rivista La provincia in casa, Milano. Versione iOS per iPad e iPhone" href="https://itunes.apple.com/it/app/la-provincia-in-casa/id606239216?mt=8" target="_blank">https://itunes.apple.com/it/app/la-provincia-in-casa/id606239216?mt=8</a></p>
<p>La versione Android per tutti gli smartphone e tablet android (Samsung , Kindle, Sony, Asus, etc..):</p>
<p><a title="Applicazione i3 Editorial per Magazine Rivista La provincia in casa, Milano. Versione Android Market google play per Tablet e smartphone" href="https://play.google.com/store/apps/details?id=org.imaginor" target="_blank">https://play.google.com/store/apps/details?id=org.imaginor</a> (GOOGLE PLAY- Android Market)</p>
<p><a title="Applicazione i3 Editorial per Magazine Rivista La provincia in casa, Milano. Versione Amazon App store per Kindle Fire Android" href="http://www.amazon.com/Provincia-Casa-Milano-italian-Magazine/dp/B00BUL9THS " target="_blank">http://www.amazon.com/Provincia-Casa-Milano-italian-Magazine/dp/B00BUL9THS </a>(Amazon App Store &#8211; Kindle fire)</p>

<a href='http://i3factory.com/?attachment_id=2149' title='mzl.yhvricsa.320x480-75'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/mzl.yhvricsa.320x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.yhvricsa.320x480-75" /></a>
<a href='http://i3factory.com/?attachment_id=2148' title='mzl.uzfrqdsd.480x480-75'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/mzl.uzfrqdsd.480x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.uzfrqdsd.480x480-75" /></a>
<a href='http://i3factory.com/?attachment_id=2147' title='mzl.ydohrxbh.480x480-75'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/mzl.ydohrxbh.480x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.ydohrxbh.480x480-75" /></a>
<a href='http://i3factory.com/?attachment_id=2146' title='Magazine con i3F Editorial'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/mzl.pbdyqdab.320x480-75-150x150.jpg" class="attachment-thumbnail" alt="Magazine con i3F Editorial" /></a>
<a href='http://i3factory.com/?attachment_id=2145' title='La Provincia in Casa, Magazine pubblicato con i3 editorial'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/icon@512x512-150x150.png" class="attachment-thumbnail" alt="Rivista della provincia di Milano" /></a>

<p>&nbsp;</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/clicomunica-il-ministero-del-lavoro-con-i3-editorial/' rel='bookmark' title='CliComunica, il Ministero del Lavoro con i3 Editorial'>CliComunica, il Ministero del Lavoro con i3 Editorial</a></li>
<li><a href='http://i3factory.com/it/varesefocus-on-android-market/' rel='bookmark' title='Varesefocus on Android Market'>Varesefocus on Android Market</a></li>
<li><a href='http://i3factory.com/it/novaestetyc-magazine-realizzato-con-i3factory-editorial/' rel='bookmark' title='Novaestetyc Magazine realizzato con i3Factory Editorial'>Novaestetyc Magazine realizzato con i3Factory Editorial</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/la-provincia-in-casa-pubblica-con-i3f-editorial-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>CliComunica, il Ministero del Lavoro con i3 Editorial</title>
		<link>http://i3factory.com/it/clicomunica-il-ministero-del-lavoro-con-i3-editorial/</link>
		<comments>http://i3factory.com/it/clicomunica-il-ministero-del-lavoro-con-i3-editorial/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 18:11:51 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[Android Market]]></category>
		<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[In Apple Store]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[App istituzionali]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[i3F editorial]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2136</guid>
		<description><![CDATA[<p>i3Factory accompagna il Ministero del Lavoro che attraverso il Sistema Editoriale <a title="Sistema editoriale per iPhone, iPad, Android, Kindle, Windows, W8" href="http://i3editorial.com" target="_blank">i3Editorial</a> sbarca su App Store.<br />
Uno strumento agile per essere sempre aggiornati sul mondo del lavoro. La newsletter di Cliclavoro è un<strong> appuntamento mensile</strong> che raccoglie le più importanti novità del settore: tendenze del mercato del lavoro, opportunità dall’Europa, interviste a personalità di spicco.</p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/novaestetyc-magazine-realizzato-con-i3factory-editorial/' rel='bookmark' title='Novaestetyc Magazine realizzato con i3Factory Editorial'>Novaestetyc Magazine realizzato con i3Factory Editorial</a></li>
<li><a href='http://i3factory.com/it/come-realizzare-unapp-per-ipad-per-la-lettura-di-riviste-introduzione/' rel='bookmark' title='Come realizzare un&#8217;app per iPad per la lettura di riviste &#8211; Introduzione'>Come realizzare un&#8217;app per iPad per la lettura di riviste &#8211; Introduzione</a></li>
<li><a href='http://i3factory.com/it/pubblicare-riviste-giornali-magazine-su-ipad-con-i3factory-editorial/' rel='bookmark' title='Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial'>Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p style="text-align: center;"><a href="http://www.i3factory.com/wp-content/uploads/ClickComunica_artwork_i3factory.png"><img class="aligncenter  wp-image-2137" title="ClickComunica_artwork_i3factory" src="http://www.i3factory.com/wp-content/uploads/ClickComunica_artwork_i3factory.png" alt="" width="491" height="491" /></a></p>
<p>i3Factory accompagna il Ministero del Lavoro che attraverso il Sistema Editoriale <a title="Sistema editoriale per iPhone, iPad, Android, Kindle, Windows, W8" href="http://i3editorial.com" target="_blank">i3Editorial</a> sbarca su App Store.<br />
Uno strumento agile per essere sempre aggiornati sul mondo del lavoro. La newsletter di Cliclavoro è un<strong> appuntamento mensile</strong> che raccoglie le più importanti novità del settore: tendenze del mercato del lavoro, opportunità dall’Europa, interviste a personalità di spicco.</p>
<p>La Newsletter si articola in 5 sezioni:</p>
<ul>
<li>In apertura</li>
<li>Approfondimento</li>
<li>L’intervista</li>
<li>Dall’Europa</li>
<li>Dai Social Network</li>
</ul>
<p>Tieniti aggiornato sull’andamento del mercato con dati e informazioni arricchiti da link e contenuti multimediali.<br />
Per seguire in tempo reale le <strong>news dal mondo del lavoro </strong>scarica l&#8217;<strong>applicazione</strong> <strong>CliComunica.</strong><br />
Versione Apple iPhone e iPad: <a title="CliComunica App del ministero del lavoro" href="https://itunes.apple.com/it/app/clicomunica/id582587332?mt=8">https://itunes.apple.com/it/app/clicomunica/id582587332?mt=8</a></p>
<p>Versione per <strong>Android:</strong> <a title="Android CliComunica del Ministero del Lavoro" href="https://play.google.com/store/search?q=clicomunica&amp;c=apps">https://play.google.com/store/search?q=clicomunica&amp;c=apps</a></p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/novaestetyc-magazine-realizzato-con-i3factory-editorial/' rel='bookmark' title='Novaestetyc Magazine realizzato con i3Factory Editorial'>Novaestetyc Magazine realizzato con i3Factory Editorial</a></li>
<li><a href='http://i3factory.com/it/come-realizzare-unapp-per-ipad-per-la-lettura-di-riviste-introduzione/' rel='bookmark' title='Come realizzare un&#8217;app per iPad per la lettura di riviste &#8211; Introduzione'>Come realizzare un&#8217;app per iPad per la lettura di riviste &#8211; Introduzione</a></li>
<li><a href='http://i3factory.com/it/pubblicare-riviste-giornali-magazine-su-ipad-con-i3factory-editorial/' rel='bookmark' title='Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial'>Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/clicomunica-il-ministero-del-lavoro-con-i3-editorial/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>iOS Dimensione e denominazione icone (Icon Sizes and Names) di iPhone e del new iPad</title>
		<link>http://i3factory.com/it/ios-dimensione-e-denominazione-icone-icon-sizes-and-names-di-iphone-e-del-new-ipad/</link>
		<comments>http://i3factory.com/it/ios-dimensione-e-denominazione-icone-icon-sizes-and-names-di-iphone-e-del-new-ipad/#comments</comments>
		<pubDate>Mon, 19 Nov 2012 09:43:43 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[App Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[designers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[Factory]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[icone]]></category>
		<category><![CDATA[icons]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iOs5]]></category>
		<category><![CDATA[iOS6]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPad3]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPhone 4]]></category>
		<category><![CDATA[iPhone 5]]></category>
		<category><![CDATA[iPhone5]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2100</guid>
		<description><![CDATA[<p>Spesso ci capita di dover aggiornare le nostre applicazioni con  le immagini ad alta risoluzione necessarie per il nuovo iPad (iPad 3 o iPad 4). Fortunatamente il nuovissimo iPad Mini ha mantenuto la stessa risoluzione del primo degli iPad che è di 1024x768 pixels.<br />
Poichè non è sempre semplice trovare i documenti ufficali di Apple , in questo articolo ho nuovamente raccolto tutte le informazioni di cui abbiamo bisogno per aggiornare le icone, le immagini intro, e così via.</p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/android-ios-smartphones-risluzione-e-dimesione-dello-schermo-device-screen-resolutions-and-sizes/' rel='bookmark' title='Android &amp; iOS Smartphones Risluzione e Dimesione dello schermo  (Device Screen Resolutions and Sizes)'>Android &#038; iOS Smartphones Risluzione e Dimesione dello schermo  (Device Screen Resolutions and Sizes)</a></li>
<li><a href='http://i3factory.com/it/dimensione-icone-android-licona-di-avvio-o-launcher-icon/' rel='bookmark' title='Dimensione icone Android: L&#8217;icona di avvio o launcher icon'>Dimensione icone Android: L&#8217;icona di avvio o launcher icon</a></li>
<li><a href='http://i3factory.com/it/icone-e-splash-per-applicazioni-iphone-iphone4-e-ipad/' rel='bookmark' title='Icone e splash per Applicazioni iPhone, iPhone4 e iPad'>Icone e splash per Applicazioni iPhone, iPhone4 e iPad</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p><a href="http://www.i3factory.com/wp-content/uploads/Dimensione_icon_iOS_iPhone_iPad_nomi_icone_thumbnail_size_grandezza.jpg"><img class="aligncenter size-full wp-image-2102" title="Dimensione_icon_iOS_iPhone_iPad_nomi_icone_thumbnail_size_grandezza" src="http://www.i3factory.com/wp-content/uploads/Dimensione_icon_iOS_iPhone_iPad_nomi_icone_thumbnail_size_grandezza.jpg" alt="" width="360" height="313" /></a></p>
<p>Spesso ci capita di dover aggiornare le nostre applicazioni con  le immagini ad alta risoluzione necessarie per il nuovo iPad (iPad 3 o iPad 4). Fortunatamente il nuovissimo iPad Mini ha mantenuto la stessa risoluzione del primo degli iPad che è di 1024 x 768 pixels.<br />
Poichè non è sempre semplice trovare i documenti ufficali di  Apple , in questo articolo ho nuovamente raccolto tutte le informazioni di cui abbiamo bisogno per aggiornare le icone, le immagini di intro o splash, e così via.</p>
<p>Innanzi tutto partiamo da questa utile tabella:</p>
<table width="100%" border="1" cellpadding="5">
<tbody>
<tr bgcolor="#CCCCCC">
<td>Device/Screen</td>
<td>File Name (PNG)</td>
<td>Icon Size (pixels)</td>
</tr>
<tr>
<td colspan="3"><strong>iPhone and iPod</strong></td>
</tr>
<tr>
<td>Application Icon for iPhone (retina display)</td>
<td>Icon@2x.png</td>
<td>114 x 114</td>
</tr>
<tr>
<td>Application Icon icon for iPhone</td>
<td>Icon.png</td>
<td>57 x 57</td>
</tr>
<tr>
<td>Settings/Spotlight icon for iPhone (retina display)</td>
<td>Icon-Small@2x.png</td>
<td>58 x 58</td>
</tr>
<tr>
<td>Settings/Spotlight icon for iPhone</td>
<td>Icon-Small.png</td>
<td>29 x 29</td>
</tr>
<tr>
<td>Launch image Portrait (retina display)</td>
<td>Default@2x.png</td>
<td>640 x 960</td>
</tr>
<tr>
<td>Launch image Portrait</td>
<td>Default.png</td>
<td>320 x 480</td>
</tr>
<tr>
<td colspan="3"><strong>iPhone 5<br />
</strong></td>
</tr>
<tr>
<td>Launch image for iPhone 5 Portrait (retina display)</td>
<td>Default-568h@2x.png</td>
<td>640 x 1136</td>
</tr>
<tr>
<td colspan="3"><strong>iPad</strong></td>
</tr>
<tr>
<td>Application Icon for the new iPad (retina display)</td>
<td>Icon-72@2x.png</td>
<td>144 x 144</td>
</tr>
<tr>
<td>Application Icon for the iPad</td>
<td>Icon-72.png</td>
<td>72 x 72</td>
</tr>
<tr>
<td>Settings/Spotlight icon for iPad</td>
<td>Icon-Small-50@2x.png</td>
<td>100 x 100</td>
</tr>
<tr>
<td>Settings/Spotlight icon for iPad</td>
<td>Icon-Small-50.png</td>
<td>50 x 50</td>
</tr>
<tr>
<td>Launch image Portrait (retina display)</td>
<td>Default-Portrait@2x.png</td>
<td>1536 x 2008</td>
</tr>
<tr>
<td>Launch image Portrait</td>
<td>Default-Portrait.png</td>
<td>768 x 1004</td>
</tr>
<tr>
<td>Launch image Landscape (retina display)</td>
<td>Default-Landscape@2x.png</td>
<td>2048 x 1496</td>
</tr>
<tr>
<td>Launch image Landscape</td>
<td>Default-Landscape.png</td>
<td>1024 x 748</td>
</tr>
<tr>
<td colspan="3"><strong>iTunes App Store</strong></td>
</tr>
<tr>
<td>App icon for the App Store (retina display)</td>
<td>iTunesArtwork@2x.png</td>
<td>1024 x 1024</td>
</tr>
<tr>
<td>App icon for the App Store</td>
<td>iTunesArtwork.png</td>
<td>512 x 512</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Ricordiamo che con il passaggio da iOS 5 a iOS 6 è nato il nuovo <strong>iPhone 5,</strong> insieme con<strong> l&#8217;iPod touch di 5 ° generazione</strong>.<br />
Questi nuovi dispositivi Apple hanno solo un grande cambiamento che aggravia il lavoro di sviluppo delle App: la risoluzione dello schermo.<br />
Questi dispositivi hanno un ampio schermo 4&#8243; , WDVGA (Wide VGA doppia) 640 × 1136 pixels, 326 DPI-Retina display.<br />
Questi dispositivi hanno la stessa larghezza 4/4S iPhone ma più 176 pixel di altezza in modalità Portrait.</p>
<p><strong>App Icon Template</strong></p>
<p>Segnalo nuovamente, come ho gia fatto in un&#8217;altro articolo, questo utilissimo tool scaricabile direttamente dal sito &#8220;<a title="link esterno a App icon template" href="http://appicontemplate.com/" target="_blank">appicontemplate.com</a>&#8221; .</p>
<p>Scaricando il file otterrete un modello PSD del&#8217; icona dell&#8217;App che, attraverso oggetti avanzati in Photoshop, vi permette di automatizzare il processo di esportazione delle varie dimensioni del file icon.png che devono essere necessariamente incluse nel <em>bundle</em> di ogni iOS App.</p>
<p>Attraverso questo modello Photoshop potremo modificare solo l&#8217;icona di dimensione più grande e verrà automaticamente eseguito il rendering che permetterà di avere le icone di dimensioni minori attraverso un veloce flusso di lavoro.<br />
Questo modello è stato creato dal designer danese <em>Michael Flarup</em>.</p>
<p><strong>Come si usa (How to) App Icon Template ?</strong><br />
Il modello funziona con Photoshop CS2 o versioni successive.<br />
Basta aprire il file PSD con la vostra versione di Photoshop e fare &#8220;clic destro&#8221; sul LAYER (Livello) chiamato &#8220;EDIT THIS SMART OBJECT&#8221; (MODIFICARE QUESTO OGGETTO SMART) e premere  su ’Edit Contents’ (&#8220;Modifica contenuto&#8221;).<br />
Verrà aperto il file Icon.psb e potrete creare il vostro Artwork  in questo <em>canvas</em> (quadro).<br />
Dopo aver salvato il Icon.psb, dovrebbe essere automaticamente eseguito il rendering per le diverse dimensioni del file PSD principale .<br />
E&#8217; possibile utilizzere le Actions (azioni automatizzate) di Photoshop che sono in bundle con la risorsa per esportare i file dell&#8217;icona nelle versioni <em>squared and rounded corne</em>r (squadrate e arrotondate).</p>
<p>Buon Design!</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/android-ios-smartphones-risluzione-e-dimesione-dello-schermo-device-screen-resolutions-and-sizes/' rel='bookmark' title='Android &amp; iOS Smartphones Risluzione e Dimesione dello schermo  (Device Screen Resolutions and Sizes)'>Android &#038; iOS Smartphones Risluzione e Dimesione dello schermo  (Device Screen Resolutions and Sizes)</a></li>
<li><a href='http://i3factory.com/it/dimensione-icone-android-licona-di-avvio-o-launcher-icon/' rel='bookmark' title='Dimensione icone Android: L&#8217;icona di avvio o launcher icon'>Dimensione icone Android: L&#8217;icona di avvio o launcher icon</a></li>
<li><a href='http://i3factory.com/it/icone-e-splash-per-applicazioni-iphone-iphone4-e-ipad/' rel='bookmark' title='Icone e splash per Applicazioni iPhone, iPhone4 e iPad'>Icone e splash per Applicazioni iPhone, iPhone4 e iPad</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/ios-dimensione-e-denominazione-icone-icon-sizes-and-names-di-iphone-e-del-new-ipad/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Android &amp; iOS Smartphones Risluzione e Dimesione dello schermo  (Device Screen Resolutions and Sizes)</title>
		<link>http://i3factory.com/it/android-ios-smartphones-risluzione-e-dimesione-dello-schermo-device-screen-resolutions-and-sizes/</link>
		<comments>http://i3factory.com/it/android-ios-smartphones-risluzione-e-dimesione-dello-schermo-device-screen-resolutions-and-sizes/#comments</comments>
		<pubDate>Fri, 16 Nov 2012 09:09:09 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[App Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[apple iphone]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[designers]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[Galaxi]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone 5]]></category>
		<category><![CDATA[iPhone5]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[resolution]]></category>
		<category><![CDATA[Retina display]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2096</guid>
		<description><![CDATA[<p>Considerando il dispositivo in orientamento verticale (Portrait), definiamo  l'asse X come  la larghezza in pixel e l'asse Y come lunghezza o l'altezza in pixel . Ovviamente si consideri che il dispositivo viene anche tenuto in orientamento orizzontale (Landscape) dato che anche Android ha il supporto per entrambi gli orientamenti.<br />
Si potrà notare che il numero totale di pixel di uno schermo corrisponde al numero dell'asse X moltiplicato per il numero in Y. Maggiore è il numero di pixel per ogni pollice (Dpi)  più nitida sarà la visualizzazione delle immagine (a condizione che tali immagini siano ad alta risoluzione).</p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/ottimizzazione-di-immagini-per-ios-image-optimization-on-ios-iphone-ipad/' rel='bookmark' title='Ottimizzazione di immagini per iOS, Image Optimization on iOS (iPhone, iPad)'>Ottimizzazione di immagini per iOS, Image Optimization on iOS (iPhone, iPad)</a></li>
<li><a href='http://i3factory.com/it/principi-di-design-in-un-prodotto-e-per-unapp-ios-e-android-iphone-ipad-android-app-design/' rel='bookmark' title='Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design'>Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design</a></li>
<li><a href='http://i3factory.com/it/dimensione-icone-android-licona-di-avvio-o-launcher-icon/' rel='bookmark' title='Dimensione icone Android: L&#8217;icona di avvio o launcher icon'>Dimensione icone Android: L&#8217;icona di avvio o launcher icon</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p><a href="http://www.i3factory.com/wp-content/uploads/Display_Comparison-Confronto_Schermi_Android_iOS_iPhone_iPAd_Tablet.jpg.jpg"><img class="aligncenter size-large wp-image-2097" title="Display_Comparison-Confronto_Schermi_Android_iOS_iPhone_iPAd_Tablet.jpg" src="http://www.i3factory.com/wp-content/uploads/Display_Comparison-Confronto_Schermi_Android_iOS_iPhone_iPAd_Tablet.jpg-1024x611.jpg" alt="" width="600" height="358" /></a></p>
<p>Prendendo spunto da  articoli trovati scorrendo diversi blogs, segnalo queste importanti informazioni utili a qualsiasi designer o sviluppatore che intenda disegnare UI (User Interface o Interfacce Utente) per differenti dispositivi smartphone.</p>
<p>Il successo di Android, come sistema operativo per dispositivi mobile, ha portato i produttori di smartphones a produrre una grande varietà di schermi (display) di diverse dimensioni  e risoluzioni. Nel Blog phonearena.com/ (<a href="http://www.phonearena.com/news/Display-Comparison-Apple-iPhone-5-vs-Samsung-Galaxy-S-III-vs-HTC-One-X-vs-Nokia-Lumia-900_id35171">http://www.phonearena.com/news/Display-Comparison-Apple-iPhone-5-vs-Samsung-Galaxy-S-III-vs-HTC-One-X-vs-Nokia-Lumia-900_id35171</a>) viene fornito un elenco di dispositivi di esempio.</p>
<p>Considerando il dispositivo in orientamento verticale (Portrait), definiamo  l&#8217;asse X come  la larghezza in pixel e l&#8217;asse Y come lunghezza o l&#8217;altezza in pixel. Ovviamente si consideri che il dispositivo viene anche tenuto in orientamento orizzontale (Landscape) dato che anche Android ha il supporto per entrambi gli orientamenti.<br />
Si potrà notare che il numero totale di pixel di uno schermo corrisponde al numero dell&#8217;asse X moltiplicato per il numero in Y. Maggiore è il numero di pixel per ogni pollice (Dpi)  più nitida sarà la visualizzazione delle immagine (a condizione che tali immagini siano ad alta risoluzione).</p>
<table border="1">
<caption><em>Esempio Android Screen Sizes and Resolutions</em></caption>
<tbody>
<tr>
<th># Pixels</th>
<th>X</th>
<th>Y</th>
<th>ACRONYM</th>
<th>Device Example 1</th>
<th>Size</th>
<th>Device Example 2</th>
<th>Size</th>
</tr>
<tr>
<td>76800</td>
<td>240</td>
<td>320</td>
<td>QVGA</td>
<td>ZTE Tureis</td>
<td>2.6</td>
<td>Samsung Galaxy Fit (GT-S5670 )</td>
<td>3.3</td>
</tr>
<tr>
<td>96000</td>
<td>240</td>
<td>400</td>
<td>WQVGA400</td>
<td>Samsung Galaxy Apollo</td>
<td>3.2</td>
<td>Archos 32 Internet Tablet</td>
<td>3.2</td>
</tr>
<tr>
<td>153600</td>
<td>320</td>
<td>480</td>
<td>HVGA</td>
<td>HTC ChaCha</td>
<td>2.6</td>
<td>HTC Explorer</td>
<td>3.2</td>
</tr>
<tr>
<td>230400</td>
<td>360</td>
<td>640</td>
<td>nHD</td>
<td>Dell Aero</td>
<td>3.5</td>
<td>Dell Mini 3ix</td>
<td>3.5</td>
</tr>
<tr>
<td>307200</td>
<td>480</td>
<td>640</td>
<td>VGA</td>
<td>Motorola Pro+ MB632</td>
<td>3.1</td>
<td>Motorola Admiral</td>
<td>3.1</td>
</tr>
<tr>
<td>384000</td>
<td>480</td>
<td>800</td>
<td>WVGA800</td>
<td>Google Nexus One</td>
<td>3.7</td>
<td>Dell Streak 7</td>
<td>7</td>
</tr>
<tr>
<td>409920</td>
<td>480</td>
<td>854</td>
<td>WVGA854</td>
<td>Sony Xperia Ray</td>
<td>3.3</td>
<td>Archos 43 Internet Tablet</td>
<td>4.3</td>
</tr>
<tr>
<td>480000</td>
<td>600</td>
<td>800</td>
<td>SVGA</td>
<td>Elonex eTouch 702ET</td>
<td>7</td>
<td>Pandigital SuperNova</td>
<td>8</td>
</tr>
<tr>
<td>491520</td>
<td>480</td>
<td>1024</td>
<td>UWVGA</td>
<td>Acer Iconia Smart S300</td>
<td>4.8</td>
<td>Sony Tablet P</td>
<td>5.5</td>
</tr>
<tr>
<td>518400</td>
<td>540</td>
<td>960</td>
<td>qHD</td>
<td>Motorola Atrix</td>
<td>4</td>
<td>HTC Vivid</td>
<td>4.5</td>
</tr>
<tr>
<td>614400</td>
<td>640</td>
<td>960</td>
<td>DVGA</td>
<td>Sharp IS03</td>
<td>3.5</td>
<td>iPhone 4S</td>
<td>3.5</td>
</tr>
<tr>
<td>614400</td>
<td>600</td>
<td>1024</td>
<td>WSVGA</td>
<td>Amazon Kindle Fire</td>
<td>7</td>
<td>Archos 101 Internet Tablet</td>
<td>10.1</td>
</tr>
<tr>
<td>786432</td>
<td>768</td>
<td>1024</td>
<td>XGA</td>
<td>Archos 80 G9</td>
<td>8</td>
<td>Malata T8</td>
<td>9.7</td>
</tr>
<tr>
<td>921600</td>
<td>720</td>
<td>1280</td>
<td>WXGA720, HD, 720p</td>
<td>Galaxy Nexus (GT-i9250)</td>
<td>4.6</td>
<td>Sony Xperia S</td>
<td>4.3</td>
</tr>
<tr>
<td>983040</td>
<td>768</td>
<td>1280</td>
<td>WXGA</td>
<td>Ramos W15</td>
<td>8</td>
<td>LG Optimus PAD (V900)</td>
<td>8.9</td>
</tr>
<tr>
<td>1024000</td>
<td>800</td>
<td>1280</td>
<td>WXGA800</td>
<td>Samsung Galaxy Note (GT-N7000)</td>
<td>5.3</td>
<td>Motorola Xoom 2</td>
<td>10.1</td>
</tr>
</tbody>
</table>
<p>L&#8217;iPhone 4S è indicato nella tabella per confronto, vedere la linea DVGA, non è un telefono Android.<br />
Nota: a Full High Definition (FHD) o lo schermo 1080i/1080p è 1080 × 1920 che è 2.073.600 pixel.</p>
<p><a href="http://www.i3factory.com/wp-content/uploads/Display_Comparison_Screen_Apple-iPhone_Samsung-Galaxy_S3_HTC-OneX-One_X_Nopkia-Lumia-900.jpg"><img class="aligncenter size-full wp-image-2098" title="Display_Comparison_Screen_Apple-iPhone_Samsung-Galaxy_S3_HTC-OneX-One_X_Nopkia-Lumia-900" src="http://www.i3factory.com/wp-content/uploads/Display_Comparison_Screen_Apple-iPhone_Samsung-Galaxy_S3_HTC-OneX-One_X_Nopkia-Lumia-900.jpg" alt="" width="680" height="510" /></a></p>
<p>Stimolato dal blog <em>Tekeye.biz</em> (http://tekeye.biz/2012/example-list-of-android-device-screen-resolutions-and-sizes) andrò ora a confrontare lo schermo HD da 4,8 pollici Super AMOLED del Samsung Galaxy S III, il display 4,7 pollici 720p Super-LCD 2  su HTC One X, e lo schermo del Lumia 900 con is suoi 4,3 pollici ClearBlack AMOLED che viene ostentato dalla Nokia.</p>
<p>Come per ogni confronto di dispositivi elettronici ciò che veramente conta non sono solo le specifiche hardware , ma bisogna vedere come questi telefoni se la cavano in situazioni reali, in quanto si sa, questo è esattamente ciò che più conta.</p>
<p>Vediamo quindi come se la cavano in termini di <strong>Luminosità e contrasto</strong> (Brightness and Contrast):</p>
<p>Non c&#8217;è niente di meglio per attirare la gente che avere un display luminoso, giusto? John V. di Tekeye ha quindi impostato manualmente tutti e quattro gli smartphone per la loro impostazione di luminosità più alta. I nuovi iPhone 5 di IPS-LCD schermo salta subito all&#8217;occhio per  avere la più alta luminosità,   il vantaggio è che quindi siamo in grado di avere visibile tutto sul display dell&#8217;iPhone 5 quando lo si utilizza all&#8217;aperto &#8211; anche quando il sole batte direttamente sulo schermo. Inoltre, il pannello Super-LCD 2  in uso da parte del HTC One X mostra il suo valore, in quanto si tratta di un pannello con un cuore LCD che dimostra bene il suo valore in condizioni esterne. Infine, il Samsung Galaxy S III e Nokia Lumia 900 sono allo stesso livello in termini di visibilità esterna, in quanto i rispettivi pannelli HD Super AMOLED e ClearBlack AMOLED sono così efficaci che ci permettono di vedere correttamente quando siamo fuor, ma allo stesso tempo, il calo di contrasto, inclinando leggermente provoca riflessi che interferiscono con la loro usabilità.</p>
<p><strong>Risoluzione:</strong></p>
<p>Leggendo sul foglio delle specifiche, si potrebbe supporre che i due smartphone Android  in questo confronto abbiano  la vittoria visto che hanno una  risoluzione di 720p, ma ancora una volta, ciò che si legge sulla carta e non tiene conto di densità di pixel. Tuttavia, se non dovessimo tenerne conto, allora  l&#8217;iPhone 5 dovrebbe essere preso in considerazione con la sua densità di pixel di 326 ppi. Tuttavia, prima di concretamente dire che è il vincitore all&#8217;unanimità, gli occhi hanno bisogno di confermare ciò che sembra ovvio.</p>
<p>Caricando il  sito web su tutti e quattro gli smartphone e, guardandoli, da una view ingrandita, è innegabile che la  risoluzione 640 x 1136  dell&#8217; iPhone 5  presenta invisualizzazione dettagli più nitidi. In realtà, il testo sullo schermo ha spigoli vivi che aiutano a rafforzare le sue immagini nitide per renderli facilmente visibili ad occhio nudo. Allo stesso tempo, l&#8217;HTC One X da 4.7-pollici e 720p può visualizzare  immagini interessanti &#8211; però, la visualizzazione è un po &#8216;po&#8217; più morbida, cercando intorno ai bordi, in parte a causa della sua densità di pixel inferiore che è di 312 ppi. Al terzo posto, è la  risoluzione del Samsung Galaxy S III da 4,8 pollici con 720 x 1280 px che impiega la PenTile Matrix. Indipendentemente da questo, la sua carenza non pregiudica l&#8217;aspetto dei  dettagli guardando il suo display da una distanza normale. E, infine, il Lumia Nokia 900 non riesce a stupire con il suo display da 4,3 pollici WVGA (480 x 800), come la sua risoluzione in pixel di 217  ppi si allontana  drasticamente dalla concorrenza, con conseguente immagini che mancano della stessa nitidezza dei concorrenti.</p>
<p>&nbsp;</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/ottimizzazione-di-immagini-per-ios-image-optimization-on-ios-iphone-ipad/' rel='bookmark' title='Ottimizzazione di immagini per iOS, Image Optimization on iOS (iPhone, iPad)'>Ottimizzazione di immagini per iOS, Image Optimization on iOS (iPhone, iPad)</a></li>
<li><a href='http://i3factory.com/it/principi-di-design-in-un-prodotto-e-per-unapp-ios-e-android-iphone-ipad-android-app-design/' rel='bookmark' title='Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design'>Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design</a></li>
<li><a href='http://i3factory.com/it/dimensione-icone-android-licona-di-avvio-o-launcher-icon/' rel='bookmark' title='Dimensione icone Android: L&#8217;icona di avvio o launcher icon'>Dimensione icone Android: L&#8217;icona di avvio o launcher icon</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/android-ios-smartphones-risluzione-e-dimesione-dello-schermo-device-screen-resolutions-and-sizes/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Produzioni cinematografiche in App Store, film per giocare con iPhone &amp; iPad</title>
		<link>http://i3factory.com/it/produzioni-cinematografiche-in-app-store-fim-per-giocare-con-iphone-ipad/</link>
		<comments>http://i3factory.com/it/produzioni-cinematografiche-in-app-store-fim-per-giocare-con-iphone-ipad/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 19:21:20 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[AV Foundation]]></category>
		<category><![CDATA[Cinema]]></category>
		<category><![CDATA[Fil]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iOs5]]></category>
		<category><![CDATA[iOS6]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPad3]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPhone 4]]></category>
		<category><![CDATA[iPhone5]]></category>
		<category><![CDATA[Movie]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2085</guid>
		<description><![CDATA[<p>Si potrebbe pensare che la gestione video sia limitata ad applicazioni come iMovie o Vimeo e a una nicchia di esperti video. Invece può essere esteso ad una gamma più ampia di applicazioni, non è essenzialmente limitato a editing video. In questo articolo forniremo una panoramica del Framework AV Foundation applicato su un esempio pratico.</p>
<p>Nel nostro caso particolare, la sfida era quella di creare un'applicazione che, partendo da una serie di clip video esistenti, fosse stata in grado di costruire una storia fatta collegando un sottoinsieme di queste clip sulla base di decisioni prese dall'utente durante l'interazione con l'applicazione.<br />
Il gioco finale è un insieme di scene, girato in luoghi diversi, che compongono una storia.</p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/principi-di-design-in-un-prodotto-e-per-unapp-ios-e-android-iphone-ipad-android-app-design/' rel='bookmark' title='Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design'>Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design</a></li>
<li><a href='http://i3factory.com/it/pubblicare-riviste-giornali-magazine-su-ipad-con-i3factory-editorial/' rel='bookmark' title='Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial'>Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial</a></li>
<li><a href='http://i3factory.com/it/modena-camera-di-commercio-con-i3factory-su-app-store/' rel='bookmark' title='made in Modena: Camera di Commercio con i3Factory su App Store'>made in Modena: Camera di Commercio con i3Factory su App Store</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p><a href="http://www.i3factory.com/wp-content/uploads/imovie_movie_game_for_iphone_ipad.png"><img class="aligncenter size-full wp-image-2086" title="imovie_movie_game_for_iphone_ipad" src="http://www.i3factory.com/wp-content/uploads/imovie_movie_game_for_iphone_ipad.png" alt="" width="400" height="400" /></a></p>
<p><strong>Perché parliamo di Produzioni video cenematografiche</strong></p>
<p>Si potrebbe pensare che la gestione video sia limitata ad applicazioni come iMovie o Vimeo e a una nicchia di esperti video. Invece può essere esteso ad una gamma più ampia di applicazioni, non è essenzialmente limitato a editing video. In questo articolo forniremo una panoramica del Framework AV Foundation applicato su un esempio pratico.</p>
<p>Nel nostro caso particolare, la sfida era quella di creare un&#8217;applicazione che, partendo da una serie di clip video esistenti, fosse stata in grado di costruire una storia fatta collegando un sottoinsieme di queste clip sulla base di decisioni prese dall&#8217;utente durante l&#8217;interazione con l&#8217;applicazione.<br />
Il gioco finale è un insieme di scene, girato in luoghi diversi, che compongono una storia. Ogni scena è composto da un prologo, una conclusione (epilogo) e una serie di piccole clip che verranno eseguite dall&#8217;applicazione sulla base di alcune scelte fatte dagli spettatori &#8211; utenti- giocatori.  Se le scelte sono corrette, lo spettatore sarà in grado di riprodurre tutta la scena fino al suo lieto fine, ma in caso di errore dovrà tornare sulla scena prologo iniziale o in una certa scena intermedia. Lo schema seguente mostra un possibile schema di una tipica scena: un prologo, un flusso vincente (verde) alcuni rami (giallo sono intermedie, il rosso stanno perdendo filiali) e di un lieto fine. Così gli spettatori da qualche parte nel TRACK1 saranno chiamati a prendere una decisione, se lui / lei è in quel momento in gioco continuerà con TRACK2, se non entrerà nel giallo Track4, e così via</p>
<p>&nbsp;</p>
<p><a href="http://world.i3factory.com/wp-content/uploads/2012/11/iPhone_iPad_movie_game_storyboard.png"><img title="iPhone_iPad_movie_game_storyboard" src="http://world.i3factory.com/wp-content/uploads/2012/11/iPhone_iPad_movie_game_storyboard.png" alt="iPhone &amp; iPad: Movie Game Storyboard" width="602" height="301" /></a><br />
Quello che abbiamo tra le mani è la serie completa di tracce, ogni traccia rappresenta una sottosezione specifica di una scena, e uno <strong>storyboard</strong> che ci fornisce le regole da seguire per costruire la storia finale. Così lo storyboard è fatto dalle scene, dalle tracce del compongono ogni scena e dalle norme che stabiliscono il flusso attraverso queste tracce.<br />
La sfida principale per lo sviluppatore è quello di mettere insieme queste clip e riprodurre un video in base allo stato attuale dello storyboard, quindi passare alla successiva, selezionare un nuovo clip di nuovo e così via: tutto deve trascorrere fluidamente senza interruzioni.<br />
<strong>Lo spettatore deve prendere le decisioni</strong>, interagendo con l&#8217;applicazione-gioco e questo può essere fatto sovrapponendo al film con alcuni controlli personalizzati.</p>
<h3>AV Foundation Framework</h3>
<p>Sarebbe impossible raggiungere gli obiettivi spiegati nel paragrafo precedente utilizziando lo <em>standard</em> <em>Media Framework view controllers</em>, <em>MPMoviePlayerController</em> e <em>MPMoviePlayerViewController</em>. Questi conrollers sono buoni per riprodurre un filmato e fornire i controlli di sistema, a schermo intero e la rotazione del dispositivo di sostegno, ma assolutamente non adatti per i controlli avanzati.<br />
Dopo il rilascio di iPhone 3GS dell&#8217;utility per la fotocomara avevamo la possibilità di fare un po &#8216;di tagli e l&#8217;esportazione, ma queste capacità non sono state date agli sviluppatori attraverso le funzioni pubbliche del SDK. Con l&#8217;introduzione di iOS 4, l&#8217;attività svolta da Apple con lo sviluppo delle app iMovie ha dato agli sviluppatori un ricco insieme di classi che consentono la manipolazione completa dei video . Tutte queste classi sono state raccolte ed esportate in un unico framework pubblico, denominato <em>AV Foundation</em>. Questo framework esiste da iOS 2.2, a quel tempo era dedicato alla gestione audio con la ben nota classe <em>AVAudioPlayer</em>, poi è stato esteso in iOS 3 con il <em>AVAudioRecorder</em> e le classi <em>AVAudioSession</em> ma il set completo di funzionalità che consentono capacità video avanzate ha avuto luogo solo a partire dal iOS 4 e sono stati pienamente presentati al WWDC 2010.</p>
<p>La posizione della <em>AV Foundation</em> nello<em> </em>iOS Frameworks stack si trova  sotto UIKit, dietro l&#8217;application layer, e immediatamente sopra i <em>basic Core Services frameworks</em>, in particolare <em>Core Media</em> che viene utilizzato da <em>AV Foundation</em> per importare strutture di temporizzazione e le funzioni necessarie per la gestione dei media . In ogni caso si può notare la diversa posizione nello stack rispetto Media Player di alto livello. Ciò significa che questo tipo di struttura non è in grado di offrire una classe plug-and-play  per la riproduzione di semplici video , ma si potranno apprezzare i moderni concetti di alto livello che sono alla base di questo framework, di sicuro non siamo allo stesso livello dei vecchi framework come <em>core Audio</em>.</p>
<p>&nbsp;</p>
<div style="text-align: center;"><a href="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-av_foundation_stack.png"><img class="aligncenter" title="iOS-av_foundation_stack" src="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-av_foundation_stack.png" alt="" width="504" height="207" /></a> <small>(image source: from Apple iOS Developer Library)</small></div>
<h3>Building blocks</h3>
<p>L&#8217;organizzazione dele classi di AV Fondation è abbastanza intuitiva. Il punto di partenza e il <em>building block </em>principale è data da <em>AVAsset</em>. AVAsset rappresenta un oggetto statico multimediale ed è essenzialmente un aggregato di tracce che sono rappresentazioni temporizzate  di una parte de media. Tutti i brani sono di tipo uniforme, in modo che possiamo avere tracce audio, tracce video, tracce sottotitoli, e un complesso di attività può essere fatto di più tracce dello stesso tipo, ad esempio siamo in grado di avere più tracce audio. Nella maggior parte dei casi un asset è fatto di un audio e una traccia video. Si noti che AVAsset è una classe astratta per cui è indipendente dalla rappresentazione fisica dei media che rappresenta, inoltre la creazione di un&#8217;istanza AVAsset non significa che noi abbiamo tutti i media pronti per essere riprodotti, si tratta di un puro oggetto astratto.</p>
<p><a href="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-av_asset_blocks.png"><img class="aligncenter" title="iOS-av_asset_blocks" src="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-av_asset_blocks.png" alt="" width="333" height="268" /></a><br />
Ci sono due classi di attività disponibili: <strong>AVURLAsset</strong>, per rappresentare un supporto in un file locale o in rete, e <strong>AVComposition</strong> (insieme con la sua variante mutevole <strong>AVMutableComposition</strong> ) per un&#8217;attività composta da più supporti. Per creare una risorsa da un file abbiamo bisogno di fornire l&#8217;URL del file:</p>
<p><span style="color: #993300;">NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:AVURLAssetPreferPreciseDurationAndTimingKey];</span><br />
<span style="color: #993300;"> AVURLAsset *myAsset = [AVURLAsset URLAssetWithURL:assetURL options:optionsDictionary];</span></p>
<p>L&#8217; options dictionary poò risultare nullo ma per i nostri scopi &#8211; per fare una composizione film &#8211; abbiamo bisogno di calcolare la durata esatta e fornire l&#8217;accesso casuale ai media. Questa opzione extra, che è l&#8217;impostazione su YES della chiave <em>AVURLAssetPreferPreciseDurationAndTimingKey</em>, potrebbe richiedere più tempo durante l&#8217;inizializzazione delle attività, e questo dipende dal formato di film. Se questo film è in QuickTime o MPEG-4, il file contiene informazioni aggiuntive che in sintesi annulla il tempo in più, ma ci sono in altri formati, come MP3, in cui queste informazioni possono essere estratte solo dopo la decodifica del media file, in tal caso l&#8217;inizializzazione del tempo non è trascurabile. Si tratta di una prima raccomandazione che diamo agli sviluppatori: si prega di utilizzare il formato del file a seconda dell&#8217;applicazione.<br />
Nella nostra applicazione dobbiamo già conoscere le caratteristiche dei film che stiamo usando, ma in un diverso tipo di applicazione, in cui è necessario fare un po &#8216;di editing dei filmati, si può essere interessati a ispezionare le proprietà delle risorse. In tal caso si deve ricordare la regola di base che l&#8217;inizializzazione di un asset non significa aver caricato e decodificato in memoria: questo significa che ogni proprietà del file multimediale può essere ispezionata, ma questo potrebbe richiedere un poco di tempo in più. Per completezza abbiamo semplicemente introdotto il modo <em>asset inspection</em> che può essere fatto lasciando l&#8217;utente interessato alla documentazione di riferimento (vedere l&#8217;elenco proposto letture alla fine di questo post). Fondamentalmente ogni proprietà dell&#8217;attività può essere verificata utilizzando un protocollo asincrono chiamato <em>AVAsynchronousKeyValueLoadingwhich</em> che definisce due metodi:</p>
<p><span style="color: #993300;">- (AVKeyValueStatus)statusOfValueForKey:(NSString *)key error:(NSError **)outError</span><br />
<span style="color: #993300;"> &#8211; (void)loadValuesAsynchronouslyForKeys:(NSArray *)keys completionHandler:(void (^)(void))handle</span>r</p>
<p>Il primo metodo è sincrono e restituisce immediatamente lo stato di conoscenza del valore specificato. Ad esempio si può chiedere lo status di &#8220;durata&#8221; e il metodo restituisce uno di questi stati possibili: carico, carico, fallito, sconosciuto, annullato. Nel primo caso il valore di chiave è noto e quindi il valore può essere immediatamente recuperato. Nel caso in cui il valore è ignoto è opportuno richiamare le <em>loadValuesAsynchronouslyForKeys:completionHandler:</em> metodo che alla fine dell&#8217;operazione chiamerà il callback dato nel <em>completionHandlerblock</em>, che a sua volta interroga lo stato di nuovo per l&#8217;azione appropriata.</p>
<h3>Video composition</h3>
<p>Come abbiam detto all&#8217;inizio, il nostro <strong>storyboard</strong> è composto da una serie di scene e ogni scena è composta da diverse clip il cui ordine di riproduzione non è nota a priori. Ogni scena si comporta indipendentemente dalle altre in modo da creare una composizione per ogni scena. Quando abbiamo un insieme di attività, o tracce, e da loro si costruisce una composizione nel complesso stiamo creando un altro asset. Questo è il motivo per cui le classi <em>AVComposition</em> e <em>AVMutableComposition</em> sono sottoclassi della classe <em> AVAsset base.</em><br />
È possibile aggiungere contenuti multimediali all&#8217;interno di una composizione mutevole, semplicemente selezionando un segmento di un bene, e l&#8217;aggiunta di una gamma specifica di nuova composizione:</p>
<p><span style="color: #993300;">- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofAsset:(AVAsset *)asset atTime:(CMTime)startTime error:(NSError **)outError</span></p>
<p>Nel nostro esempio abbiamo una serie di tracce che si desidera aggiungere una dopo l&#8217;altra per generare un insieme continuo di clip. Così il codice può essere semplicemente scritto in questo modo:</p>
<p><span style="color: #993300;">AVMutableComposition = [AVMutableComposition composition];</span><br />
<span style="color: #993300;"> CMTime current = kCMTimeZero;</span><br />
<span style="color: #993300;"> NSError *compositionError = nil;</span><br />
<span style="color: #993300;"> for(AVAsset *asset in listOfMovies) {</span><br />
<span style="color: #993300;"> BOOL result = [composition insertTimeRange:CMTimeRangeMake(kCMTimeZero, [asset duration])</span><br />
<span style="color: #993300;"> ofAsset:asset</span><br />
<span style="color: #993300;"> atTime:current</span><br />
<span style="color: #993300;"> error:&amp;compositionError];</span><br />
<span style="color: #993300;"> if(!result) {</span><br />
<span style="color: #993300;"> if(compositionError) {</span><br />
<span style="color: #993300;"> // manage the composition error case</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> } else {</span><br />
<span style="color: #993300;"> current = CMTimeAdd(current, [asset duration]);</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> }</span></p>
<p>Prima di tutto abbiamo introdotto il concetto di tempo. Si noti che tutti i media hanno un concetto di tempo diverso dal solito. Prima di tutto il tempo può muoversi avanti e indietro, oltre il lasso di tempo può essere superiore o inferiore a 1x se si sta visionndo il filmato al rallentatore o in avanzamento rapido. Inoltre si ritiene più conveniente  rappresentare il tempo non come virgola mobile o un numero intero, ma come numeri razionali. Per tale ragioneil framework  <em>Core Media</em>  fornisce la <strong>CMTimestructure</strong> e un insieme di funzioni e macro che semplificano la manipolazione di queste strutture. Quindi, al fine di costruire una specifica istanza <em>time instance</em>:</p>
<pre><span style="color: #993300;"><code>CMTime myTime = CMTimeMake(value,timescale);</code></span></pre>
<p>che infatti specifica un numero di secondi proposto dal value/timescale. La ragione principale di questa scelta è che i film sono fatti di <em>frames</em> e i fotogrammi sono dati ad una razione fissa al secondo. Così, per esempio, se abbiamo una clip che è stata ripresa a 25 fps, allora sarebbe conveniente per rappresentare l&#8217;intervallo singolo fotogramma come un insieme variabile CMTime con valore = 1 e tempi = 25, corrispondente a 1/25th di secondo. 1 secondo  è dato da un CMTime con valore = 25 e timescale = 25, e così via (ovviamente si può ancora lavorare con i secondi, se volete, è sufficiente utilizzare i CMTimeMakeWithSeconds (seconds) function). Quindi, il codice di cui sopra inizialmente imposta l&#8217;ora corrente a 0 secondi (kCMTimeZero) quindi avvia l&#8217;iterazione su tutti i nostri film che sono assets in. Poi si aggiunge ciascuna di questi asset nella posizione corrente della nostra composizione con la loro gamma completa ([asset duration]). Per ogni asset spostiamo la composition head (current) per la lunghezza (in CMTime) dell&#8217;asset. A questo punto la composizione è fatta di un set completo di brani aggiunti in sequenza. Ora possiamo giocare.</p>
<h3>Playing an asset</h3>
<p>Il framework AVFoundation non offre alcuna player integrato, come siamo abituati a vedere con <em>MPMovieViewController</em>. Il motore che gestisce lo stato di riproduzione di un asset è fornito dalla classe <em>AVPlayer</em>. Questa classe si occupa di tutti gli aspetti relativi al play dell&#8217;asset ed essenzialmente è l&#8217;unica classe in AV Foundation che interagisce con i controller di visualizzazione dell&#8217;applicazione per mantenere in sincronia la logica dell&#8217;applicazione con lo stato di riproduzione: questo è rilevante per il tipo di applicazione che stiamo prendendo in considerazione in questo esempio, come lo stato di riproduzione può cambiare durante l&#8217;esecuzione del filmato base alle specifiche interazioni dell&#8217;utente  in momenti specifici all&#8217;interno del film. Tuttavia non abbiamo una relazione diretta tra <em>AVAsset</em> e <em>AVPlayer</em>, la loro connessione è mediata da un&#8217;altra classe denominata <em>AVPlayerItem</em>.<a href="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-av_player_blocks.png"><img class="aligncenter" title="iOS-av_player_blocks" src="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-av_player_blocks.png" alt="" width="869" height="306" /></a> Questa organizzazione delle classi ha lo scopo di separarel&#8217;asset, considerato come un&#8217;entità statica, dal player, puramente dinamico, fornendo un oggetto intermedio, che rappresenta uno stato specifico di presentazione di un asset. Ciò significa che per un determinat e unicoo asset  possiamo associare elementi di più players, tutti  rappresentano diversi stati dello stesso asset e eseguito da diversi players. Quindi, il flusso in questo caso è dato da un determinato asset che crea un elemento di player e poi lo assegna al pleyer finale.</p>
<p><span style="color: #993300;">AVPlayerItem *compositionPlayerItem = [AVPlayerItem playerItemWithAsset:composition];</span><br />
<span style="color: #993300;"> AVPlayer *compositionPlayer = [AVPlayer playerWithPlayerItem:compositionPlayerItem];</span></p>
<p>&nbsp;</p>
<p>Al fine di eseguire il rendering sullo schermo, dobbiamo fornire una view in grado di rendere lo stato attuale di player. Abbiamo già detto che iOS non offre on-the-shelf una vista per questo scopo, ma quello che offre è un livello speciale <em>CoreAnimation</em> chiamato <em>AVPlayerLayer</em>. Quindi è possibile inserire questo livello nella gerarchia a livello di Anteprima del player o, come nel seguente esempio, utilizziamo questo come livello di base per questa <em>view</em>. Quindi, l&#8217;approccio suggerito in tal caso è quello di creare un <em>MovieViewer</em> personalizzato e il  set AVPlayerLayeras base layer class:</p>
<p><span style="color: #993300;">// MovieViewer.h</span></p>
<p><span style="color: #993300;">#import &lt;UIKit/UIKit.h&gt;</span><br />
<span style="color: #993300;"> #import &lt;AVFoundation/AVFoundation.h&gt;</span><br />
<span style="color: #993300;"> @interface MovieViewer : UIView {</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> @property (nonatomic, retain) AVPlayer *player;</span><br />
<span style="color: #993300;"> @end</span></p>
<p><span style="color: #993300;">// MovieViewer.m</span></p>
<p><span style="color: #993300;">@implementation MovieViewer</span><br />
<span style="color: #993300;"> + (Class)layerClass {</span><br />
<span style="color: #993300;"> return [AVPlayerLayer class];</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> &#8211; (AVPlayer*)player {</span><br />
<span style="color: #993300;"> return [(AVPlayerLayer *)[self layer] player];</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> &#8211; (void)setPlayer:(AVPlayer *)player {</span><br />
<span style="color: #993300;"> [(AVPlayerLayer *)[self layer] setPlayer:player];</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> @end</span></p>
<p><span style="color: #993300;">// Intantiating MovieViewer in the scene view controller</span><br />
<span style="color: #993300;"> // We suppose “viewer” has been loaded from a nib file</span><br />
<span style="color: #993300;"> // MovieViewer *viewer</span><br />
<span style="color: #993300;"> [viewer setPlayer:compositionPlayer];</span></p>
<p>A questo punto siamo in grado di riprodurre il filmato, che è abbastanza semplice:</p>
<div>
<pre><span style="color: #993300;"><code>[[view player] play];</code></span></pre>
</div>
<div><strong>Osservando il <em>playback status</em></strong></div>
<div>
<p>È rilevante per la nostra applicazione  monitorare lo stato della riproduzione e osservare alcuni particolari eventi temporizzati  durante la riproduzione.<br />
Per quanto riguarda il monitoraggio dello stato, si seguirà l&#8217;approccio standard basato KVO osservando i cambiamenti nella proprietà dello stato del player:</p>
<p><span style="color: #993300;">// inside the SceneViewController.m class we’ll register to player status changes</span><br />
<span style="color: #993300;"> [viewer.player addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:NULL];</span></p>
<p><span style="color: #993300;">// and then we implement the observation callback</span><br />
<span style="color: #993300;"> -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {</span><br />
<span style="color: #993300;"> if(object==viewer.player) {</span><br />
<span style="color: #993300;"> AVPlayer *player = (AVPlayer *)object;</span><br />
<span style="color: #993300;"> if(player.status==AVPlayerStatusFailed) {</span><br />
<span style="color: #993300;"> // manage failure</span><br />
<span style="color: #993300;"> } else if(playe.status==AVPlayerStatusReadyToPlay) {</span><br />
<span style="color: #993300;"> // player ready: manage success state (e.g. by playing the movie)</span><br />
<span style="color: #993300;"> } else if(player.status==AVPlayerStatusUnknown) {</span><br />
<span style="color: #993300;"> // the player is still not ready: manage this waiting status</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> }</span><br />
<span style="color: #993300;"> }</span></p>
<p>Diversamente dalle KVO-observable properties l&#8217; osservazione di eventi  non è basata su KVO: la ragione di questo è che la <em>player head </em>si muove continuamente e solitamente la riproduzione viene effettuata su un thread dedicato. Quindi il sistema preferisce certamente  inviare notifiche suoi attraverso un canale dedicato, che in questo caso consiste in un <em>block-based callback</em> che possiamo registrare per monitorare tali eventi. Ci sono due modi per osservare eventi programmati:</p>
<ul>
<li>registering for periodic intervals notifications</li>
<li>registering when particular times are traversed</li>
</ul>
<p>In entrambi i metodi l&#8217;utente sarà in grado di specificare una <em>serial queue</em> in cui i richiami saranno spediti (e il default è la coda principale) e, naturalmente, il blocco callblack. E &#8216;importante notare il comportamento della serial queue: ciò significa che tutti gli eventi verranno messi in coda ed eseguiti uno dopo l&#8217;altro, per gli eventi frequenti è necessario assicurarsi che questi blocchi sono eseguiti abbastanza velocemente da permettere alla coda si elaborare i blocchi successivi, e questo è particolarmente vero se si sta eseguendo il blocco nel thread principale, al fine di evitare all&#8217;applicazione di non rispondere. Non dimenticate di programmare questo blocco da eseguire nel thread principale se si aggiorna l&#8217;interfaccia utente.<br />
La registrazione ad intervalli periodici è fatta in questo modo, dove chiediamo un callback 1 secondo il cui scopo principale sarà quello di aggiornare l&#8217;interfaccia utente (in genere l&#8217;aggiornamento di un barra di avanzamento e il tempo di riproduzione corrente):</p>
<p><span style="color: #993300;">// somewhere inside SceneController.m</span><br />
<span style="color: #993300;"> id periodicObserver = [viewer.player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(1.0) queue:NULL usingBlock:^(CMTime time){</span><br />
<span style="color: #993300;"> [viewer updateUI];</span><br />
<span style="color: #993300;"> }];</span><br />
<span style="color: #993300;"> [periodicObserver retain];</span></p>
<p><span style="color: #993300;">// and in the clean up method</span><br />
<span style="color: #993300;"> -(void)cleanUp {</span><br />
<span style="color: #993300;"> [viewer.player removeTimeObserver:periodicObserver];</span><br />
<span style="color: #993300;"> [periodicObserver release];</span><br />
<span style="color: #993300;"> }</span></p>
<p><span style="color: #993300;">// inside MovieViewer.m</span><br />
<span style="color: #993300;"> -(void)updateUI {</span><br />
<span style="color: #993300;"> // do other stuff here</span><br />
<span style="color: #993300;"> // …</span><br />
<span style="color: #993300;"> // we calculate the playback progress ratio by dividing current position of playhead into the total movie duration</span><br />
<span style="color: #993300;"> float progress = CMTimeGetSeconds(player.currentTime)/CMTimeGetSeconds(player.currentItem.duration);</span><br />
<span style="color: #993300;"> // then we update the movie viewer progress bar</span><br />
<span style="color: #993300;"> [progressBar setProgress:progress];</span><br />
<span style="color: #993300;"> }</span></p>
<p>&nbsp;</p>
<p>LA eegistrazione agli <em> timed events</em> viene fatta usando un metodo simile che prende come argomento una lista di rappresentazioni NSValue di CMTime (AVFoundation fornisce una categoria NSValue che aggiunge il supporto a CMTime NSValue):</p>
</div>
<div><span style="color: #993300;">// somewhere inside SceneController.m</span><br />
<span style="color: #993300;"> id boundaryObserver = [viewer.player addBoundaryTimeObserverForTimes:timedEvents queue:NULL usingBlock:^{</span><br />
<span style="color: #993300;"> [viewer processTimedEvent];</span><br />
<span style="color: #993300;"> }];</span><br />
<span style="color: #993300;"> [boundaryObserver retain];// inside MovieViewer.m</span><br />
<span style="color: #993300;"> -(void)processTimedEvent {</span><br />
<span style="color: #993300;"> // do something in the UI</span><br />
<span style="color: #993300;"> }</span></div>
<div><span style="color: #993300;">In both cases we need to unregister and deallocate somewhere in our scene controller the two observer opaque objects; we may suppose the existence of a cleanup method that will be assigned this task:</span></div>
<div><span style="color: #993300;">-(void)cleanUp {</span><br />
<span style="color: #993300;"> [viewer.player removeTimeObserver:periodicObserver];</span><br />
<span style="color: #993300;"> [periodicObserver release];</span><br />
<span style="color: #993300;"> [viewer.player removeTimeObserver:boundaryObserver];</span><br />
<span style="color: #993300;"> [boundaryObserver release];</span><br />
<span style="color: #993300;"> }</span></div>
<div>
<p>Anche se questo codice è il modo generale di chiamare un evento, nella nostra applicazione è più opportuno assegnare ad ogni evento una specifica azione,  abbiamo bisogno di personalizzare ogni blocco di comunicazione. Guardando l&#8217;immagine qui sotto, si può vedere che a specifici intervalli di tempo all&#8217;interno di ciascuna delle nostre clip abbiamo assegnato un evento specifico.</p>
<p><a href="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-iPhone-iPad-movie_game_timed_events.png"><img title="iOS-iPhone-iPad-movie_game_timed_events" src="http://world.i3factory.com/wp-content/uploads/2012/11/iOS-iPhone-iPad-movie_game_timed_events.png" alt="" width="743" height="221" /></a><br />
La figura è piuttosto complesso e non tutte le relazioni sono state evidenziate. Essenzialmente quello che potete vedere è la sequenza  &#8220;vincente&#8221; in tutti i blocchi verdi: sono stati posizionati in modo consecutivo, al fine di evitare il salto dell&#8217;indicatore di riproduzione sei diversi segmenti in cui il giocatore prende le decisioni giuste, in modo che la riproduzione continua senza interruzioni e sarà liscio. Con l&#8217;eccezione della traccia prologo, che è solo un prologo della storia e nessuna interazione con l&#8217;utente è richiesta in questa fase, ed è la conclusione corrispondente, semplicemente un epilogo quando l&#8217;utente è invitato a passare alla scena successiva, tutte le altre tracce sono stato caratterizzate da alcuni eventi temporizzati, identificati con le linee rosse tratteggiate verticali. In sostanza abbiamo individuato 4 tipi di eventi:</p>
<ul>
<li>segment (clip) starting point: this will be used as a destination point for the playhead in case of jump;</li>
<li>show controls: all user controls will be displayed on screen, user intercation is expected;</li>
<li>hide controls: all user controls are hidden, and no more user interaction is allowed;</li>
<li>decision point, usually coincident with the hide controls event: the controller must decide which movie segment must be played based on the user decision.</li>
</ul>
<p>Si noti che questo approccio è molto flessibile e, in teoria, è possibile qualsiasi tipo di evento, questo dipende dalla fantasia dei game designer. Dal punto di vista del codice, abbiamo infatti la sottoclasse AVURLAsset aggiungendo una serie di eventi cronometrati. Al momento della  composizione, questo evento sarà nuovamente temporizzata secondo la base di un nuovo tempo (ad esempio: se un evento viene giocato al secondo 0:35 di una clip, ma il punto di partenza della clip è esattamente a 1: 45 della intera sequenza, il caso deve essere ri-programmato per 1:45 + 0:35 = 2,20). A questo punto, con l&#8217;elenco completo degli eventi è possibile riscrivere la registrazione confine:</p>
<p><span style="color: #993300;">// events is the array of all re-timed events in the complete composition</span><br />
<span style="color: #993300;"> __block __typeof__(self) _self = self; // avoids retain cycle on self when used inside the block</span><br />
<span style="color: #993300;"> [events enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {</span><br />
<span style="color: #993300;"> TimedEvent *ev = (TimedEvent *)obj;</span><br />
<span style="color: #993300;"> [viewer.player addBoundaryTimeObserverForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:ev.time]]</span><br />
<span style="color: #993300;"> queue:dispatch_get_main_queue()</span><br />
<span style="color: #993300;"> usingBlock:^{</span><br />
<span style="color: #993300;"> // send event to interactiveView</span><br />
<span style="color: #993300;"> [viewer performTimedEvent:ev];</span><br />
<span style="color: #993300;"> [_self performTimedEvent:ev];</span><br />
<span style="color: #993300;"> }];</span><br />
<span style="color: #993300;"> }];</span></p>
<p><span style="color: #993300;"> </span></p>
<p>Come si può vedere il codice è molto semplice: per ogni evento programmato si registra l&#8217;unico limite che chiama semplicemente due metodi, uno per il lettore di film e uno per il controllo delle scene, in entrambi i casi dobbiamo inviare l&#8217;evento specifico in modo che il ricevitore sappia esattamente cosa fare. Il visualizzatore di norma prenderà cura dell&#8217; interazione utente (che si sovrapporrà un paio di controlli sulla parte superiore dello strato di giocatore, quindi a seconda degli eventi  questi controlli saranno visualizzati o nascosti, inoltre lo spettatore sa che il controllo è stato selezionato dall&#8217;utente), mentre lo <em>scene controlle</em>r gestirà la logica del gioco, specialmente nel caso degli eventi decisione. Quando il <em>controlle</em>r rileva un evento di decisione, deve spostare la barra nella giusta posizione nella composizione:</p>
<p>&nbsp;</p>
<p><span style="color: #993300;">CMTime goToTime = # determines the starting time of the next segment #</span><br />
<span style="color: #993300;"> [viewer hide];</span><br />
<span style="color: #993300;"> [viewer.player seekToTime:goToTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimePositiveInfinity completionHandler:^(BOOL finished) {</span><br />
<span style="color: #993300;"> if(finished) {</span><br />
<span style="color: #993300;"> dispatch_async(dispatch_get_main_queue(), ^{</span><br />
<span style="color: #993300;"> [viewer show];</span><br />
<span style="color: #993300;"> });</span><br />
<span style="color: #993300;"> );</span><br />
<span style="color: #993300;"> }];</span></p>
<p>&nbsp;</p>
<p>Che cosa succede nel codice qui sopra nel caso in cui abbiamo bisogno di spostare la barra di un timing specifico, per prima cosa determiniamo questo tempo e poi chiediamo all&#8217;istanza AVPlayer di cercare , questa volta cercando di spostare la testina (head) in questa posizione o dopo con un po &#8216;tolleranza (kCMTimePositiveInfinity) ma non prima (kCMTimeZero nel toleranceBefore: parametro; abbiamo bisogno di questo perché la composizione è fatta di tutti i clip consecutivi e quindi spostando la testina prima dell&#8217;ora di partenza della clip potrebbe mostrare una piccola porzione del clip precedente). Notare che questa operazione non è immediata e anche se abbastanza veloce potrebbe richiedere un secondo circa. Cosa succede durante questa transizione , il livello player mostrerà una cornice ancora da qualche parte nella regione di timing di destinazione, che inizierà la clip completa di decodifica e riprende la riproduzione a partire da un altro frame, in genere diverso da quello precedente. L&#8217;effetto finale non è veramente buono e, dopo una sperimentazione abbiam deciso di nascondere il livello player immediatamente prima di iniziare la ricerca e mostralo di nuovo non appena il la classe player ci informa (attraverso il blocco di callback completionHandler) che il film è pronto per essere riprodotto .</p>
<h3>Conclusioni e references</h3>
<div>Speriamo che questo lungo articolo spingerà altri sviluppatori ad iniziare a lavorare su applicazioni per film interattivi e  che cercheranno di sfruttare le funzionalità avanzate di editing video per iOS. Il framework AVFoundation ci offre strumenti molto potenti e che non sono difficili da usare. In questo post non abbiamo esplorato alcune classi più avanzate, come ad esempio <em>AVVideoComposition</em> e <em>AVSynchronizedLayer</em>. La prima è utilizzata per creare transizioni, l&#8217;ultima è utilizzato per sincronizzare effetti di animazione di base con la temporizzazione interna media.</p>
<p>Grandi riferimenti sull&#8217;argomento si possono trovare nella  iOS Developer Library o i video WWDC con codice di esempio:</p></div>
<ul>
<li>For a general overview: <a href="http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html">AVFoundation Programming Guide</a> in the iOS Developer Library</li>
<li>For the framework classes documentation: <a href="http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVFoundationFramework/_index.html">AVFoundation Framework Reference</a> in the iOS Developer Library</li>
<li>Video: <em>Session 405 – Discovering AV Foundation</em> from WWDC 2010, available in iTunesU to registered developers</li>
<li>Video: <em>Session 407 – Editing Media with AV Foundation</em> from WWDC 2010, available in iTunesU to registered developers</li>
<li>Video: <em>Session 405 – Exploring AV Foundation</em> from WWDC 2010, available in iTunesU to registered developers</li>
<li>Video: <em>Session 415 – Working with Media in AV Foundation</em> from WWDC 2011, available in iTunesU to registered developers</li>
<li>Sample code: <em>AVPlayDemo</em> from WWDC 2010 <a href="http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?code=y&amp;source=x&amp;bundleID=20645">sample code repository</a></li>
<li>Sample code: <em>AVEditDemo</em> from WWDC 2010 <a href="http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?code=y&amp;source=x&amp;bundleID=20645">sample code repository</a></li>
</ul>
</div>
<p>&nbsp;</p>
<p>Translated from Carlo&#8217;s post</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/principi-di-design-in-un-prodotto-e-per-unapp-ios-e-android-iphone-ipad-android-app-design/' rel='bookmark' title='Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design'>Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design</a></li>
<li><a href='http://i3factory.com/it/pubblicare-riviste-giornali-magazine-su-ipad-con-i3factory-editorial/' rel='bookmark' title='Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial'>Pubblicare riviste, giornali, magazine su iPad con i3Factory Editorial</a></li>
<li><a href='http://i3factory.com/it/modena-camera-di-commercio-con-i3factory-su-app-store/' rel='bookmark' title='made in Modena: Camera di Commercio con i3Factory su App Store'>made in Modena: Camera di Commercio con i3Factory su App Store</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/produzioni-cinematografiche-in-app-store-fim-per-giocare-con-iphone-ipad/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Sviluppo e supporto App per iPhone 5</title>
		<link>http://i3factory.com/it/sviluppo-e-supporto-app-per-iphone-5/</link>
		<comments>http://i3factory.com/it/sviluppo-e-supporto-app-per-iphone-5/#comments</comments>
		<pubDate>Sat, 22 Sep 2012 17:53:39 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iOS6]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPhone5]]></category>
		<category><![CDATA[Retina display]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2064</guid>
		<description><![CDATA[<p>iPhone5 ha uno schermo più grande rispetto ai suoi precedessori.<br />
Gli sviluppatori di iOS6 devono supportare risoluzioni di 640 x 1136 px al posto di 640 x 960 px dell'iPhone4.<br />
Ma anche in questo caso se si segue la logica Apple il lavoro da fare non è per nulla complicato.</p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/ios-tecniche-per-non-appesantire-le-app-in-vista-di-ipad-3/' rel='bookmark' title='iOS: Tecniche per non appesantire le App; sviluppare per iPad 3'>iOS: Tecniche per non appesantire le App; sviluppare per iPad 3</a></li>
<li><a href='http://i3factory.com/it/lo-sviluppo-di-software-e-creazione-di-nuova-conoscenza-lazienda-vuole-evolvere-il-proprio-know-how/' rel='bookmark' title='Lo sviluppo di software è creazione di nuova conoscenza. L&#8217;azienda vuole evolvere il proprio know-how?'>Lo sviluppo di software è creazione di nuova conoscenza. L&#8217;azienda vuole evolvere il proprio know-how?</a></li>
<li><a href='http://i3factory.com/it/stimare-il-tempo-di-sviluppo-software-come-per-app-per-ios-iphone-e-ipad-android/' rel='bookmark' title='Stimare il tempo di sviluppo software, come per App iOS, iPhone e iPad, &amp; Android'>Stimare il tempo di sviluppo software, come per App iOS, iPhone e iPad, &#038; Android</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p><a href="http://www.i3factory.com/wp-content/uploads/dimensione_schermo_display_iphone5_iphone4_pollici.png"><img class="aligncenter size-full wp-image-2080" title="dimensione_schermo_display_iphone5_iphone4_pollici" src="http://www.i3factory.com/wp-content/uploads/dimensione_schermo_display_iphone5_iphone4_pollici.png" alt="" width="500" height="449" /></a></p>
<p>iPhone5 ha uno schermo più grande rispetto ai suoi precedessori. Gli sviluppatori di iOS6 devono supportare risoluzioni di 640 x 1136 px al posto di 640 x 960 px dell&#8217;iPhone4.<br />
Ma anche in questo caso se si segue la logica Apple il lavoro da fare non è per nulla complicato.</p>
<p>Il blog http://blog.mugunthkumar.com/coding/supporting-the-iphone-5/ propone di seguire quattro fasi:</p>
<p>Fase 1:</p>
<p>iPhone 5 richiede un nuovo set di istruzioni, le <em>armv7s</em>. Solo nell&#8217;ultima versione Xcode ( 4.5) supporta la generazione del set istruzioni <em>armv7s</em>. Doa notare che, Xcode 4,5 non supporta più <em>armv6</em> e depreca iPhone 3G e i dispositivi più vecchi. Quindi bisogna ora sviluppare le nostre applicazione utilizzando Xcode 4,5</p>
<p>Fase 2:</p>
<p>Il passo successivo è quello di aggiungere una immagine di lancio (Default-568h@2x.png). Quando si genera il progetto con Xcode 4.5, viene visualizzato un avviso, &#8220;Missing Retina 4 launch image&#8221;. Fare clic su &#8220;Aggiungi&#8221; per aggiungere un immagine di default al progetto.</p>
<div id="attachment_2066" class="wp-caption aligncenter" style="width: 480px"><a href="http://www.i3factory.com/wp-content/uploads/Missing_Retina_4_launch_image.png"><img class="wp-image-2066 " title="Missing_Retina_4_launch_image" src="http://www.i3factory.com/wp-content/uploads/Missing_Retina_4_launch_image.png" alt="" width="470" height="175" /></a><p class="wp-caption-text">Al lancio dell&#8217; app apparirà in full screen on iPhone 5</p></div>
<p>Fase 3:</p>
<p>Tuttavia, la maggior parte dei <em>nib</em> file non sarà ancora in scalata correttamente. Il passo successivo è quello di controllare la maschera ridimensionamento automatico (<em>auto resizing mask</em>) di tutti i file <em>nib</em> e assicurarsi che la vista (<em>view</em>) all&#8217;interno del file nib si dimensioni automaticamente in base alla nuova altezza della vista.</p>
<dl id="attachment_2067">
<dt><a href="http://www.i3factory.com/wp-content/uploads/iPhone5_Cambiare_maschera_auto_resize_mask.png"><img class="aligncenter" title="iPhone5_Cambiare_maschera_auto_resize_mask" src="http://www.i3factory.com/wp-content/uploads/iPhone5_Cambiare_maschera_auto_resize_mask-1024x766.png" alt="" width="600" height="448" /></a></dt>
</dl>
<p>Le proprietà che si usano sono:</p>
<p style="text-align: left;">UIViewAutoresizingFlexibleTopMargin,<br />
UIViewAutoresizingFlexibleBottomMargin,<br />
UIViewAutoresizingFlexibleHeight.</p>
<p style="text-align: left;">Si utilizza la UIViewAutoresizingFlexibleHeight per la visualizzazione on top in modo che auto dimensioni con la finestra principale. Si utilizza il UIViewAutoresizingFlexibleTopMargin e / o UIViewAutoresizingFlexibleBottomMargin per subviews.</p>
<p><em>UIViewAutoresizingFlexibleTopMargin</em> viene utilizzato se si desidera che la visualizzazione secondaria eimanga &#8220;inchiodata&#8221; alla parte inferiore (il margine superiore è flessibile) e <em>UIViewAutoresizingFlexibleBottomMargin</em> viene utilizzato se si desidera che la visualizzazione secondaria sia &#8220;inchiodata&#8221; alla parte superiore (iò margine inferiore è flessibile).</p>
<p>Se invece si utilizza <em>Cocoa auto Layout</em>, questo passaggio diventa facoltativo. Tuttavia, l&#8217;<em>auto Layout</em> non è supportato su iOS 5.</p>
<p style="text-align: left;">Fase 4:</p>
<p>Infine, qualsiasi Layer che avete aggiunto alla vista dovrà essere ridimensionato manualmente. Il codice seguente mostra come eseguire questa operazione. Usiamo <em>patternLayer</em> per aggiungere un pattern per tutti i <em>view controller</em>. È necessario ridimensionare  nel metodo viewWillLayoutSubviews.</p>
<div>
<table>
<tbody>
<tr>
<td>
<pre>-(void)viewWillLayoutSubviews {

self.patternLayer.frame = self.view.bounds;
[super viewWillLayoutSubviews];
}Step 5 (if you were a messy coder):</pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Fase 5</p>
<p>Se l&#8217;altezza della view è stata codificato  a 460 o 480, potrebbe essere necessario cambiarle tutte  iinsrendo <em>bounds. Ad esempio,</em></p>
<p>self.window = [[UIWindow alloc] initWithFrame: [[mainScreen UIScreen] bounds]];</p>
<p>invece di</p>
<p>self.window = [[UIWindow alloc] initWithFrame: CGRectMake (0, 0, 320, 480)];</p>
<p>&nbsp;</p>
<p>Creare immagini con le nuove dimensioni</p>
<p>Come ho potuto constatare sul blog http://redth.info/get-your-monotouch-apps-ready-for-iphone-5-ios-6-today/ , purtroppo, la convenzione di denominazione di immagini-568h @ 2x.png sembra solo di essere utilizzata per l&#8217;immagine di default, ma non viene applicata per le altre immagini dell&#8217; applicazione. Ciò significa che se si sta utilizzando un&#8217;immagine di sfondo personalizzata per la visualizzazione (ad esempio: UITableView background), è probabile che sia necessario creare una nuova immagine di sfondo alla risoluzione corretta, e determinare nell&#8217;applicazione quando utilizzare ciascuna immagine.<br />
Sarebbe bello se Apple avesse esteso nel nuovo SDK il supporto al nuovo schermo per mezzo del metodo:<br />
<code>[UIImage imageNamed:@"my-image"]</code><br />
Attualmente possiamo indicare per &#8220;my-image&#8221; il nome della mia immagine (anche senza estensione) e il sistema operativo effettua la ricerca dell&#8217;immagine nell&#8217;application bundle secondo questo criterio: se lo schermo è di tipo retina cerca un&#8217;immagine con il suffisso @2x nel nome, se non la trova va a cercare l&#8217;immagine senza suffisso. Ci saremmo aspettati da parte di Apple l&#8217;estensione dell&#8217;algoritmo includendo la possibilità di cercare per il suffisso -568h@2x nel caso di schermo da 4&#8243;. Purtroppo non è così e per questo motivo dovremo codificare la cosa espressamente nel nostro codice.</p>
<p>Per esempio, nella nostra app non-4inch  compatibile, ho due immagini:</p>
<p>Images / TableViewBackground.png &#8211; 320&#215;358<br />
Images / TableViewBackground@2x.png &#8211; 640&#215;716</p>
<p>Con la nuova risoluzione, ho bisogno di creare una terza immagine (abbiamo deciso di utilizzare l&#8217;opzione-568h @ 2x.png convenzione di denominazione, anche se non è processata da Apple):</p>
<p>Images/TableViewBackground-568h@2x.png</p>
<p>Un approccio elegante è quello di creare una nuova categoria per la classe UIImage (che definiamo con poca fantasia UIImage+Retina4), e effettuare a runtime all&#8217;interno della categoria una sostituzione del metodo &#8220;imageNamed:&#8221; con uno che gestisca la nuova convenzione:</p>
<p><code><br />
// all'interno di UIImage+Retina4.h<br />
#import </code></p>
<p>@interface UIImage (Retina4)</p>
<p>@end</p>
<p>// all&#8217;interno di UIImage+Retina4.m<br />
#import &#8220;UIImage+Retina4.h&#8221;<br />
#ifdef TARGET_MAC_OS<br />
#import<br />
#else<br />
#import<br />
#endif</p>
<p>static Method origImageNamedMethod = nil;</p>
<p>@implementation UIImage (Retina4)</p>
<p>+ (void)initialize {<br />
origImageNamedMethod = class_getClassMethod(self, @selector(imageNamed:));<br />
method_exchangeImplementations(origImageNamedMethod,<br />
class_getClassMethod(self, @selector(retina4ImageNamed:)));<br />
}</p>
<p>+ (UIImage *)retina4ImageNamed:(NSString *)imageName {<br />
NSMutableString *imageNameMutable = [imageName mutableCopy];<br />
NSRange retinaAtSymbol = [imageName rangeOfString:@"@"];<br />
if (retinaAtSymbol.location != NSNotFound) {<br />
[imageNameMutable insertString:@"-568h" atIndex:retinaAtSymbol.location];<br />
} else {<br />
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;<br />
if ([UIScreen mainScreen].scale == 2.f &amp;&amp; screenHeight == 568.0f) {<br />
NSRange dot = [imageName rangeOfString:@"."];<br />
if (dot.location != NSNotFound) {<br />
[imageNameMutable insertString:@"-568h@2x" atIndex:dot.location];<br />
} else {<br />
[imageNameMutable appendString:@"-568h@2x"];<br />
}<br />
}<br />
}<br />
NSString *imagePath = [[NSBundle mainBundle] pathForResource:imageNameMutable ofType:@&#8221;png&#8221;];<br />
if (imagePath) {<br />
return [UIImage retina4ImageNamed:imageNameMutable];<br />
} else {<br />
return [UIImage retina4ImageNamed:imageName];<br />
}<br />
return nil;<br />
}</p>
<p>@end</p>
<p>Quel che fa questo codice è in fase di inizializzazione sostituire l&#8217;implementazione di Apple di &#8220;imageNamed:&#8221; con la nostra &#8220;retina4ImageNamed:&#8221; (e viceversa). Nel momento stesso in cui il runtime chiama &#8220;imageNamed:&#8221; in realtà andrà a richiamare la nostra funzione che andrà a caricare l&#8217;immagine ottimizzata per lo schermo a 4&#8243; a condizione che sia presente e che stiamo eseguendo l&#8217;app su un device con tale schermo (incluso il simulatore). Nel caso l&#8217;immagine non fosse presente o lo schermo fosse il tradizione 3.5&#8243; allora verrebbe chiamata la funzione originale (rinominata a causa dello scambio iniziale).<br />
Ovviamente questa implementazione non può essere usata nel caso il caricamento delle immagini avvenga esplicitamente per mezzo di chiamate del tipo<br />
<code>[UIImage imageWithContentsOfFile:...]</code><br />
in cui il nome del file va costruito in maniera esplicita.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/ios-tecniche-per-non-appesantire-le-app-in-vista-di-ipad-3/' rel='bookmark' title='iOS: Tecniche per non appesantire le App; sviluppare per iPad 3'>iOS: Tecniche per non appesantire le App; sviluppare per iPad 3</a></li>
<li><a href='http://i3factory.com/it/lo-sviluppo-di-software-e-creazione-di-nuova-conoscenza-lazienda-vuole-evolvere-il-proprio-know-how/' rel='bookmark' title='Lo sviluppo di software è creazione di nuova conoscenza. L&#8217;azienda vuole evolvere il proprio know-how?'>Lo sviluppo di software è creazione di nuova conoscenza. L&#8217;azienda vuole evolvere il proprio know-how?</a></li>
<li><a href='http://i3factory.com/it/stimare-il-tempo-di-sviluppo-software-come-per-app-per-ios-iphone-e-ipad-android/' rel='bookmark' title='Stimare il tempo di sviluppo software, come per App iOS, iPhone e iPad, &amp; Android'>Stimare il tempo di sviluppo software, come per App iOS, iPhone e iPad, &#038; Android</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/sviluppo-e-supporto-app-per-iphone-5/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Il Fuggitivo dello Spazio, il primo game film movie per iPhone interamente girato a Roma</title>
		<link>http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/</link>
		<comments>http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/#comments</comments>
		<pubDate>Tue, 24 Jul 2012 17:58:23 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[In Apple Store]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[FilmGame]]></category>
		<category><![CDATA[Fuggitivo]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2039</guid>
		<description><![CDATA[<p><strong>Il fuggitivo e' arrivato!</strong><br />
Il fuggitivo dello Spazio e'  il primo gioco cinematografico interamente dedicato alle bellezze di Roma.<br />
E’ un  <strong>movie game</strong> interattivo e divertente dedicato alle famiglie o a tutti coloro che si vorranno cimentare in questa interessante avventura,  compresi bambini e adolescenti.<br />
Interamente girato nella città di Roma, in Italia, è un gioco divertente e didattico. Vi permetterà di scoprire le meraviglie della città eterna e contemporaneamente seguire la storia e le avventure del protagonista, il nostro Fuggitivo nello Spazio.<br />
<a title="Il fuggitivo dello spazio, film movie game , un gioco girato a roma su App Store" href="http://itunes.apple.com/it/app/fugitive-space-mission-in/id506689674?l=it&#38;ls=1&#38;mt=8">Scaricalo su App Store</a></p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/ios-5-tech-talk-world-tour-i3factory-ha-partecipato-allevento-di-roma/' rel='bookmark' title='iOS 5 Tech Talk World Tour, i3Factory ha partecipato all&#8217;evento di Roma'>iOS 5 Tech Talk World Tour, i3Factory ha partecipato all&#8217;evento di Roma</a></li>
<li><a href='http://i3factory.com/it/il-fuggitivo-a-roma/' rel='bookmark' title='Il Fuggitivo dello spazio sbarca a Roma'>Il Fuggitivo dello spazio sbarca a Roma</a></li>
<li><a href='http://i3factory.com/it/the-fugitive-of-the-space/' rel='bookmark' title='The Fugitive of the space'>The Fugitive of the space</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<div id="attachment_2040" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.i3factory.com/wp-content/uploads/Default.png"><img class="size-full wp-image-2040" title="Il fuggitivo dello spazio, missione a Roma" src="http://www.i3factory.com/wp-content/uploads/Default.png" alt="Il fuggitivo dello spazio, missione a Roma" width="480" height="320" /></a><p class="wp-caption-text">Il fuggitivo dello spazio, missione a Roma.<br />Disponibile su App Store</p></div>
<p>Il fuggitivo e&#8217; arrivato!</p>
<p><strong>Il fuggitivo dello Spazio</strong> e&#8217;  il primo gioco cinematografico interamente dedicato alle bellezze di Roma.<br />
E’ un  <strong>movie game interattivo</strong> e divertente dedicato alle famiglie o a tutti coloro che si vorranno cimentare in questa interessante avventura,  compresi bambini e adolescenti.<br />
Interamente girato nella città di Roma, in Italia, è un gioco divertente e didattico. Vi permetterà di scoprire le meraviglie della città eterna e contemporaneamente seguire la storia e le avventure del protagonista, il nostro Fuggitivo nello Spazio.</p>
<p><a title="Il fuggitivo dello spazio, film movie game , un gioco girato a roma su App Store" href="http://itunes.apple.com/it/app/fugitive-space-mission-in/id506689674?l=it&amp;ls=1&amp;mt=8">Scaricalo su App Store</a></p>
<p><strong>La Storia</strong></p>
<p>Il giovane Fuggitivo è appena arrivato sul pianeta Terra e si trova a passeggiare per la splendida città di Roma vicino al Colosseo, tra le rovine romane.<br />
E’ arrivato dal suo pianeta NubiriX utilizzando il tele-trasporto. E&#8217; fuggito dal proprio pianeta d&#8217;origine perchè non voleva sposare una ricca e potente principessa del suo regno alla quale era stato promesso sposo.<br />
Essendo il nostro amico sempre stato un tipo romantico e dato che l&#8217;aspetto della sua promessa sposa non poteva ispirare il vero amore, decide di scappare sulla Terra seguendo l&#8217;istinto e il proprio cuore.<br />
Purtroppo la brutta principessa, dopo aver saputo della fuga,  ha ingaggiato il capo delle Guardie Reali per dare la caccia al suo promesso sposo con la speranza di riportarlo a casa.<br />
Il cattivo, assieme al suo equipaggio, parte nell&#8217;iperspazio seguendo le tracce lasciate dal tele-trasporto così da portare la navicella spaziale aliena nel sistema solare e poi sulla Terra.<br />
Gli inseguitori non hanno però informazioni affidabili sul nostro amato pianeta Terra e sopratutto, durante il viaggio,  riescono a visualizzare sul computer di bordo delle Guardie Reali solo alcune immagini della città di Roma che, essendo il pianeta Nubirix a più di 2000 anni luce dalla terra, si riferiscono alla Roma Imperiale di 2000 anni fa&#8230;</p>
<p>Riuscirà il nostro Fuggitivo a sfuggire ai suoi inseguitori e a trovare il vero amore sulla Terra?</p>
<p>La sorte del Fuggitivo è ora nelle vostre mani.</p>
<p><a title="Il fuggitivo dello spazio, film movie game , un gioco girato a roma su App Store" href="http://itunes.apple.com/it/app/fugitive-space-mission-in/id506689674?l=it&amp;ls=1&amp;mt=8">Clicca Qui per il download su App Store</a></p>
<p>RSS: <a href="http://itunes.apple.com/it/rss/customerreviews/id=506689674/sortBy=mostRecent/xml">http://itunes.apple.com/it/rss/customerreviews/id=506689674/sortBy=mostRecent/xml</a></p>
<p>Alcune immagini:</p>

<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/default/' title='Default'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/Default-150x150.png" class="attachment-thumbnail" alt="Default" /></a>
<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/fuggitivo_itunesartwork/' title='Fuggitivo_iTunesArtwork'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/Fuggitivo_iTunesArtwork-150x150.png" class="attachment-thumbnail" alt="Fuggitivo_iTunesArtwork" /></a>
<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/2012-06-26-20-57-20/' title='2012-06-26 20.57.20'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/2012-06-26-20.57.20-150x150.png" class="attachment-thumbnail" alt="2012-06-26 20.57.20" /></a>
<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/2012-07-12-15-52-01/' title='2012-07-12 15.52.01'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/2012-07-12-15.52.01-150x150.png" class="attachment-thumbnail" alt="2012-07-12 15.52.01" /></a>
<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/2012-07-12-15-52-35/' title='2012-07-12 15.52.35'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/2012-07-12-15.52.35-150x150.png" class="attachment-thumbnail" alt="2012-07-12 15.52.35" /></a>
<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/2012-07-12-15-52-50/' title='2012-07-12 15.52.50'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/2012-07-12-15.52.50-150x150.png" class="attachment-thumbnail" alt="2012-07-12 15.52.50" /></a>
<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/2012-07-12-15-53-57/' title='2012-07-12 15.53.57'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/2012-07-12-15.53.57-150x150.png" class="attachment-thumbnail" alt="2012-07-12 15.53.57" /></a>
<a href='http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/2012-07-12-15-56-47/' title='2012-07-12 15.56.47'><img width="150" height="150" src="http://www.i3factory.com/wp-content/uploads/2012-07-12-15.56.47-150x150.png" class="attachment-thumbnail" alt="2012-07-12 15.56.47" /></a>

<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/ios-5-tech-talk-world-tour-i3factory-ha-partecipato-allevento-di-roma/' rel='bookmark' title='iOS 5 Tech Talk World Tour, i3Factory ha partecipato all&#8217;evento di Roma'>iOS 5 Tech Talk World Tour, i3Factory ha partecipato all&#8217;evento di Roma</a></li>
<li><a href='http://i3factory.com/it/il-fuggitivo-a-roma/' rel='bookmark' title='Il Fuggitivo dello spazio sbarca a Roma'>Il Fuggitivo dello spazio sbarca a Roma</a></li>
<li><a href='http://i3factory.com/it/the-fugitive-of-the-space/' rel='bookmark' title='The Fugitive of the space'>The Fugitive of the space</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/il-fuggitivo-dello-spazio-il-primo-game-film-movie-per-iphone-interamente-girato-a-roma/feed/</wfw:commentRss>
		<slash:comments>75</slash:comments>
		</item>
		<item>
		<title>Eat Italian, le migliori ricette Italiane per iPhone e Android</title>
		<link>http://i3factory.com/it/eat-italian-le-migliori-ricette-italiane-per-iphone-e-android/</link>
		<comments>http://i3factory.com/it/eat-italian-le-migliori-ricette-italiane-per-iphone-e-android/#comments</comments>
		<pubDate>Wed, 04 Jul 2012 13:36:12 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[Android Market]]></category>
		<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[In Apple Store]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[App. Android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Ricette Italiane]]></category>
		<category><![CDATA[Ristoranti Italiani]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2033</guid>
		<description><![CDATA[<p><strong>i3Factory</strong> ha sviluppato e  pubblicato per conto di ISNART e per il Ministero delle Politiche Agricole e Forestali e di Unioncamere ,sugli App store Apple e Android queta interessante e utile applicazione applicazione:</p>
<p><strong>10Q Ricette Italiane</strong></p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/principi-di-design-in-un-prodotto-e-per-unapp-ios-e-android-iphone-ipad-android-app-design/' rel='bookmark' title='Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design'>Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design</a></li>
<li><a href='http://i3factory.com/it/creare-presentazioni-e-prototipi-iphone-ipad-e-android/' rel='bookmark' title='Creare presentazioni e Prototipi iPhone , iPad e Android'>Creare presentazioni e Prototipi iPhone , iPad e Android</a></li>
<li><a href='http://i3factory.com/it/isnart-ospitalita-italiana-aggiornato-alla-ver-1-2-0/' rel='bookmark' title='ISNART Ospitalità Italiana aggiornato alla ver 1.2.0'>ISNART Ospitalità Italiana aggiornato alla ver 1.2.0</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p style="text-align: center;"><strong><a href="http://www.i3factory.com/wp-content/uploads/artwork3.png"><img class="aligncenter  wp-image-2035" title="artwork" src="http://www.i3factory.com/wp-content/uploads/artwork3.png" alt="" width="614" height="614" /></a>i3Factory</strong> ha sviluppato e  pubblicato per conto di ISNART e per il Ministero delle Politiche Agricole e Forestali e di Unioncamere ,sugli App store Apple e Android queta interessante e utile applicazione applicazione:</p>
<h1>10Q Ricette Italiane</h1>
<div>
<h4></h4>
<h4>Descrizione</h4>
<p>10Q Ricette Italiane è un APP con oltre 1000 ricette italiane scelte tra le più rappresentative a livello regionale e tra le più note nel mondo e rappresenta un viaggio gastronomico che permette di conoscere virtualmente l’Italia, attraverso i suoi sapori tipici.</p>
<p>Lo scopo è di far conoscere nel dettaglio le caratteristiche qualitative dei prodotti a denominazione d’origine (239 tra DOP – IGP –STG), prodotti che rendono unico un piatto grazie alla tradizione, al lavoro ed alla dedizione dei produttori presenti esclusivamente su alcuni territori italiani.</p>
<p>I Ristoranti Italiani nel mondo segnalati mettono a disposizione i piatti presenti nel loro menu, arricchendo costantemente questa APP.</p>
<p>Consultando le “Ricette” si accede facilmente agli ingredienti che occorrono, alle modalità di preparazione, alla località di produzione degli ingredienti (con chiare mappe geo-referenziate) e alle informazioni turistiche per conoscere al meglio i territori di riferimento.</p>
<p>Non avete voglia di fare la spesa e volete usare gli ingredienti che avete a casa (frigo/dispensa)? Niente di più semplice: inserite gli ingredienti a vostra disposizione e l’APP vi fornirà tutte le ricette che li contengono, suggerendovi anche qualche curiosità sugli ingredienti a denominazione di origine. Se poi non siete soddisfatti della riuscita del vostro piatto, potete sempre ricorrere alla lista dei ristoranti dove è possibile assaggiare la ricetta che avete scelto e il palato sarà soddisfatto!</p>
<p>Buon appetito a tutti, augurandovi di poter fare presto un viaggio del gusto in Italia, alla scoperta di quei territori che rendono speciali i prodotti tipici!</p>
<p>E’ una iniziativa del Ministero delle Politiche Agricole e Forestali e di Unioncamere</p>
<p>Di seguito trovate i link per scaricare l&#8217;applicazione Ricette Italiane 10Q.</p>
<p><strong>Link per Android:</strong> <a href="https://play.google.com/store/apps/details?id=ricetteItaliane.Fragment&amp;feature=search_result#?t=W10http://">https://play.google.com/store/apps/details?id=ricetteItaliane.Fragment&amp;feature=search_result#?t=W10</a></p>
<p><strong>Link per iOS (iPhone, iPod Touch e iPad)</strong>: <a href="http://itunes.apple.com/us/app/10q-ricette-italiane/id510911650?mt=8">http://itunes.apple.com/us/app/10q-ricette-italiane/id510911650?mt=8</a></p>
</div>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/principi-di-design-in-un-prodotto-e-per-unapp-ios-e-android-iphone-ipad-android-app-design/' rel='bookmark' title='Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design'>Principi di design in un prodotto e per un&#8217;app iOS e Android: iPhone, iPad, Android App Design</a></li>
<li><a href='http://i3factory.com/it/creare-presentazioni-e-prototipi-iphone-ipad-e-android/' rel='bookmark' title='Creare presentazioni e Prototipi iPhone , iPad e Android'>Creare presentazioni e Prototipi iPhone , iPad e Android</a></li>
<li><a href='http://i3factory.com/it/isnart-ospitalita-italiana-aggiornato-alla-ver-1-2-0/' rel='bookmark' title='ISNART Ospitalità Italiana aggiornato alla ver 1.2.0'>ISNART Ospitalità Italiana aggiornato alla ver 1.2.0</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/eat-italian-le-migliori-ricette-italiane-per-iphone-e-android/feed/</wfw:commentRss>
		<slash:comments>85</slash:comments>
		</item>
		<item>
		<title>Ottimizzazione di immagini per iOS, Image Optimization on iOS (iPhone, iPad)</title>
		<link>http://i3factory.com/it/ottimizzazione-di-immagini-per-ios-image-optimization-on-ios-iphone-ipad/</link>
		<comments>http://i3factory.com/it/ottimizzazione-di-immagini-per-ios-image-optimization-on-ios-iphone-ipad/#comments</comments>
		<pubDate>Tue, 26 Jun 2012 13:01:16 +0000</pubDate>
		<dc:creator>Igor Wolfango Schiaroli</dc:creator>
				<category><![CDATA[App Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Software Gratuito]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[designers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[retina]]></category>

		<guid isPermaLink="false">http://i3factory.com/it/?p=2011</guid>
		<description><![CDATA[<p>Recentemente in alcune app, abbiamo notevolmente diminuito le dimensioni del file IPA che inviamo ad Apple.<br />
Sviluppando un'app con molti contenuti grafici siamo riusciti a ridurre di circa il 60% la dimensione del pacchetto da inviare ad Apple, il cosidetto <em>bundle file</em>.</p>
<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://i3factory.com/it/guida-al-design-di-app-per-ios-iphone-ipod-touch-ipad/' rel='bookmark' title='Guida al Design di App per iOS (iPhone, iPod Touch &amp; iPad)'>Guida al Design di App per iOS (iPhone, iPod Touch &#038; iPad)</a></li>
<li><a href='http://i3factory.com/it/downgrade-di-ios-come-far-tornare-il-vostro-iphone-e-ipad-aggiornato-con-ios-5-0-1-a-ios-4-3-3-4-3-4-4-3-5-5-0-0/' rel='bookmark' title='Downgrade di IOS: come far tornare il vostro iPhone e iPad aggiornato con iOS 5.0.1 a iOS 4.3.3 / 4.3.4 / 4.3.5 / 5.0.0'>Downgrade di IOS: come far tornare il vostro iPhone e iPad aggiornato con iOS 5.0.1 a iOS 4.3.3 / 4.3.4 / 4.3.5 / 5.0.0</a></li>
<li><a href='http://i3factory.com/it/riviste-e-magazine-tecniche-di-page-rendering-parte-4-pagine-da-immagini/' rel='bookmark' title='Riviste e Magazine: Tecniche di Page Rendering #parte 4 : pagine da immagini'>Riviste e Magazine: Tecniche di Page Rendering #parte 4 : pagine da immagini</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p style="text-align: center;"><a href="http://www.i3factory.com/wp-content/uploads/ImageOptim.png"><img class="aligncenter size-full wp-image-2016" title="ImageOptim" src="http://www.i3factory.com/wp-content/uploads/ImageOptim.png" alt="" width="175" height="186" /></a></p>
<p style="text-align: left;">Recentemente in alcune app, abbiamo notevolmente diminuito le dimensioni del file IPA che inviamo ad Apple.<br />
Sviluppando un&#8217;app con molti contenuti grafici siamo riusciti a ridurre di circa il 60% la dimensione del pacchetto da inviare ad Apple, il cosidetto <em>bundle file</em>.</p>
<p>Quando si sviluppa un&#8217; universal  iPad / iPhone app e , sopratutto, se si vuole aggiungere il supporto per la visualizzazione retina per  il nuovo iPad 3 possiamo incombere i dimesioni del pacchetto piuttosto eccessive.<br />
Molte app vengono pensata per avere una moltitudine textures a schermo intero , questo accade in quanto molti designers preferiscono illustrare al meglio le proprie idee. Tali immagini ,se pensate per iPad 3, alla dimesione di 2048 x 1536 e in formato PNG possono risultare molto pesanti. La conversione di alcune di queste immagini in formato JPEG farà risparmiare parecchio spazio.<br />
E &#8216;un peccato che le jpeg non vengono caricate più rapidamente, ma alcuni PNG che possono essere anche maggiori du 10MB , quando vengono convertote in jpeg pesano circa ~ 200Kb.<br />
Questo è  un buon primo passo, ma bisogna stare molto attenti a non deteriorare la qualità.</p>
<p>La conversione da png a jpg non basta: anche dopo aver convertito il maggior numero di grandi texture il peso del bundle IPA puo&#8217; risultare ancora consistente.<br />
Il nostro obiettivo è quello di essere quasi sempre sotto i 20 MB cosi&#8217; che i vecchi dispositivi possano scaricare l&#8217;app anche senza il WiFi.</p>
<div class="wp-caption aligncenter" style="width: 490px"><a href="http://www.i3factory.com/wp-content/uploads/imageoptim_ottimizzare_immagine_foto_riduzione_dimesione_file.jpg"><img title="imageoptim_ottimizzare_immagine_foto_riduzione_dimesione_file" src="http://www.i3factory.com/wp-content/uploads/imageoptim_ottimizzare_immagine_foto_riduzione_dimesione_file.jpg" alt="" width="480" height="277" /></a><p class="wp-caption-text">ImageOptim: Basterà lanciare al suo interno la singola immagine o anche un gruppo, e saranno immediatamente compressi senza ridurre la qualità . Si riduce in media di circa il 15–35 %</p></div>
<p>Leggendo tra i diversi siti ho trovato alcuni utili consigli nel blog di Sam Soffes (<a href="http://samsoff.es/posts/image-optimization-on-ios" target="_blank">http://samsoff.es/posts/image-<wbr>optimization-on-ios</wbr></a> ) che in suo articolo consiglia l&#8217;utilizzo di  <a title="external link , dowload of image optimization" href="http://imageoptim.com/" target="_blank">ImageOptim</a>, un piccolo programma che ottimizza le immagini. Con questa app per Mac osx i flis vengono processato in modo da occupare meno spazio su disco e in modo che possano essere caricate più velocemente , attraverso l&#8221;uso de i migliori parametri di compressione provvedendo a rimuovere i commenti inutili e i profili colore. Il software gestisce PNG, JPEG e GIF animate.<br />
ImageOptim integra perfettamente  i vari strumenti di ottimizzazione: PNGOUT, AdvPNG, pngcrush, esteso OptiPNG, jpegoptim, jpegrescan, jpegtran e Gifsicle.<br />
Particolarmente adatto per la pubblicazione di immagini sul web (restringe facilmente le immagini  &#8220;salvate&#8221; per il Web in Photoshop) si è rivelto utile per creare applicazioni Mac e iPhone / iPad sempre più leggere.</p>
<p>Inoltre è possibile convertire molte immagini come PNG8;  in Photoshop, nel sezione File&gt;Salva per Web  e&#8217; possibile esportare come PNG8 invece di PNG24 quelle immagini che vanno bene come GIF. Anche se non supporta alpha variabile, è ideale per immagini semplici.<br />
Sam considera  <em>ImageOptim</em> addirittura fantastico; processa le immagini attraverso una serie di strumenti comprimendo il più possibile e senza ridurre la qualità. Anche se avete salvato &#8220;for-web&#8221; tutte le immagini, ImageOptim è in grado di comprimere ancora oltre il 50%. Alcuni files hanno un incredibile riduzione sino al  90%.</p>
<p>Sam ha processato tutte le immagini attraverso ImageOptim per ben due volte. La seconda volta è stato in grado di comprimere alcune immagini ancora più in profondità.<br />
E&#8217; importante notare che tutto questo è fatto in<em> compressione lossless</em>.</p>
<p><a href="http://www.i3factory.com/wp-content/uploads/imageAlpha_optimization_reduzione_file_dimensione.png"><img class="size-full wp-image-2014 aligncenter" title="imageAlpha_optimization_reduzione_file_dimensione" src="http://www.i3factory.com/wp-content/uploads/imageAlpha_optimization_reduzione_file_dimensione.png" alt="" width="539" height="212" /></a></p>
<p>E&#8217; possibile di rendere le immagini ancora più leggere con <a href="http://pngmini.com/">ImageAlpha</a> (dai creatori di ImageOptim). Si tratta di uno strumento che permette di creare immagini con alpha PNG8 variabile.<br />
Ciò farà risparmiare molto spazio. Si tratta di un processo più manuale rispetto a ImageOptim, ma funziona bene per ingrandire le immagini con alpha che non hanno un molti colori.</p>
<p>Nota: Assicuratevi di disattivare l&#8217;ottimizzazione delle immagini Xcode o si annullerà tutto il vostro duro lavoro, quando crerete il vostro <em>bundle</em>.</p>
<p><strong>Conclusione</strong></p>
<p>Abbiamo sentito pareri contrastanti su questi prodotti. Alcuni sostengono di aver avuto problemi con questi strumenti, mentre altri sono pienamente soddisfatti.<br />
Secondo la nostra esperienza tutto funziona abbastanza bene;<br />
se state cercando di ridurre la dimensione dell&#8217;app (bundle), raccomandiamo quindi di utilizzare questi strumenti.</p>
<p><em>Per i piu&#8217; esperti:</em><br />
Se si desidera provare a fare una compressione ancora più elevata, potete provare ad utilizzare il<a href="https://github.com/scribd/advancecomp" target="_blank"> fork di Scribd del <em>AdvanceCOMP</em> </a>di John Englehart (il creatore di JSONKit);<br />
si tratta di un prodotto un po troppo <em>hardcore</em>, ma si consiglia comunque -ai piu&#8217; smanettoni- di fare un tentativo.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://i3factory.com/it/guida-al-design-di-app-per-ios-iphone-ipod-touch-ipad/' rel='bookmark' title='Guida al Design di App per iOS (iPhone, iPod Touch &amp; iPad)'>Guida al Design di App per iOS (iPhone, iPod Touch &#038; iPad)</a></li>
<li><a href='http://i3factory.com/it/downgrade-di-ios-come-far-tornare-il-vostro-iphone-e-ipad-aggiornato-con-ios-5-0-1-a-ios-4-3-3-4-3-4-4-3-5-5-0-0/' rel='bookmark' title='Downgrade di IOS: come far tornare il vostro iPhone e iPad aggiornato con iOS 5.0.1 a iOS 4.3.3 / 4.3.4 / 4.3.5 / 5.0.0'>Downgrade di IOS: come far tornare il vostro iPhone e iPad aggiornato con iOS 5.0.1 a iOS 4.3.3 / 4.3.4 / 4.3.5 / 5.0.0</a></li>
<li><a href='http://i3factory.com/it/riviste-e-magazine-tecniche-di-page-rendering-parte-4-pagine-da-immagini/' rel='bookmark' title='Riviste e Magazine: Tecniche di Page Rendering #parte 4 : pagine da immagini'>Riviste e Magazine: Tecniche di Page Rendering #parte 4 : pagine da immagini</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i3factory.com/it/ottimizzazione-di-immagini-per-ios-image-optimization-on-ios-iphone-ipad/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
