 
 
 <?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>upCreative &#187; HTML5 Mobile App</title>
	<atom:link href="https://www.upcreative.net/tag/html5-mobile-app/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.upcreative.net</link>
	<description>Web Design, grafica,  web application e content web marketing</description>
	<lastBuildDate>Wed, 10 Apr 2019 12:53:28 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Creare un app: ne hai veramente bisogno?</title>
		<link>https://www.upcreative.net/creare-un-app-ne-veramente-bisogno/</link>
		<comments>https://www.upcreative.net/creare-un-app-ne-veramente-bisogno/#comments</comments>
		<pubDate>Thu, 10 Jul 2014 14:12:20 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[come creare app]]></category>
		<category><![CDATA[creare un app]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[HTML5 Mobile App]]></category>
		<category><![CDATA[mobile app]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=4070</guid>
		<description><![CDATA[<p>La maggior parte delle applicazioni mobile viene scaricata per poi non essere mai più utilizzata, o addirittura rimossa dal dispositivo appena dopo essere stata lanciata per la prima volta. Ciò è dovuto per la maggior parte dei casi all'inutilità dell'app stessa. Prima di creare un app è bene capire se ne hai effettivamente bisogno.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/creare-un-app-ne-veramente-bisogno/">Creare un app: ne hai veramente bisogno?</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Ogni anno vengono effettuati <b>miliardi di download </b>di applicazioni mobile da milioni di utenti sparsi per il mondo, ad un punto tale che molti paragonano il creare un app e pubblicarla nei vari stores ad una vera propria miniera d’oro. Ed il numero sta crescendo a dismisura.</p>
<p><img class="alignnone wp-image-4074 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/07/Mobile-app-download.jpg" alt="Mobile app download" width="960" height="684" /></p>
<p style="text-align: center;"><i>La stima dei numero di download di applicazioni mobile nei prossimi anni</i></p>
<p>Tuttavia, se in alcuni casi gli app stores hanno rappresentato (e rappresentano ancora) una grandissima fonte di ricchezza (come <a href="https://itunes.apple.com/it/app/ruzzle/id504265646?mt=8">Ruzzle</a> o <a href="http://it.wikipedia.org/wiki/Flappy_Bird">FlappyBird</a>, tanto per citare le prime app che mi vengono in mente), per ogni app di successo ce ne sono migliaia che non riescono a decollare.</p>
<p>Il fatto è che quando si parla di <strong>creare un app,</strong> puntualmente ci vengono presentati solamente quei progetti che hanno raggiunto la vetta. E tutte quelle applicazioni che al contrario hanno fallito?</p>
<h2>La dura verità: le app che non hanno successo</h2>
<p>In particolare, di tutti i milioni di applicazioni scaricate, <b>solo un piccolissima parte (circa il 5/10%) viene effettivamente utilizzata dopo la prima volta</b>.</p>
<p>Quante volte ti sarà capitato di scaricare un’app nel tuo smartphone o tablet, dargli un’occhiata veloce, per poi non aprirla mai più, o addirittura cancellarla?</p>
<p><img class="alignright wp-image-4073 " src="http://www.upcreative.net/wp-content/uploads/2014/07/aggiornamenti-mobile-app-168x300.jpg" alt="aggiornamenti mobile app" width="185" height="330" /></p>
<p>A seconda dell’utente, la maggior parte delle applicazioni vengono completamente ignorate o cancellate dopo il primo utilizzo.</p>
<p>Il mio iPhone è continuamente colmo di applicazioni di vario tipo, ed ogni giorno mi presenta minimo 50 notifiche di aggiornamenti da effettuare per applicazioni che non ricordo nemmeno di avere.</p>
<p>Così, periodicamente, appena riesco a ritagliarmi un attimo di tempo, mi metto a cancellare tutte quelle app che non mi piacciono o che non utilizzo.</p>
<p>Ma dopo qualche giro di esplorazione su App Store, sono di nuovo al punto di partenza.</p>
<p>E credo che questo sia lo stesso scenario della maggior parte degli utenti che possiedono un dispositivo mobile.</p>
<p>Da cosa dipende?</p>
<p>Semplice: dall’<b>utilità dell’applicazione.</b></p>
<p style="text-align: center;"><b>Prima di perdere tempo con la creazione di un’applicazione, cerca di capire se è effettivamente utile</b></p>
<h2>Verifica l’utilità della tua applicazione</h2>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2014/07/utilita-Mobile-app.jpg"><img class="alignright size-full wp-image-4075" src="http://www.upcreative.net/wp-content/uploads/2014/07/utilita-Mobile-app.jpg" alt="utilita Mobile app" width="300" height="510" /></a></p>
<p>Molti vengono a chiederemi delle consulenze per progetti riguardanti applicazioni mobile che risultano veramente inutili, come se si dimenticassero che qualsiasi smartpthone o tablet possiede un browser.</p>
<p>Ora ti chiederai: “<i>cosa c’entra il browser con l’app?</i>”</p>
<p>C’entra eccome.</p>
<p>Uno dei miei clienti (per il quale ho realizzato un <a href="http://yithemes.com/product-tag/ecommerce/">e-commerce con WordPress</a>) sapendo che oltre a siti ed applicazioni web mi occupo anche della realizzazione di mobile app,  qualche tempo fa si era fissato con l’idea di voler creare a tutti i costi un’applicazione mobile che offrisse all’utente tutte le funzionalità dell’e-commerce che gli avevo già sviluppato.</p>
<p><b>Che senso avrebbe avuto realizzare l’applicazione di un’e-commerce già ottimizzato per dispositivi mobile, e quindi già facilmente fruibile da un normale mobile browser?</b></p>
<p>Provai a spiegargli l’inutilità della cosa, ma non mollò la presa, nemmeno dopo avergli mostrato il mio preventivo.</p>
<p>Morale: il cliente finì per spendere alcune migliaia di euro per un’ottima e funzionale applicazione, ma che non venne mai utilizzata da nessuno (dei circa 900 utenti che avevano effettuato il download nell’arco di un anno, non registrammo nemmeno un acquisto da dispositivi mobili).</p>
<p><b>Completo fallimento</b>.</p>
<p>Pensaci bene: prima di metterti a testa bassa e impegnarti nella realizzazione di un’applicazione mobile, cerca di capire quali funzionalità e contenuti deve avere.</p>
<p>Se si tratta di elementi disponibili anche su un normale web browser, allora la verità è che <b>non hai bisogno di un’applicazione mobile</b>, o almeno di un’applicazione da distribuire sui vari stores.</p>
<p>Molte delle funzionalità come la <i>geolocalizzazione</i> o il <i>salvataggio dei dati</i> (leggi <a href="http://www.yourinspirationweb.com/2014/04/02/html5-mobile-app-tecniche-per-il-salvataggio-dei-dati/#more-50357">questo articolo </a>oppure <a href="http://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/">questo</a> per saperne di più) possono essere implementate anche in normali siti web.</p>
<p>Una buona soluzione che personalmente adotto molto spesso è quella di creare <b>una versione mobile del sito web</b>, utilizzando delle tecniche per realizzare <a href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile app fluide ed altamente performanti</a>.</p>
<p>In questo modo è possibile creare un’applicazione mobile a tutti gli effetti, ma che sia accessibile anche da un normale browser mobile, e che allo stesso tempo possa essere facilmente trasformata in un’<b>applicazione ibrida, </b>grazie adei tools come <a href="http://phonegap.com/">Phonegap</a> o <a href="http://www.appcelerator.com/titanium/">Titanium</a>.</p>
<p>È la stessa cosa che ha fatto per esempio <i>Financial Times </i>con la <a href="http://apps.ft.com/ftwebapp/index.html">sua applicazione mobile</a>.</p>
<h2>Conclusioni: in base a quali fattori puoi capire se tu o il tuo cliente avete veramente bisogno di un app?</h2>
<p>Per capire se hai veramente bisogno di creare un’applicazione da poter scaricare nei vari stores, i metri di giudizio ai quali dovresti affidarti e su cui focalizzarti sono:</p>
<ol>
<li>posso fornire all’utente le stesse funzionalità con un normale sito web responsive?</li>
<li>quanto tempo, risorse e denaro dovrei impiegare per creare un app e quali per creare un sito web che offra le stesse funzionalità?</li>
<li>qual è lo scopo finale (effettivo) del tuo progetto/lavoro?</li>
<li>quali sono le reali esigenze dell’utente?</li>
</ol>
<p>Più semplicemente, se hai bisogno di offrire un prodotto che deve essere accessibile da diversi tipi di dispositivi (sia da quelli desktop che da quelli quelli mobili) allora la miglior cosa è sicuramente optare per una <b>versione responsive del sito web</b>.</p>

		</div> 
	</div> <div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu sei un web designer come me e vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" />
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab18a412d44c-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab18a412d44c-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/creare-un-app-ne-veramente-bisogno/">Creare un app: ne hai veramente bisogno?</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/creare-un-app-ne-veramente-bisogno/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook mobile login: come integrarlo in un&#8217;applicazione HTML5</title>
		<link>https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/</link>
		<comments>https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/#comments</comments>
		<pubDate>Fri, 13 Jun 2014 13:34:03 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[facebook mobile login]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[HTML5 Mobile App]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile app]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=4046</guid>
		<description><![CDATA[<p>Phonegap/Cordova permette di integrare il Facebook mobile login in un'applicazione ibrida realizzata in HTML5, CSS3 e Javascript permettendo l'accesso ai controlli nativi del dispositivo, grazie ad una combinazione del Facebook SDK nativo e di quello Javascript. Tuttavia questo metodo è limitato alle applicazioni che saranno poi compilate sotto forma di app nativa. In questo articolo ti mostro una risorsa alternativa per implementare il login di Facebook in qualsiasi applicazione HTML5.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/">Facebook mobile login: come integrarlo in un&#8217;applicazione HTML5</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Nei vari app stores possiamo trovare un numero sempre più grande di <strong>applicazioni che integrano il login di Facebook</strong> al proprio interno per dare la possibilità all&#8217;utente di effettuare l&#8217;accesso molto più comodamente e velocemente, evitando di costringerlo ad iscriversi ad un nuovo servizio, con tutti i rischi che tale operazione comporta (come per esempio perdere una grande fetta di utenti).</p>
<p>Per aggiungere questa funzionalità nei miei progetti da pubblicare come applicazioni ibride (mobile app in HTML5 &#8220;inglobate&#8221; all&#8217;interno di app native), ho sempre utilizzato il plugin Phonegap &#8220;<em><strong><a title="Phongap facebook plugin" href="https://github.com/phonegap/phonegap-facebook-plugin">Phonegap Facebook Plugin</a>&#8220;, </strong></em>che<em><strong> </strong></em>utilizza una combinazione dei &#8220;moduli&#8221; nativo e javascript messi a disposizione dall&#8217;SDK di Facebook.</p>
<p>Grazie al <em>Facebook Plugin di Phonegap</em> è quindi possibile &#8220;manovrare&#8221; il login nativo mediante delle semplici API javascript.</p>
<p>&nbsp;</p>
<p><img class="aligncenter wp-image-4054 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/06/Facebook-mobile-login.jpg" alt="Facebook-mobile-login" width="690" height="400" /></p>
<p>In fondo è proprio questo lo scopo dei plugin per Phonegap, ed anche un dei vantaggi di sviluppare mobile app in HTML5: quello di riuscire ad <strong>accedere alle funzionalità native del dispositivo direttamente da codice Javascript</strong>.</p>
<p>Tuttavia questa strada porta <strong>alcuni svantaggi</strong>, come quello di dover comunque dipendere da un plugin di terze parti, oppure quello di non poter essere utilizzato nel caso in cui non volessimo distribuire la nostra applicazione HTML5-CSS3-Javascript sotto forma di app ibrida (compilandola quindi con strumenti come Xcode o Eclipse), ma volessimo renderla accessibile in remoto, collegandosi semplicemente ad una pagina web (come per esempio hanno fatto <a title="Financial Times mobile app" href="http://apps.ft.com/">Financial Times</a> e <a title="Forecast.io - Meteo HTML5 Mobile App" href="http://forecast.io/">Forecast.io</a> con le loro HTML5 mobile app, vedi immagine seguente).</p>
<p>&nbsp;</p>
<p><img class="aligncenter wp-image-4055 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/06/HTML5-mobile-apps.jpg" alt="HTML5-mobile-apps" width="690" height="400" /></p>
<p style="text-align: center;"><em>Le applicazioni HTML5 ottimizzate per mobile di Financial Times e Forecast.io</em></p>
<hr />
<p><em>#facebook #mobileapp login &#8211; Come implementarlo in #HTML5</em><br /><a href='https://twitter.com/share?text=%23facebook+%23mobileapp+login+-+Come+implementarlo+in+%23HTML5&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Facebook mobile login: una strada alternativa</h2>
<p>In questo articolo ti voglio mostrare una risorsa molto interessante, che ho trovato utilissima  per poter <strong>implementare un Facebook mobile login su di un&#8217;HTML5 mobile app senza necessariamente utilizzare dei tools nativi,</strong> come il plugin per Phonegap sopra citato.</p>
<p>Si tratta di una micro-libreria Javascript realizzata da <a style="font-weight: bold; color: #222222;" href="http://coenraets.org/blog/bio/">Christophe Coenraets</a>, brillante sviluppatore professionista che lavora per <span style="color: #444444;">Salesforce.com (ti consiglio vivamente di seguirlo, se sei interessato a <a title="Html Mobile Accelerato - Come creare un app in HTML5, CSS3 e Javascript" href="http://www.upcreative.net/html-mobile-accelerato/">come creare un app in HTML5, CSS3 e Javascript</a>), il cui lavoro è principalmente focalizzato sullo sviluppo di applicazioni mobile <em>web-based</em> ( quindi <em>single-page-application</em>).</span></p>
<p>La libreria si chiama <strong>OpenFB</strong> e risulta molto utile per poter implementare il Facebook mobile login sulla propria applicazione, senza affidarsi necessariamente a dei componenti nativi.</p>
<p>Coenraets, che avendo la necessità di implementare questa funzionalità in uno dei suoi lavori ha pensato di adattarla in una soluzione standard in modo tale che tutti potessero usufruirne, ha dato la possibilità a chiunque di inserire facilmente il login di Facebook nel proprio progetto.</p>
<hr />
<p><em>#facebook #mobileapp login &#8211; Come implementarlo in #HTML5</em><br /><a href='https://twitter.com/share?text=%23facebook+%23mobileapp+login+-+Come+implementarlo+in+%23HTML5&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Facebook mobile login: come si usa la libreria OpenFB</h2>
<p>Utilizzare la libreria si presenta piuttosto semplice, vediamo come funziona:</p>
<p>Semplice Login:</p><pre class="crayon-plain-tag">openFB.login(scope, successHandler, errorHandler);</pre><p>
Riprendere la lista degli amici dell&#8217;utente:</p><pre class="crayon-plain-tag">openFB.api({path: '/me/friends', success: successHandler, error: errorHandler});</pre><p>
Pubblicare un post nella bacheca dell&#8217;utente:</p><pre class="crayon-plain-tag">openFB.api(
{
     method: 'POST',
     path: '/me/feed',
     params: {
          message: 'Messaggio di prova per le API di Facebook'
     },
     success: successHandler,
     error: errorHandler
});</pre><p>
<h3><img class="aligncenter wp-image-4052 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/06/Facebook-mobile-login-API.jpg" alt="Facebook-mobile-login-API" width="690" height="400" /></h3>
<h3>Facebook mobile login: primi passi</h3>
<p>Per integrare la risorsa nei tuoi progetti hai solamente bisogno di:</p>
<ol>
<li>Creare un&#8217;applicazione Facebook da associare al tuo progetto recandoti a <a href="https://developers.facebook.com/apps">questo link</a></li>
<li>Copiare l&#8217;ID dell&#8217;applicazione Facebook appena creata ed usarlo come primo parametro della funzione di inizializzazione della libreria OpenFB posta nella pagina principale della tua <em>Single Page Application </em>(<em>index.html</em>): <span style="color: #444444;"><em>openFB.init()</em>.</span></li>
<li>Eseguire la pagina <em>index.html</em> da un indirizzo che corrisponda a quello inserito al momento della creazione dell&#8217;applicazione Facebook, in corrispondenza del parametro &#8220;<em><span style="color: #4e5665;">Valid OAuth redirect URIs</span></em>&#8221; situato nella scheda &#8220;<em>Settings&#8221;</em>.</li>
</ol>
<p><img class="aligncenter wp-image-4053 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/06/Facebook-mobile-login-URI.jpg" alt="Facebook-mobile-login-URI" width="690" height="467" /></p>
<hr />
<p><em>#facebook #mobileapp login &#8211; Come implementarlo in #HTML5</em><br /><a href='https://twitter.com/share?text=%23facebook+%23mobileapp+login+-+Come+implementarlo+in+%23HTML5&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Facebook mobile login: conclusioni</h2>
<p>Come vedi il funzionamento è piuttosto semplice, e chiunque può facilmente integrarlo nella propria applicazione, app che non deve essere necessariamente distribuita sotto forma di app ibrida/nativa ma che può essere benissimo pubblicata online.</p>
<p>Infatti l&#8217;autore della libreria mette a disposizione anche la demo di un&#8217;applicazione-base che puoi consultare per capire meglio come integrare OpenFB nella tua <em>Single Mobile Application; </em>la demo che funziona anche se visualizzata con un normale browser, sia mobile che desktop.</p>
<p>In particolare, la libreria è stata pensata per fare in modo che il Facebook mobile login funzioni sia nel caso in cui il progetto preveda l&#8217;utilizzo di Phonegap (quindi nel caso di un&#8217;applicazione ibrida), sia nel caso di applicazioni &#8220;<em>browser-based</em>&#8220;: se eseguita con Cordova essa sfrutta una web view nativa, mentre se eseguita su browser, il login sarà mostrato attraverso una finestra di popup.</p>
<p>Io l&#8217;ho già implementata in una mia applicazione, e la trovo molto utile.</p>
<p>Ma mi piacerebbe sapere il tuo parere: cosa ne pensi?</p>
<p>Fammelo sapere nei commenti!</p>
<p>PS. Quasi dimenticavo: ecco <strong>il link all&#8217;ottimo ed utilissimo articolo originale di Coenraets, ai sorgenti e alla demo</strong>:</p>

		</div> 
	</div> <div class="g-cols"><div class="one-third"><div class="wpb_button align_center"><a href="http://coenraets.org/blog/2014/04/facebook-phonegap-cordova-without-plugin/"class="g-btn type_primary"><span>LINK ALL'ARTICOLO</span></a></div>
</div><div class="one-third"><div class="wpb_button align_center"><a href="https://github.com/ccoenraets/OpenFB"class="g-btn type_primary"><span>SORGENTI LIBRERIA</span></a></div>
</div><div class="one-third"><div class="wpb_button align_center"><a href="http://coenraets.org/apps/openfb/index.html"class="g-btn type_primary"><span>DEMO</span></a></div>
</div></div><div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div><div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu sei un web designer come me e vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://www.upcreative.net/html-mobile-accelerato/"><img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" /></a>
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab18a4144a87-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab18a4144a87-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/">Facebook mobile login: come integrarlo in un&#8217;applicazione HTML5</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/facebook-mobile-login-come-integrarlo-in-unapplicazione-html5/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Come creare Mobile App in HTML: il sistema di javascript templating</title>
		<link>https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/</link>
		<comments>https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/#comments</comments>
		<pubDate>Wed, 30 Apr 2014 09:02:16 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[html template]]></category>
		<category><![CDATA[HTML5 Mobile App]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[single page application]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3889</guid>
		<description><![CDATA[<p>Creare Mobile App in HTM, CSS3 e Javascript senza seguire una logica che possa permettere di mantenere organizzata la struttura del progetto è una pratica purtroppo molto diffusa. In questo articolo ti mostro come aumentare mantenibilità e scalabilità del codice generando markup HTML di un'applicazione tramite i sistemi di javascript templating.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/">Come creare Mobile App in HTML: il sistema di javascript templating</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Per creare una <em>Mobile App in HTML</em> o una qualsiasi <em>web app javascript</em> è fondamentale organizzare il progetto secondo una <strong>struttura ben adeguata, </strong>evitando di produrre codice secondo la &#8220;non-logica&#8221; <em>Spaghetti Code </em>(leggi <a title="HTML5 Mobile App: come definire la struttura dati" href="http://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/">questo articolo</a> per saperne di più)<strong>.</strong></p>
<p>Come già affrontato in altri numerosi post, adottare una <a title="HTML5 Mobile App: l’importanza del framework MVC" href="http://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/"><strong>logica di sviluppo basata sull&#8217;MVC</strong></a> può aiutare notevolmente lo sviluppatore a raggiungere tale obiettivo.</p>
<p>Un altro metodo molto utile per mantenere il codice <strong>scalabile</strong> e <strong>mantenibile</strong>, oltre che <a title="Le 6 migliori tecniche per aumentare le performance di una HTML5 Mobile App" href="http://www.upcreative.net/6-migliori-tecniche-per-le-performance-di-html5-mobile-app/"><strong>aumentare le performance</strong></a> dell&#8217;applicazione, consiste nell&#8217;utilizzo di <b>sistemi di Javascript templating</b> in stretta relazione con le <i>view</i>, che si occupano della rappresentazione visiva dei vari componenti dell’interfaccia.</p>
<p>I <em>sistemi di templating Javascript</em> consentono infatti di generare il markup dinamico di una determinata <em>view</em> (leggi <a title="HTML Mobile App: il funzionamento delle view" href="http://www.yourinspirationweb.com/2014/04/29/html-mobile-app-il-funzionamento-delle-view/">questo articolo che ho scritto per YourInspirationWeb  per sapere come utilizzare una view con backbone.js</a>) in base ai dati che gli vengono passati al momento della compilazione.</p>
<p>Prima di entrare più nel dettaglio, vediamo quali sono solitamente le alternative adottate per la generazione di markup in una Mobile App sviluppata in HTML5, CSS3 e Javascript.</p>
<hr />
<p><em>Come creare #MobileApp in #HTML5: il sistema di #javascript templating</em><br /><a href='https://twitter.com/share?text=Come+creare+%23MobileApp+in+%23HTML5%3A+il+sistema+di+%23javascript+templating&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Creare Mobile App in HTML: come viene generato solitamente il markup</h2>
<p>Siccome in una HTML5 Mobile App tutta la generazione del <em>markup</em> e degli elementi DOM dell’interfaccia avviene tramite linguaggio <em>lato-client</em>, e quindi tramite javascript, generalmente si tende a seguire 3 strade principali per inserire il codice HTML di ogni schermata (o <em>view</em>) all’interno del progetto:</p>
<h4>1 &#8211; Effettuare chiamate ajax che restituiscono dati HTML da un server remoto.</h4>
<p><img class="aligncenter wp-image-3896 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/mobile-app-html-template-via-ajax.jpg" alt="mobile-app-html-template-via-ajax" width="690" height="400" /></p>
<p>Rappresenta secondo me il tipo di approccio più sbagliato.</p>
<p>Stiamo parlando di applicazioni mobile e ciò comporterebbe il <strong>trasferimento di una grande quantità di dati</strong> e <strong>tempi di attesa più lunghi</strong>, soprattutto se l’utente sta usando l’applicazione in una zona fisica in cui il traffico è limitato o quasi assente.</p>
<p>Senza contare il fatto che il codice restituito (stringa formata dall&#8217;HTML generato dal server) risulta difficile da interpretare per l’applicazione JavaScript, e solitamente necessita di un&#8217;<strong>adeguata formattazione</strong> prima dell&#8217;immissione all&#8217;interno del documento.</p>
<p>La comunicazione in remoto dovrebbe essere pertanto utilizzata <strong>solo al fine di reperire o inviare dati &#8220;puri&#8221;</strong> (come per esempio un oggetto JSON).</p>
<h4>2 &#8211; Inserire l’HTML di tutte le schermate<i> </i>nel documento</h4>
<p><img class="aligncenter wp-image-3897 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/mobile-app-html-statico.jpg" alt="mobile-app-html-statico" width="690" height="400" /></p>
<p>Per creare una Mobile App in HTML si utilizza un file principale <em>index.html. </em></p>
<p>Secondo questo metodo all&#8217;interno di quel file viene inserito tutto il markup necessario per far funzionare l&#8217;applicazione, relativo a alle varie <em>view</em> che la compongono.</p>
<p>Può andar bene per progetti formati al massimo da 4/5 schermate, dopo di ché diventa facile smarrirsi nei meandri del codice HTML come un bambino di 3 anni in un bosco.</p>
<p>Se poi consideriamo il fatto che in quelle <i>view</i> possiamo avere la necessità di inserire dati dinamici, per aggiungerli al DOM dovremmo comunque servirci di codice Javascript, utilizzando così non uno, ma due tipi di approcci diversi per lo stesso scopo (1 &#8211; html statico, 2 &#8211; generazione di <em>markup</em> via javascript).</p>
<p>Inoltre, inserire tutti i nodi DOM all’interno del documento <strong>riduce notevolmente le <a title="Performance CSS3: consigli per ottimizzare le animazioni" href="http://www.upcreative.net/performance-css3-consigli-per-ottimizzare-le-animazioni/">prestazioni di <em>rendering</em></a></strong>, a causa del numero di elementi HTML per i quali la CPU è costretta a ricalcolare gli stili nel momento in cui si verifica qualsiasi modifica CSS, oppure ogni volta che un elemento si sposta nello schermo (quando ciò questo accade vengono coinvolti nello spostamento anche altri nodi del documento).</p>
<h4>3. Generare codice tramite javascript con una concatenazione di stringhe</h4>
<p><img class="aligncenter wp-image-3898 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/html-mobile-app-markup-concatenazione-stringhe.jpg" alt="html-mobile-app-markup-concatenazione-stringhe" width="690" height="204" /></p>
<p>E&#8217; provato che creare grandi blocchi di codice HTML tramite una concatenazione di stringhe riduce drasticamente la velocità per le prestazioni di esecuzione, in quanto la variabile <em>in-memory</em> utilizzata per svolgere tale operazione va ad <strong>occupare parte della CPU</strong>.</p>
<p>Coloro che adottano questa tecnica inoltre, si perdono spesso in cicli nidificati in cui non si capisce quale <em>tag</em> chiude l’altro, e dove non si riesce a distinguere dati puri dall’HTML.</p>
<p>Ecco un possibile esempio di questa tecnica:</p><pre class="crayon-plain-tag">var markup = "&lt;div class=\"main-wrapper\"&gt;"+
				"&lt;header class=\"page-header\" role=\"header\"&gt;&lt;h1 class=\"\"&gt;&lt;/h1&gt;&lt;/header&gt;"+
				"&lt;section class=\"page-section\"&gt;&lt;/section&gt;"+
				"&lt;ul class=\"contacts-list\"&gt;";

			for(var i=0;i&lt;contacts.length;i++){
				markup+="&lt;li class=\"contact-list-item\"&gt;"+contacts[i].name+" "+contacts[i].surname+"&lt;/li&gt;";
			}

			markup+="&lt;/ul&gt;&lt;/div&gt;";

$(".content").append(markup);</pre><p>
&nbsp;</p>
<p>E’ preferibile invece <strong>lasciare libera la memoria del dispositivo per le operazioni di rendering</strong>, che influiscono sulla <em>user-experience</em> del prodotto finale, così come è preferibile <strong>lasciare separati codice HTML da codice Javascript</strong>, in modo da aumentare la <b>mantenibilità</b> e la <b>scalabilità </b>del progetto e poter facilmente <strong>riutilizzare</strong> uno stesso <em>template</em> in diverse parti<strong>.</strong></p>
<h2>Creare Mobile App in HTML: il funzionamento dei sistemi di templating</h2>
<p><img class="aligncenter wp-image-3894 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/Crere-mobile-app-in-HTML-i-sistemi-di-Javascript-templating.jpg" alt="Crere-mobile-app-in-HTML---i--sistemi-di-Javascript-templating" width="690" height="400" /></p>
<p>Gli sviluppatori javascript hanno a disposizione diversi framework di templating per generare via <em>client</em> il markup HTML delle <em>view </em>che compongono le loro applicazioni (come per esempio <a href="http://handlebarsjs.com/"><i>Handlebars.js</i></a>, <i><a href="http://mustache.github.io/">Mustache</a>,</i> o il sistema interno al framework <a href="http://underscorejs.org/"><i>underscore.js</i></a>).</p>
<blockquote><p>Per conoscere anche altri sistemi di javascript templating, ti consiglio di leggere questo mio precedente articolo:</p>
<ul>
<li><a title="I sistemi di javascript templating e le migliori librerie" href="http://www.upcreative.net/web-application-i-sistemi-di-javascript-templating-e-le-migliori-librerie/">I sistemi di javascript templating e le migliori librerie</a></li>
</ul>
</blockquote>
<p>I <em>template</em> possono essere savat in variabili <strong>in-memory</strong><em>, in</em> <strong>file HTML indipendenti</strong> o <strong>all&#8217;interno del documento</strong>, solitamente racchiusi in tag <i>&lt;script&gt;</i> con un attributo &#8220;<i>type&#8221; </i>personalizzato (per esempio “<strong><em>text/template</em></strong>”:  “<em>&lt;script type=“text/template”&gt; &lt;!&#8211; markup del template —&gt; &lt;/script&gt;</em>”).</p>
<hr />
<p><em>[Tweet &#8220;Come creare #MobileApp in #HTML5: il sistema di #javascript templating</em><br /><a href='https://twitter.com/share?text=%5BTweet+%22Come+creare+%23MobileApp+in+%23HTML5%3A+il+sistema+di+%23javascript+templating&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/' target='_blank'>Click To Tweet</a></p>
<hr />&#8220;]
<p>Ogni template ha accesso a delle variabili, a seconda dei dati che gli vengono passati.</p>
<p>Utilizzare le variabili è molto semplice e generalmente è possibile farlo all’interno di <strong>appositi delimitatori</strong>, il cui funzionamento non è molto diverso da quello della generazione del markup HTML dinamico tramite i più diffusi linguaggi <em>lato-server</em> (ASP, PHP, C# ecc.).</p>
<p>Il lavoro è reso ancora più facile per il fatto che la maggior parte di questi sistemi accetta dati in formato JSON (formato in cui può essere convertito facilmente qualsiasi tipo di dati).</p>
<p>I delimitatori delle variabili possono differire a seconda del framework utilizzato, ma il funzionamento logico rimane pressoché sempre lo stesso.</p>
<p>Due sono le categorie principali in cui si suddividono i vari tipi di sistemi di templating:</p>
<ul>
<li><b>embedded javascript, </b>comprende i frameworks che permettono l’utilizzo di codice javascript all’interno dei propri template</li>
<li><b>logic less, </b>comprende quelli che non permettono l’utilizzo di javascript al loro interno, ma limitano l’uso di logiche come cicli e condizioni a sintassi personalizzate</li>
</ul>
<p>Vediamo il funzionamento del sistema di templating di <strong><i>underscore.js</i>,</strong> che appartiene alla prima categoria, e che può essere utilizzato per <a title="Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js" href="http://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/">creare mobile app in html con il framework MVC <i>Backbone.js</i></a><b>.</b></p>
<p>Più concretamente, vediamo l’esempio di un ciclo che genera in maniera dinamica l’HTML necessario per mostrare una lista di individui.</p>
<p>Consideriamo di dover generare il markup della lista servendoci dei seguenti dati in formato JSON:</p><pre class="crayon-plain-tag">{
	'employees': [
		{‘name': ‘Giacomo Freddi’, occupation: ‘Web Designer / Front-End Developer’},
		{‘name': ‘Mario Rossi’, occupation: ‘CEO’},
		{‘name': ‘Franco Mancini’, occupation: ‘Web Marketer’},
		...
	]
}</pre><p>
Ecco come potrebbe presentarsi il template secondo il sistema di templating di <i>underscore.js</i></p><pre class="crayon-plain-tag">&lt;ul&gt;
   &lt;%for(var i=0;i&lt;employees.length;i++){%&gt;
   &lt;li&gt;&lt;%=employees[i].name%&gt; - &lt;%=employees[i].occupation%&gt;&lt;/li&gt; 
   &lt;%}%&gt;
&lt;/ul&gt;</pre><p>
In tal caso il risultato del markup generato sarebbe:</p><pre class="crayon-plain-tag">&lt;ul&gt;
   &lt;li&gt;Giacomo Freddi - Web Designer / Front-End Developer&lt;/li&gt;
   &lt;li&gt;Mario Rossi - CEO&lt;/li&gt;
   &lt;li&gt;Franco Mancini - Web Marketer&lt;/li&gt;
   …
&lt;/ul&gt;</pre><p>
Con i javascript templating lo sviluppatore ha sicuramente una cosa in meno a cui pensare, in quanto la maggior parte del lavoro di generazione del markup viene svolto dal sistema stesso.</p>
<h2>Creare mobile app in HTML: i benefici del sistema di templating</h2>
<p>Ciò porta ad un gran numero di benefici nel creare mobile app in HTML o qulasiasi <em>single page application</em>, in particolare se si decide di salvare i <em>template</em> di ogni <i>view</i> all&#8217;esterno del documento principale dell’applicazione (<i>index.html</i>), inserendo ognuno di essi in un apposito file (es.: <i>nome-della-view.html).</i></p>
<p>Il contenuto del file viene poi caricato dinamicamente, solamente se e quando abbiamo bisogno di effettuare il <em>render</em> di quella <i>view </i>all’interno dell’interfaccia.</p>
<p>Quello appena esposto è il metodo che preferisco, in quanto permette di separare completamente all&#8217;interno del progetto il concetto di <em>templating</em> da tutto il resto (sinonimo di <em>mantenibilità</em> e <em>scalabilità</em>) e, nel senso più &#8220;fisico&#8221; del termine, ogni <i>view</i> dall&#8217;altra.</p>
<p>Così facendo è possibile mantenere la struttura dei file dell’applicazione ancora <strong>più organizzata</strong>.</p>
<p><img class="aligncenter wp-image-3895 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/html-mobile-app-javascript-templating.jpg" alt="html-mobile-app-javascript-templating" width="690" height="400" /></p>
<p>Bisogna comunque  fare attenzione al fatto che <b>i template non rappresentano di per sé delle <i>view</i></b><i>,</i> bensì lo strumento grazie al quale esse possono effettuare il <em>render</em> del markup HTML che le rappresenterà all’interno del documento. Molti sviluppatori spesso confondono il concetto di <i>view</i> con quello di <i>template,</i> ma <b>non sono assolutamente la stessa cosa</b>.</p>
<p>Una <i>view</i> è un oggetto che che <i>osserva</i> un modello dati (in MVC i cosiddetti <i>model</i>) e <strong>mantiene la propria rappresentazione visiva aggiornata</strong> in base ad esso. Una <em>view</em> è definita da codice <i>Javascript</i>.</p>
<p>Il <i>template</i> potrebbe essere lo strumento di cui si serve la <i>view</i> per generare parte del proprio <em>markup</em> necessario alla visualizzazione, o di tutto il <em>markup</em> necessario.</p>
<hr />
<p><em>Come creare #mobileapp in #HTML5 &#8211; i benefici del #javascript #templating</em><br /><a href='https://twitter.com/share?text=Come+creare+%23mobileapp+in+%23HTML5+-+i+benefici+del+%23javascript+%23templating&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Conclusioni</h2>
<p>Oltre che per creare mobile app in HTML o qualsiasi altro tipo di <em>web app </em>sviluppata<em> </em>in HTML, CSS3 e Javascript, i sistemi di templating sono molto utilizzati anche per la realizzazione di siti web che forniscono una <em>user-experience</em> di qualità molto elevata.</p>
<p>Solitamente gli sviluppatori <em>front-end</em> più affermati si servono di sistemi di javascript templating per generare markup da template salvati in file .<em>html</em> esterni, o dichiarati all&#8217;interno della pagina in appositi <em>script</em> personalizzati.</p>
<p>E tu hai mai utilizzato i sistemi di javascript templating? Ne hai privato qualcuno da suggerire? Scrivilo nei commenti e sarò felice di risponderti!
		</div> 
	</div> <div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando questa tecnica insieme a molte altre, ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://www.upcreative.net/html-mobile-accelerato/"><img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" /></a>
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab18a415d6db-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab18a415d6db-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/">Come creare Mobile App in HTML: il sistema di javascript templating</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/come-creare-mobile-app-in-html-sistema-di-javascript-templating/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>HTML5 Mobile App: come definire la struttura dati</title>
		<link>https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/</link>
		<comments>https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/#comments</comments>
		<pubDate>Thu, 24 Apr 2014 08:32:23 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Backbone.js]]></category>
		<category><![CDATA[HTML5 Mobile App]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[MVC Javascript frameworks]]></category>
		<category><![CDATA[single page application]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3864</guid>
		<description><![CDATA[<p>Se si vuole realizzare un' HTML5 Mobile App uno degli aspetti più importanti è quello della struttura logica: servirsi di model e collection per definire i dati che saranno gestiti all'interno del progetto è fondamentale per quanto riguarda l'organizzazione, la mantenibilità e la riusabilità del codice. In questo post ti mostro come organizzare i dati usando Backbone.js.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/">HTML5 Mobile App: come definire la struttura dati</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Più volte ho discusso l&#8217;importanza di usare i pattern di <strong>sviluppo MVC</strong> nella realizzazione di applicazioni web ed HTML5 Mobile App realizzate in Javascript e CSS3: scrivere codice come capita e senza alcuna logica può andar bene per progetti di piccolissime dimensioni o singole pagine web, ma se stiamo parlando di una <em>single page application,</em> quindi un&#8217;applicazione in cui il codice lato-client gestisce, oltre ai dati, anche la generazione di markup, il discorso cambia.</p>
<p><img class="aligncenter wp-image-3869 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/javascript-spaghetti-code.jpg" alt="javascript-spaghetti-code" width="690" height="400" /></p>
<p>&nbsp;</p>
<h5><em>Spaghetti code</em></h5>
<p>E&#8217; ciò che dobbiamo evitare in quei casi. In altre parole dobbiamo evitare di sviluppare single page application e web app senza un&#8217;architettura logica che ci consenta di scrivere <strong>codice ben organizzato, facilmente leggibile, mantenibile e riusabile</strong>.</p>
<p>Questo è lo scopo principale dei metodi di sviluppo MVC.</p>
<p>Abbiamo visto quanto possono essere importanti le view nel web in generale e <a title="HTML5 Mobile App: l’importanza del framework MVC" href="http://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/">perché considerare di usare un framework javascript MVC</a> per la realizzazione di HTML5 Mobile App.</p>
<p><em>In un post che ho scritto per YourInspirationWeb, metto in evidenza l&#8217;importanza dell&#8217;impiego delle view in ambito web ed il perchè esse sono così importanti:</em></p>
<ul>
<li><em><a title="HTML5 Mobile App: il web ha bisogno delle view" href="http://www.yourinspirationweb.com/2014/04/14/html-mobile-app-e-web-app-il-web-ha-bisogno-delle-view/">HTML5 Mobile App: il web ha bisogno delle view</a></em></li>
</ul>
<hr />
<p><em>#HTML5 #MobileApp definire la struttura dati con #backbonejs</em><br /><a href='https://twitter.com/share?text=%23HTML5+%23MobileApp+definire+la+struttura+dati+con+%23backbonejs&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>HTML5 Mobile App: MVC per rendere il javascript mantenibile e riusabile</h2>
<p><img class="aligncenter wp-image-3870 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/HTML5-Mobile-App-Javascript-MVC.jpg" alt="HTML5-Mobile-App-Javascript-MVC" width="690" height="347" /></p>
<p>Per molti anni il pattern di sviluppo MVC è stato usato in moltissimi linguaggi di sviluppo. Al giorno d’oggi, tutti i web designer e front-end developer hanno già cominciato da qualche tempo ad applicare la logica MVC al linguaggio che per noi risulta più rilevante: il Javascript.</p>
<p>Con il Javascript abbiamo a disposizione <a title="Creare applicazioni web: il pattern Model-View-Controller ed i principali MVC javascript frameworks" href="http://www.upcreative.net/creare-applicazioni-web-il-pattern-mvc-ed-i-principali-mvc-javascript-frameworks/">diversi tipi di frameworks</a> che offrono supporto per l’MVC nelle sue numerose variazioni ( la famiglia di pattern MV*), permettendoci di estendere la struttura delle nostre applicazioni senza troppe difficoltà.</p>
<p>Alcuni dei frameworks più famosi possono essere per esempio <a title="Backbone.js Javascript MVC framework" href="http://backbonejs.org/">Backbone</a> o <a title="Javascript MVC Frameworks" href="https://angularjs.org/">AngularJS</a>. Il loro ruolo è fondamentale, in quanto consentono allo sviluppatore di evitare la scrittura del codice in modalità <em>Spaghetti code</em>. Pertanto è importantissimo capire di cosa possiamo beneficiare con un adeguato pattern di programmazione.</p>
<p>In un precedente articolo avevo spiegato come realizzare una semplice HTML5 Mobile App con <em>Backbone.js</em>:</p>
<ul>
<li><a title="Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js" href="semplice-html5-mobile-app-bootstrap-ratchet-backbone-js">Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js</a></li>
</ul>
<p>In questo capitolo ti voglio mostrare più nel dettaglio una delle parti che compongono l’acronimo MVC: <strong>il model</strong> (o modello).</p>
<p>Lo farò in relazione ad uno dei sopra citati framework MVC, ovvero <b>Backbone.js, </b>che è proprio quello che approfondiremo per la realizzazione di HTML5 Mobile App.</p>
<h2>Gestire i dati con il model per una HTML5 Mobile App</h2>
<p><strong>I modelli costituiscono i dati dell’applicazione.</strong></p>
<p>Un modello può rappresentare per esempio un individuo, una nota, un articolo, un libro, o qualunque altra entità che possa avere 1 o più caratteristiche (nome, cognome, sesso, codice ISBN, matricola, colore, ecc..).</p>
<p>I modelli possono essere visti in modo completamente separato dagli elementi che compongono l’interfaccia-utente, anche se quando un modello subisce delle modifiche, esso normalmente avvisa gli “<strong>osservatori</strong>” (altre parti della struttura come per esempio le <em>view</em> &#8211; viste ) che si è verificato un cambiamento, permettendogli di agire di conseguenza.</p>
<p>Facciamo un esempio concreto al fine di comprendere meglio i modelli. Più nello specifico, prendiamo come punto di riferimento <a title="Tint Weather App - HTML5 Mobile App in CSS3 e Javascript" href="http://www.upcreative.net/tint-weather-app/">Tint</a>, la mia applicazione per il meteo.</p>
<p>In una normale applicazione meteo, il concetto di località ha bisogno di un suo modello che la rappresenti come un tipo di dato unico, con delle specifiche caratteristiche, che possono essere il nome (città o luogo), la latitudine, la longitudine, il paese di appartenenza ed altri possibili dati aggiuntivi.</p>
<p>Una specifica località potrebbe essere salvata nell’istanza di un model, che sarebbe accessibile e riusabile in più parti dell’applicazione.</p>
<p>Vediamo la definizione di un semplice modello che rappresenta il tipo di dati “località” con <em>Backbone.js</em>:</p><pre class="crayon-plain-tag">var LocationModel = Backbone.Model.extend({

	initialize:function () {
	//ci assicuriamo che ogni modello appena creato abbia un ordine numerico
	if( isNaN ( this.get(“order”) ) )
		this.set( {“order”, 0 } );
	},

	//dati predefiniti per la località

	defaults:{
		defaultLocation: false,
		userLocation: false,
		viewed: false
	}

});</pre><p>
<hr />
<p><em>#HTML5 #Mobileapp come definire un model con #Backbonejs</em><br /><a href='https://twitter.com/share?text=%23HTML5+%23Mobileapp+come+definire+un+model+con+%23Backbonejs&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/' target='_blank'>Click To Tweet</a></p>
<hr />
<p>La funzionalità integrate dei modelli variano a seconda del framework utilizzato, ma generalmente tutti i framework danno la possibilità di definire gli attributi, ovvero le proprietà di ogni modello, (come per esempio la cilindrata, il colore, la gamma o la marca per un ipotetico modello “macchina da strada”).</p>
<p>Backbone, come molti altri MVC frameworks, offre anche la possibilità di salvare i dati secondo varie modalità, come per esempio il <strong>localStorage</strong> o la <strong>sincronizzazione con un database</strong>.</p>
<p>Per avere maggiori informazioni sul metodo di salvataggio dei dati, ti consiglio di leggere  questo articolo che ho scritto per <a title="Your Inspiration Web" href="http://www.yourinspirationweb.com">YourInspirationWeb.com</a>:</p>
<ul>
<li><a title="HTML5 Mobile App: tecniche per il salvataggio dei dati" href="http://www.yourinspirationweb.com/2014/04/02/html5-mobile-app-tecniche-per-il-salvataggio-dei-dati/">HTML5 Mobile App: tecniche per il salvataggio dei dati</a></li>
</ul>
<h3>Gli osservatori dei modelli</h3>
<p>Un modello può avere anche diverse view (parti visuali dell&#8217;interfaccia) che lo stanno “osservando&#8221;, pronte a reagire ad eventuali cambiamenti.</p>
<p>Ritornando all’esempio di Tint, ogni località presenta la lista dei giorni e relativo meteo, oltre che una lista di orari, anch’essi ciascuno con la relativa condizione meteo.</p>
<p>L’applicazione usa 3 diverse view per ognuna delle località:</p>
<ul>
<li>la view per mostrare i dati principali e il meteo attuale del luogo</li>
<li>la view per mostrare il meteo nelle prossime ore della giornata</li>
<li>la view per mostrare il meteo nei prossimi giorni della settimana</li>
</ul>
<p>Tutte le view sopra elencate risultano “associate” allo stesso modello, e osservano eventuali cambiamenti che lo stesso può avere.</p>
<h2>Backbone.js e HTML5 Mobile App: le collection</h2>
<p>Nella maggior parte dei framework MV*, i modelli possono essere organizzati in gruppi: con <em>Backbone.js</em> tali gruppi vengono chiamati “<em>Collection</em>” (o collezioni).</p>
<p><strong>Gestire i modelli in collezioni</strong> aiuta a sviluppare applicazioni secondo una logica che permetta non osservare ciascun modello individualmente, ma reagire di conseguenza a qualunque modello che subisce delle modifiche in maniera “centralizzata”.</p>
<blockquote><p>Per comprendere meglio questo concetto, prendiamo di nuovo l&#8217;esempio su Tint: consideriamo 2 view in particolare, tra quelle che compongono l’interfaccia:</p>
<ul>
<li>la view <em>ManageLocations</em>: quella che consente di aggiungere, eliminare o modificare l’ordine delle località</li>
<li>la view <em>Locations</em>: che viene mostrata subito dopo l’avvio dell’applicazione ed offre all’utente la possibilità di scorrere orizzontalmente le varie località secondo l’ordine con cui esse sono state organizzate nella prima view menzionata. Questa view si preoccupa di creare per il modello di ogni località presente nella collection la relativa &#8220;sotto-view&#8221; inserendola al suo interno.</li>
</ul>
<p>L’applicazione è impostata in modo tale che la view “<em>Locations</em>&#8221; osservi i cambiamenti della collezione “<em>LocationCollection</em>”, la quale contiene tutti i modelli di ciascuna località aggiunta dall’utente, oltre a quella relativa alla sua posizione.</p>
<p>Così, non appena un‘utente aggiunge, elimina o modifica l’ordine di una località usando la view delle impostazioni (<em>ManageLocations</em>), la view <em>Locations</em> aggiunge la view associata al nuovo modello, rimuove quella del modello eliminato, o, qualora si trattasse di un riordinamento, reinizializza lo slider orizzontale.</p>
<p>&nbsp;</p></blockquote>
<p><img class="aligncenter wp-image-3872 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/04/HTML5-Mobile-App-osservatori-e-collection.jpg" alt="HTML5-Mobile-App---osservatori-e-collection" width="690" height="398" /></p>
<p><span style="color: #323333;">Di seguito ti mostro l’esempio della definizione di una <i>Collection di </i>località tramite <i>Backbone.js, </i>che ho usato per<i> Tint:</i></span></p><pre class="crayon-plain-tag">var LocationCollection = Backbone.Collection.extend({

	//definisce a quale modello di riferisce la collezione
	model: LocationModel,

	//definisco che il metodo di salvataggio per collection debba essere il localStorage (voglio salvare tutte le località aggiunte dall’utente nel dispositivo,
	//in modo da potergliele ripresentare al prossimo avvio)
	localStorage: new Backbone.LocalStorage("Parallax_Weather-locations"),

	//funzione che ho usato per generare in modo sequenziale l’ordine di ogni nuovo model,
	//per far sì che possa essere aggiunto all’ultimo posto

	nextLocation: function(newModel) {
		if (!this.length) return 1;
		return this.last().get('order') + 1;
	},

	//definisco la modalità di ordinamento dei modelli, in questo caso in base all’attributo ‘order'
	comparator: function(location) {
		return location.get("order");
	}

});</pre><p>
<h2>
<hr />
<p><em>#HTML5 #MobileApp definire un #collection con #Backbonejs</em><br /><a href='https://twitter.com/share?text=%23HTML5+%23MobileApp+definire+un+%23collection+con+%23Backbonejs&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/' target='_blank'>Click To Tweet</a></p>
<hr /></h2>
<h2>Conclusioni</h2>
<p>L&#8217;astrazione dei dati è un fattore fondamentale nella realizzazione di qualsiasi progetto web, e lo diventa ancora di più nel caso di HTML5 Mobile App sviluppate in CSS3 e Javascript.</p>
<p>Grazie ai numerosi framework MVC (e tutte le varianti dell&#8217;MVC, solitamente indicate con MV*) è possibile organizzare i dati di un progetto secondo una struttura logica che consenta di modificarli facilmente, oltre che separare totalmente la loro gestione da quella dell&#8217;interfaccia e della <em>user-experience,</em> di cui solitamente si occupano altri componenti come <em>view</em> e <em>controllers</em>.</p>
<p>E tu? Cosa pensi dei javascript framework MVC? Fammelo Sapere nei commenti!
		</div> 
	</div> <div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando queste tecniche insieme a molte altre, ho realizzato <strong>più di 10 mobile app in HTML, CSS3 e Javascript</strong> (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" />
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab18a4177112-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab18a4177112-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/">HTML5 Mobile App: come definire la struttura dati</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/html5-mobile-app-come-definire-la-struttura-dati/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML5 Mobile App: l’importanza del framework MVC</title>
		<link>https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/</link>
		<comments>https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/#comments</comments>
		<pubDate>Sat, 12 Apr 2014 10:57:42 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[HTML5 Mobile App]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[MVC Javascript frameworks]]></category>
		<category><![CDATA[single page application]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3817</guid>
		<description><![CDATA[<p>Nonostante moltissime applicazioni, sia desktop che HTML5 Mobile App, siano oggi sviluppate sotto forma di single page applications (basti pensare a javascript web app come Gmail, Trello, Asana, Todoist, Twitter ecc.), in Italia il concetto di MVC è ancora poco diffuso, e molti sviluppatori faticano a comprenderne la logica. In questo post ti voglio far riflettere sull'importanza dei frameworks MVC per lo sviluppo front-end.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/">HTML5 Mobile App: l’importanza del framework MVC</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Tutti gli sviluppatori e web designers hanno a che fare prima o poi con la <strong>manipolazione di elementi HTML DOM</strong>, momento in cui fanno conoscenza solitamente di jQuery, che con  tutti i plugin disponibili offre una mano non indifferente.</p>
<p>Il problema sorge di solito quando <strong>non si tratta più di realizzare siti web</strong>, ma iniziamo ad affacciarsi al mondo delle <em><strong>web app</strong></em>, dove è facilissimo perdersi in una pila infinita di elementi DOM e callback javascript intrecciate e nidificate tra di loro.</p>
<p>Visto che il numero di dispositivi mobile sta crescendo a vista d’occhio e sempre più sistemi operativi stanno rivolgendosi verso la direzione delle <i>single page applications, </i>(hai notato che anche le applicazioni di Windows-8 sono <strong>single-page-app</strong> costruite in <strong>HTML5</strong>?), ma soprattutto perché esse costituiscono il metodo principale per lo sviluppo di <strong>HTML5 Mobile App ibride</strong>, è opportuno considerare l&#8217;approccio a <strong><em>Frameworks Javascript Moderni. </em></strong></p>
<p>Tali frameworks ci possono assistere nel processo di strutturazione ed organizzazione dei nostri progetti, facendo in modo che essi risultino facilmente <strong>mantenibili e scalabili</strong> anche a lungo-termine.</p>
<hr />
<p><em>#Javascript #HTML #mobileapp: l&#8217;importanza del #framework #MVC</em><br /><a href='https://twitter.com/share?text=%23Javascript+%23HTML+%23mobileapp%3A+l%27importanza+del+%23framework+%23MVC&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>HTML5 Mobile App: MVC, Di cosa si tratta?</h2>
<p style="text-align: center;"><img class="size-full wp-image-3823 aligncenter" alt="javascript-models-view-controllers" src="http://www.upcreative.net/wp-content/uploads/2014/04/javascript-models-view-controllers.jpg" width="690" height="283" /></p>
<p>Questi nuovi framework sono nati con il preciso scopo di fornire allo sviluppatore un modo efficace di organizzare il codice usando delle variazioni del <strong><em>design pattern MVC</em></strong>, ovvero quella logica di programmazione che prende in considerazione tre tipi di entità:</p>
<ul>
<li><strong>Modelli (<em>models</em>)</strong>: rappresentano <strong>l’astrazione dei dati</strong>. Un modello notifica a tutti i componenti che stanno &#8220;osservando&#8221; il suo comportamento quale sia il suo stato attuale. Per fare un esempio più concreto, un modello definisce il tipo di dato in questione: può rappresentare una persona, una nota, un file, un articolo.</li>
<li><strong>Viste (<em>views</em>):</strong> sono gli elementi che compongono <strong>l&#8217;interfaccia di un&#8217;applicazione.</strong> Generalmente (ma non necessariamente) ad<strong> ogni vista è associato un model</strong> (per esempio, nella parte di interfaccia che mostra un&#8217;ipotetica lista di articoli, ogni riga della lista è costituita da una <em>view, </em>quindi ad ogni <em>view</em> è associato il model dell&#8217;articolo). Il compito della <em>view </em>è quello di &#8220;osservare&#8221; il comportamento del model associato ed agire di conseguenza, ma senza interferire con esso.</li>
<li><strong>Controller</strong>: è quella parte dell&#8217; applicazione che gestisce gli input (ovvero le azioni dell&#8217;utente) e modifica i model di conseguenza. Quando un <em>model</em> viene modificato o cambia di stato per mezzo del controller, la <em>view</em> associata, che sta &#8220;osservando&#8221; quel <em>model</em>, opera gli opportuni cambiamenti. Quindi possiamo dire che<strong> il <em>controller</em> gestisce le <em>view</em> indirettamente</strong>.</li>
</ul>
<p>Solitamente i <em>models</em> sono raggruppati in <strong>collections, </strong>ovvero &#8220;liste di <em>models</em>&#8221; che possono anch&#8217;essi essere associati ad una o più <em>views, </em>come succede per i<em> models.</em></p>
<p>Ecco uno schema di come funziona la maggior parte dei frameworks MVC:</p>
<p style="text-align: center;"><img class="size-full wp-image-2183 aligncenter" alt="il-pattern-MVC-per-creare-applicazioni-web" src="http://www.upcreative.net/wp-content/uploads/2013/10/il-pattern-MVC-per-creare-applicazioni-web.jpg" width="690" height="450" /></p>
<p style="text-align: center;"><span style="line-height: 1.5em;">Per sapere di più sui javascript design patterns ti consiglio di leggere questo mio articolo:</span></p>
<ul>
<li><a title="Web Applications: scrivere codice ben strutturato con i Javascript Design Patterns" href="http://www.upcreative.net/web-applications-codice-ben-strutturato-i-javascript-design-patterns/">Web Applications: scrivere codice ben strutturato con i Javascript Design Patterns</a></li>
</ul>
<h2>HTML5 Mobile App: perché usare un framework MVC</h2>
<p><strong>Un&#8217;applicazione Mobile realizzata in HTML5, CSS3 e Javascript rappresenta a tutti gli effetti una single-page-application.</strong></p>
<p>Anche le app più semplici, che magari sono costituite da 3 o 4 schermate, il più delle volte hanno una <strong><em>user-interface</em> molto complicata</strong>, a causa di tutte le richieste HTTP presenti, gli aggiornamenti del markup, le modifiche del DOM ecc. (senza contare che una schermata ne può avere di per sé altre al suo interno, come per esempio in una lista di elementi ).</p>
<p>Gli sviluppatori che scrivono &#8220;a naso&#8221; il loro codice, quindi senza utilizzare dei framework per la struttura logica dell&#8217;applicazione, inconsapevolmente creano delle <em>view</em>, dei <em>model</em>, e dei <em>controller</em>: l&#8217;unica differenza è che tutto ciò che fanno non è <strong>riusabile</strong>, ne tantomeno <strong>mantenibile</strong>.</p>
<p>In altre parole, finché il progetto rimane di piccole dimensioni riesce a &#8220;stare in piedi&#8221;, ma appena si complica anche solo di poco e diventa necessario aggiungere o modificare una parte dell&#8217;interfaccia, allora molto probabilmente cadrà in mille pezzi.</p>
<p>I Javascripts frameworks MVC, oltre a fornire robusti e stabili controlli come Models, Views e Controllers, forniscono anche una solida struttura, comprensiva di <strong>soluzioni testate negli anni da una gigantesca community di sviluppatori</strong>, che prima di noi hanno affrontato e risolto tutti gli stessi problemi logici e di programmazione in cui potremmo incappare nei nostri progetti.</p>
<p>Ciò può costituire un <strong>incredibile risparmio di tempo</strong> (se sei un web designer o sviluppatore sicuramente saprai cosa significa).</p>
<p style="text-align: center;"><img class="size-full wp-image-3825 aligncenter" alt="mvc-based-applications" src="http://www.upcreative.net/wp-content/uploads/2014/04/mvc-based-applications.jpg" width="690" height="300" /></p>
<p>Non so se hai mai notato applicazioni come <strong>Asana</strong>, <strong>Trello</strong>, <strong>Todoist</strong>, <strong>Wunderlist, </strong>ma anche <strong>Twitter</strong> o gli stessi <strong>Gmail</strong> e <strong>Google Drive </strong>(la lista sarebbe infinita): si tratta di <em>single page application</em> che caricano tutte le risorse come script, stili e views all&#8217;inizio, per poi modificare l&#8217;interfaccia con i dati che hanno già ottenuto, senza mai ricaricare la pagina, ma lasciando tutto il &#8220;duro lavoro&#8221; della gestione dei dati (creazione, modifica, eliminazione) al server, attraverso opportune richieste HTTP asincrone (le chiamate ajax).</p>
<p>Quindi, ricapitolando, <strong>se stai progettando un&#8217;applicazione che, come appunto tutte le HTML5 mobile app Ibride</strong> (ma anche le web application desktop), <strong>si serve di un servizio dati API di </strong><em><strong>back-end</strong>,</em> e si deve solo preoccupare di gestire le varie parti dell&#8217;interfaccia senza ricaricare mai la pagina (Single Page Application), allora <strong>l&#8217;impiego di un Javascript Framework MVC è proprio quello che ti serve</strong>.</p>
<p>Tuttavia, se stai progettando una semplice app in cui la generazione del markup risiede perlopiù nel server, mentre <em>lato-client</em> sono sufficienti pochi comandi jQuery per modificare il DOM del documento (come generalmente accade in un normale sito web), allora forse non ha senso impostare il tuo prossimo progetto basandolo su di un framework MVC, situazione in cui tutte le sue funzionalità sarebbero superflue.</p>
<p>Ma noi stiamo parlando di <strong>HTML5 Mobile App</strong> giusto?</p>
<blockquote><p>Il framework MVC è quello che fa al caso nostro.</p></blockquote>
<hr />
<p><em>La scelta giusta per #HTML #mobileapp &#8211; i #framework #MVC</em><br /><a href='https://twitter.com/share?text=La+scelta+giusta+per+%23HTML+%23mobileapp+-+i+%23framework+%23MVC&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>La difficoltà nell&#8217;apprendere la programmazione MVC</h2>
<p>A causa del vertiginoso progresso dei dispositivi <em>client</em> (in particolare di quelli mobili) che sta avvenendo in questi ultimi anni, il <strong>numero di sviluppatori javascript</strong> (quindi in particolare quelli che si occupano di interfacce <em>front-end</em>) <strong>è cresciuto a dismisura</strong>, e questo tipo di programmazione ha subìto come una &#8220;rinascita&#8221;.</p>
<p>Il tipo di linguaggio non è molto diverso da quello con il quale la maggior parte degli sviluppatori sono stati abituati a programmare in passato, sia per quanto riguarda la realizzazione di desktop software che di web application. Nel corso degli anni, infatti, gli sviluppatori sono stati abituati ad usare diversi tipi di linguaggi, come C++ o Java per i software client, o PHP, ASP, Python, ASP.NET ecc. per quelli <em>web-based</em>.</p>
<p style="text-align: center;"><img class="size-full wp-image-3821 aligncenter" alt="Linea-temporale-linguaggi-di-programmazione" src="http://www.upcreative.net/wp-content/uploads/2014/04/Linea-temporale-linguaggi-di-programmazione.jpg" width="690" height="300" /></p>
<p style="text-align: center;"><em>Linea temporale della nascita e dell&#8217;utilizzo nel corso degli anni dei linguaggi di programmazione più usati</em></p>
<p style="text-align: left;">
<p style="text-align: left;">Possiamo affermare che la logica dell&#8217; MVC per strutturare un&#8217;applicazione <strong>deriva effettivamente dalle precedenti generazioni di linguaggi</strong>, sin dagli anni 70.</p>
<p style="text-align: left;">Tuttavia, per tutti coloro che in questi ultimi anni hanno iniziato la propria carriera di web designers con linguaggi come ASP o PHP, è ancora molto difficile iniziare a comprendere il funzionamento di un&#8217;applicazione Javascript MVC.</p>
<p style="text-align: left;">E&#8217; normale.</p>
<p style="text-align: left;">E&#8217; normale soprattutto per quelli che fanno un utilizzo massiccio di codice <em>lato-server</em> per la generazione dell&#8217;interfaccia, i quali si trovano molto confusi, in particolare per quanto riguarda i concetti di <em>view</em> e di generazione di markup <em>lato-client</em>.</p>
<p style="text-align: left;">Effettivamente quello di comprendere la logica MVC è uno scoglio abbastanza grosso da abbattere, ma una volta superato questo ostacolo il divertimento è assicurato:</p>
<ul>
<li>velocità di scrittura</li>
<li>organizzazione tra le viste</li>
<li>riusabilità di una stessa vista da tutte le parti dell&#8217;applicazione</li>
<li>scalabilità del codice: l&#8217;applicazione è facilmente espandibile e riducibile senza alcun problema</li>
<li>estrema separazione del codice <em>lato-client</em> e codice <em>lato-server</em> &#8211; che costituisce un&#8217;altro elevato fattore di scalabilità e mantenibilità</li>
</ul>
<p>sono solo alcuni dei vantaggi che offre l&#8217;MVC.</p>
<h4>Sei mai stato a Mirabilandia?</h4>
<p>Periodicamente mi piace andare con i miei amici a Mirabilandia, che si trova a Ravenna, a sole due ore di macchina da dove vivo (Città di Castello, Perugia); nonostante i vari impegni, cerco di andarci nel mezzo della settimana, quando c&#8217;è meno gente ed è possibile divertirsi con le varie giostre senza fare code troppo elevate.</p>
<p>La giostra che mi piace di più è il <em>Katun </em>(l&#8217;hai mai provato?)<i>.</i></p>
<p style="text-align: center;"><img class="size-full wp-image-3822 aligncenter" alt="lo-scoglio-dell'MVC-Javascript" src="http://www.upcreative.net/wp-content/uploads/2014/04/lo-scoglio-dellMVC-Javascript.jpg" width="690" height="518" /></p>
<p style="text-align: center;"><em>Fonte della foto: <a href="https://www.flickr.com/photos/paolo_cst/3934985045/in/photolist-6ZHPXK-6ZHQZi-6ZHPT4-2soixK-6ZMPyf-2tfm8a-2tdwC4-2XMcon-2XMczP-2XRA1s-2XRBn9-2XMaG8-6MXhCo-6MXi5b-6MT6mT-6MT6gt-6MXhYG-6MT6i8-rWUgE-rWUgP-6ZHFHt-4UE8nz-59zw6h-7V3s7B-7V5Z2E-7V3qGr-7V3r1n-7V3zp2-7V3AmK-7V3AHZ-7V3Ch2-7V5WMu-7V5XwG-7V5YDq-7V6kjG-7V6v3Y-7V6DoC-7V6DQW-7V6FcQ-7V6FrQ-7V6GDJ-7V6JBU-7V6Kwd-7V6LmN-7V6PxA-7V6QT7-7V6Rud-7V6VqU-7V89KE-7V3hX4">Flickr</a></em></p>
<p>&nbsp;</p>
<p>Il<i> Katun </i>è progettato in modo tale che appena la giostra parte c&#8217;è una salita non indifferente, che viene percorsa molto piano, in modo da alimentare la paura del visitatore, prima di partire a grande velocità.</p>
<p>E ci riesce eccome! Ogni volta che salgo per la prima volta nel <em>Katun </em>dopo molto tempo, l&#8217;ansia e la paura durante quella salita sono alle stelle, ma appena la giostra parte il divertimento è assicurato da una grandissima scarica di adrenalina, tanto che appena finito il giro, mi fiondo di nuovo a fare la fila per farne un&#8217;altro.</p>
<p>Posso dire che vado a Mirabilandia solo per salire sul <em>Katun</em>.</p>
<blockquote><p>Imparare il framework MVC è un po come andare sul <em>Katun</em>, superata la salita iniziale, <strong>progettare interfacce web javascript e single page application diventa un vero e proprio divertimento</strong>, grazie alla semplicità e alla facilità con cui è possibile aggiornare le varie <em>views </em>in modo indipendente dagli altri componenti.</p></blockquote>
<hr />
<p><em>Programmare con #frameworks #MVC è come andare a Mirabilandia!</em><br /><a href='https://twitter.com/share?text=Programmare+con+%23frameworks+%23MVC+%C3%A8+come+andare+a+Mirabilandia%21&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>HTML5 Mobile App ed MVC: Conclusioni</h2>
<p>Visto che stiamo parlando di <strong>HTML5 Mobile App</strong> sviluppate in HTML5, CSS3 e <strong>Javascript</strong>, e che applicazioni di questo tipo sono a tutti gli effetti <em>single page application, </em>ovvero quei tipi di progetti in cui la pagina non viene mai ricaricata e tutte le operazioni di creazione, modifica e cancellazione dei dati viene delegata al server tramite un <strong>servizio di restful API</strong>, invito enormemente tutti gli sviluppatori client a <strong>cominciare ad interessarsi all&#8217;MVC</strong>.</p>
<p>Siccome, analogamente a molti altri campi (come quello del  <a title="Web Marketing - Business online" href="http://www.upcreative.net/category/marketing/">web marketing</a>), ci stiamo affacciando solo ora a questo aspetto della programmazione, mentre molti altri paesi lo stanno già facendo da tempo, e siccome il mondo delle <em>client web application </em>è in costante evoluzione, qualsiasi web designer e sviluppatore front-end dovrebbe secondo me considerare di inserire l&#8217;MVC nelle proprie skills, magari dedicando parte del proprio tempo a capirne il funzionamento.</p>
<p>E tu cosa ne pensi? Hai mai provato a sviluppare un tuo progetto Javascript con la logica dell&#8217;MVC? Scrivilo nei commenti!
		</div> 
	</div> <div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando la programmazione MVC insieme a molte altre tecniche, ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" />
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab18a418cccc-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab18a418cccc-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/">HTML5 Mobile App: l’importanza del framework MVC</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/html5-mobile-app-limportanza-del-framework-mv/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
