 
 
 <?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; android</title>
	<atom:link href="https://www.upcreative.net/tag/android/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>Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js</title>
		<link>https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/</link>
		<comments>https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/#comments</comments>
		<pubDate>Fri, 28 Mar 2014 14:07:15 +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 Design]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[backbone]]></category>
		<category><![CDATA[HTML Mobile App]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[Ratchet]]></category>
		<category><![CDATA[twitter bootstrap]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3486</guid>
		<description><![CDATA[<p>Ecco un altro tutorial su come realizzare un' HTML5 Mobile App in CSS3 e Javascript: in questo articolo ti mostro come usare la nuova versione di Ratchet (che ora fa parte di Twitter Bootstrap) insieme a Backbone.js per sviluppare una single page application. Il tutto nei tre stili differenti offerti da Ratchet, tra cui iOS e Android.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/">Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js</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">
			Nonostante non sia d&#8217;accordo con l&#8217;idea di utilizzare un framework esterno &#8220;per intero&#8221; nello sviluppo di HTML Mobile App, sono comunque convinto che attingere CSS e stili da alcuni di essi possa notevolmente <strong>incrementare la qualità del prodotto</strong> finale e <strong>velocizzare il flusso di lavoro</strong>, evitando di reinventare ogni volta la ruota.</p>
<p>In un precedente articolo avevo parlato di <a title="8 mobile framework per la realizzazione di applicazioni mobile in HTML5, CSS3 e Javascript" href="http://www.upcreative.net/8-mobile-framework-per-applicazioni-html5-css-javascript/">8 mobile framework per la realizzazione di applicazioni mobile in HTML5, CSS3 e Javascript</a>, in cui ho inserito anche <strong>Ratchet</strong>, che offre stili CSS3 molto puliti ed un markup in linea con le moderne specifiche HTML5.</p>
<p>Dopo che lo scorso mese nel blog di Twitter Bootstrap <a title="Ratchet 2.0 e Twitter Bootstrap" href="http://blog.getbootstrap.com/2014/02/25/ratchet-2/">è stato annunciato</a> che <a href="http://goratchet.com/">Ratchet 2.0</a>  farà parte d&#8217;ora in poi dell&#8217;<a href="https://github.com/twbs">organizzazione Bootstrap</a>, ho deciso di rilasciare l&#8217;esempio di una semplice <strong>HTML5 Mobile App sviluppata con <a href="http://backbonejs.org/">Backbone.js</a></strong> usando gli stili (e solo gli stili) di questa nuova versione di <strong>Ratchet</strong>, la quale quale offre<span style="line-height: 1.5em;"> 3 ottimi skin di partenza: quello <strong>di base</strong>, quello stile <strong>iOS</strong>, e quello stile <strong>Android</strong>.</span></p>
<p>Cosa desideriamo di meglio?</p>
<p style="text-align: center;"><img class="size-full wp-image-3495 aligncenter" src="http://www.upcreative.net/wp-content/uploads/2014/03/HTML5-Mobile-App-con-Bootstrap-Ratchet2-Backbone.js.jpg" alt="HTML5-Mobile-App-con-Bootstrap-Ratchet2-Backbone.js" width="690" height="400" /></p>
<p>L&#8217;intento è quello di realizzare una view iniziale con un <em>header, </em>un <em>sub-header</em> contenente un <em>input</em> di ricerca, ed il contenitore per mostrare una lista di articoli; grazie all&#8217;<em>input</em> di ricerca l&#8217;utente può filtrare i contenuti della lista.</p>
<p>L&#8217;applicazione è quindi composta da <strong>3 backbone view</strong>:</p>
<ul>
<li>la prima rappresenta la schermata principale contenente <em>header</em> e <em>sub-header</em></li>
<li>la seconda rappresenta la view della lista</li>
<li>la terza rappresenta ogni articolo che dovrà essere inserito nella lista</li>
</ul>
<p>Come nello <a title="Come creare una HTML5 Mobile App con Backbone.js" href="http://www.upcreative.net/come-creare-una-html5-mobile-app-con-backbone-js/">scorso esperimento</a>, lavoreremo sempre con <strong>model</strong> e <strong>collection</strong> per definire rispettivamente il modello di articolo e la collezione per la lista degli articoli.</p>
<p>Ecco lo schema del funzionamento dei vari componenti che formano la nostra HTML5 Mobile App:</p>
<p style="text-align: center;"><span style="color: #ff0000;"><img class="size-full wp-image-3494 aligncenter" src="http://www.upcreative.net/wp-content/uploads/2014/03/composizione-backbone-views.jpg" alt="composizione-backbone-views" width="690" height="400" /></span></p>
<p style="text-align: left;">
<hr />
<p><em>Semplice #HTML5 #MobileApp con #Bootstrap #Ratchet e #Backbonejs</em><br /><a href='https://twitter.com/share?text=Semplice+%23HTML5+%23MobileApp+con+%23Bootstrap+%23Ratchet+e+%23Backbonejs&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/' target='_blank'>Click To Tweet</a></p>
<hr />
<p>Trovi le <strong>DEMO</strong> dei 3 diversi stili ed il <strong>DOWNLOAD</strong> alla fine di questo articolo!</p>
<h3>HTML5 mobile app: impostazione del documento</h3>
<p>Come prima cosa andiamo a scaricare lo <em>zip </em>di Ratchet dal sito ed includiamo nel nostro documento solo gli stili CSS ed il <em>font</em> per le icone. Per usare lo stile base dovremo includere solo il file &#8216;<em>ratchet.css</em>&#8216; o &#8216;<em>ratchet.min.css</em>&#8216;, mentre per gli stili iOS o android dovremo aggiungere anche i rispettivi file &#8216;<em>ratchet-theme-ios.css</em>&#8216; o &#8216;<em>ratchet-theme-android.css</em>&#8216;.</p>
<p>Ecco l&#8217;esempio per l&#8217;utilizzo del tema iOS:</p><pre class="crayon-plain-tag">&lt;!-- includiamo gli stili di base di  Ratchet.css  --&gt;
&lt;link href="css/ratchet/css/ratchet.css" rel="stylesheet"&gt;

&lt;!-- includiamo gli stili iOS di  Ratchet.css  --&gt;
&lt;link href="css/ratchet/css/ratchet-theme-ios.css" rel="stylesheet"&gt;</pre><p>
Poi inseriamo nel documento le varie librerie <em>javascript</em>, prima della chiusura del tag <em>&lt;/body&gt; </em>in modo da velocizzare il caricamento della pagina:</p><pre class="crayon-plain-tag">&lt;!-- Includo gli scripts in fondo alla pagina per velocizzarne il caricamento --&gt;
&lt;script src="js/jquery-1.10.2.min.js"&gt;&lt;/script&gt;
&lt;!-- Includiamo anche underscore.js libreria a cui si appoggia backbone.js --&gt;
&lt;script src="js/underscore.js"&gt;&lt;/script&gt; 
&lt;script src="js/backbone.js"&gt;&lt;/script&gt;    
&lt;!-- il file javascript del nostro esperimento--&gt;
&lt;script src="js/demo.js"&gt;&lt;/script&gt;</pre><p>
<h2>Definizione di model e collection</h2>
<p>Vediamo come definire il model e la collection deli articoli:</p><pre class="crayon-plain-tag">//definiamo il modello di un articolo
var ArticleModel = Backbone.Model.extend({

    // all'inizializzazione di ogni modello creiamo la relativa anteprima
    initialize: function(){
        var article = this.get("article");
        this.set("preview", article.substr(0, 70)+"...");
    },

    // Attributi predefiniti per il modello, che vengono usati 
    //se non passati al momento dell'inizializzazione    
    defaults: {
        id: new Date().getUTCMilliseconds(), //impostiamo un id univoco in base alla data 
        title: "Nessun titolo",
        article: "",
        image: false,
        createdat: new Date()
    } 
});

//definiamo la collection per la lista degli articoli
var ArticleList = Backbone.Collection.extend({ 
    //Impostiamo la referenza al model per questa collection.
    model: ArticleModel,

    //funzione che restituisce il numero seriale per l'id di ogni nuovo articolo
    nextId: function() {
        if (!this.length) return 1;
        return this.first().get('test') + 1; 
    },

    //la funzione per la ricerca, che restituisce solo i models degli articoli
    //che contengono il termine ricercato nel titolo (la usaeremo per la ricerca)
    search : function(term){
        if(term == "") return this;

        var pattern = new RegExp(term,"gi");
        return _(this.filter(function(data) {
            return pattern.test(data.get("title"));
        }));
    }
});</pre><p>
<h2>Le view</h2>
<p>Ecco come si presenta la view principale:</p><pre class="crayon-plain-tag">//definiamo la view principale della nostra app
var StartView = Backbone.View.extend({

    // comunichiamo a backbone che deve inserire il markup del template di questa view all'interno di un oggetto dal tag 'section'
    tagName:  "section",

    //settiamo la classe che deve avere il tag 'section'
    className: "page-wrapper",

    //impostaiamo l'id del template da cui generare il markup di questa view
    template: "#startview-template",

    initialize: function() {

        //compiliamo il template in una variabile
        this.template = _.template($(this.template).html());

        //inizializziamo la view della lista degli articoli
        this.resultsView = new ListView({collection: this.collection});
    },

    //funzione che genera il markup di questa view
    render: function () {
        this.$el.html(this.template()); //genero l'html di questa view 
        //inserisco l'html della view dei risultati ti ricerca nella div con classe '.content' presente in questa view
        this.$('.content').append(this.resultsView.render().el); 
        return this;
    },

    // Deleghiamo gli eventi per la ricerca sull'input di testo 
    events: {
        //evento //selettore    //funzione da eseguire
        "keyup .search-term":    "search",
        "keypress .search-term": "onkeypress"
    },

    //funzione che richiama il methodo 'renderList' della view della lista ad ogni keyup sull'input di ricerca
    search: function (e) {
        var term = $(e.currentTarget).val();
        //se il termine non è vuoto allora richiamo il 'renderList' passando i dati filtrati,
        //altrimenti richiamo il render per mostrare la lista intera
        if(term!="") 
            this.resultsView.renderList(this.collection.search(term));
        else
            this.resultsView.render();
    },

    onkeypress: function (e) {
        if (e.keyCode === 13) { // preveniamo il normale evento di invio con il pulsante 'Enter'
            e.preventDefault();
        }
    }
});</pre><p>
Avremmo potuto anche &#8220;unificare&#8221; entrambe le <em>view</em> (quella principale e quella del contenitore della lista) in un unica <em>view</em>, ma lasciandole separate riusciamo ad ottenere un <strong>progetto più scalabile e dinamico</strong>: potremmo per esempio inserire nell&#8217;elemento &#8216;<em>.content</em>&#8216; della view principale qualsiasi altra <em>view,</em> oltre a quella della lista. Ciò ci permetterebbe di usare la view principale per più di uno scopo.</p>
<p>Ora vediamo la view del contenitore della lista, che sarà applicata appunto all&#8217;interno dell&#8217;elemento DOM con classe &#8216;<em>.content</em>&#8216; della view principale:</p><pre class="crayon-plain-tag">//view per la lista degli articoli (viene inizializzata all'interno della view 'StartView')
var ListView = Backbone.View.extend({

    // comunichiamo a backbone che deve inserire il markup del template di questa view all'interno di un 'ul'
    tagName:'ul',

    //questa view non ha bisogno di template, perchè viene popolata con le varie view 'ListItemView'
    //relative ad ogni model presente nella collection

    //impostiamo la classe che deve avere il contenitore di questa view
    className:'table-view',

    initialize:function () {

    },

    //funzione per mostrare la lista completa all'avvio dell'ìapplicazione
    render : function(articles){
        var _this = this;   
        this.$el.empty(); 

        //per ogni elemento della collection creiamo una nuova view
        this.collection.each(function(task){
            var view = new ListItemView({ model: task });
            _this.$el.append(view.render().el);
        });
        return this;
    },

    //funzione che viene richiamata al momento della ricerca, alla quale vengono passati i model che 
    //soddisfano la ricerca
    renderList : function(articles){
        var _this = this;        
        this.$el.empty(); 

        //anche qui per ogni model creo la relativa view
        articles.each(function(task){
            var view = new ListItemView({ model: task });
            _this.$el.append(view.render().el);
        });
        return this;
    }

});</pre><p>
Questa view si preoccupa di mostrare inizialmente tutti i <em>model</em> (quindi gli articoli) presenti all&#8217;interno della <em>collection, </em>mentre tramite il metodo &#8216;<em>renderList</em>&#8216; mostra solamente la lista di articoli che viene passata come parametro. Tale metodo viene richiamato dalla <em>view</em> principale al momento in cui si verifica l&#8217;evento &#8216;<em>keyup</em>&#8216; sull&#8217;<em>input</em> di ricerca.</p>
<p>Per mostrare i risultati al suo interno, la view della lista provvede alla creazione di una nuova view &#8216;<em>ListItemView</em>&#8216; per ogni <em>model </em>degli articoli<em>,</em> sia all&#8217;interno del metodo &#8216;<em>render</em>&#8216; che del metodo &#8216;<em>renderList</em>&#8216;:</p><pre class="crayon-plain-tag">//view per ogni elemento da inserire nella lista dei risultati degli articoli (viene inizializzata all'interno della view 'ListView')
var ListItemView = Backbone.View.extend({

    //il tag da usare per il contenitore del markup
    tagName:"li",

    //la classe da associare al contenitore del markup
    className: "table-view-cell",

    //impostaiamo l'id del template da cui generare il markup di questa view
    template: "#listitemview-template",

    initialize:function () {

        //compiliamo il template in una variabile
        this.template = _.template($(this.template).html());

        //se il model associato subisce delle modifiche allora richiamiamo il render per aggiornare il markup 
        //(non usato in questa demo)
        this.model.on("change", this.render, this);
        //se il model associato viene eliminato, allora richiamiamo la funzione 'close' che ne rimuove il 
        //relativo DOM dal documento (non usato in questa demo)
        this.model.on("destroy", this.close, this);
    },

    //genriamo il markup passando al template compilato i dai del model dell'articolo in formato JSON
    render:function () {
        this.$el.html(this.template(this.model.toJSON()));
        return this;
    },

    close: function(){
        //elimina il DOM di questa view dal documento ed annulla gli eventi applicati nella funzione 'initialize'
        this.remove();
    }

});</pre><p>
<h2>I template e la generazione del markup</h2>
<p>Come al solito utilizziamo il <strong>sistema di templating</strong> di <strong><em>underscore.js</em></strong> per la generazione del markup di ogni <em>view</em>, considerando che la <em>view</em> della lista non ha bisogno di un template, perché come abbiamo visto il <em>markup</em> da inserire al suo interno è costituito dalle varie <em>view</em> degli articoli.</p>
<p>Per avere maggiori informazioni sui sistemi di Javascript templating, ottimi per progetti di tipo &#8220;<em>Single-Page-Application</em>&#8220;, 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>
<p>Vediamo quindi i due template da inserire all&#8217;interno del documento:</p><pre class="crayon-plain-tag">&lt;!-- template per la view di ogni elemento all'interno della lista dei risultati di ricerca (ListItemView su demo.js) --&gt;
&lt;script type="text/template" id="listitemview-template"&gt;

	&lt;a href="#" data-id="&lt;%= id %&gt;" class="push-right"&gt;
	    &lt;span class="badge"&gt;
	    	&lt;%=createdat.getDate()%&gt; / &lt;%=createdat.getMonth()+1%&gt;
	    &lt;/span&gt;
	    &lt;%if(image){%&gt;
		&lt;img class="media-object pull-left" src="images/&lt;%=image%&gt;" /&gt;
		&lt;%}%&gt;
	    &lt;div class="media-body"&gt;
	        &lt;%= title %&gt;
	        &lt;p&gt;&lt;%= preview %&gt;&lt;/p&gt;
	    &lt;/div&gt;
	&lt;/a&gt;

&lt;/script&gt;

&lt;!-- template per la view del contenuto iniziale  (StartView su demo.js) --&gt;
&lt;script type="text/template" id="startview-template"&gt;

	&lt;header class="bar bar-nav"&gt;
		&lt;button class="btn btn-link btn-nav pull-left" onclick="window.location.href='http://www.upcreative.net/iscriviti-alla-newsletter/'"&gt;
		    Altre guide
		&lt;/button&gt;
	    &lt;h1 class="title"&gt;Ultimi Articoli&lt;/h1&gt;
	    &lt;button class="btn btn-link btn-nav pull-right" onclick="window.location.href='http://www.upCreative.net'"&gt;
		    upCreative.net
		&lt;/button&gt;
	&lt;/header&gt;
	&lt;div class="bar bar-standard bar-header-secondary"&gt;
	    &lt;input class="search-term" placeholder="Cerca articoli" type="text"/&gt;
	&lt;/div&gt;
	&lt;div class="content"&gt;&lt;/div&gt;

&lt;/script&gt;</pre><p>
<h2>Avviamo l&#8217;applicazione</h2>
<p style="text-align: center;"><img class="size-full wp-image-3497 aligncenter" src="http://www.upcreative.net/wp-content/uploads/2014/03/Avvio-HTML5-Mobile-App-Ratchdet-e-Backbonejs.jpg" alt="Avvio-HTML5-Mobile-App-Ratchdet-e-Backbonejs" width="690" height="280" /></p>
<p>Una volta impostati tutti i componenti necessari, passiamo all&#8217;avvio dell&#8217;applicazione, inizializzando una nuova <em>collection</em> per gli articoli con dei dati iniziali:</p><pre class="crayon-plain-tag">$(function(){

	//creiamo una nuova istanza per la collection degli articoli con 4 models iniziali
    var articles = new ArticleList([
        {
            title: "App su upCreative.net",
            image: "1.jpg",
            article: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
        },
        {
            title: "Secondo articolo su upCreative.net",
            image: "2.jpg",
            article: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur"
        },
        {
            title: "Articolo senza immagine 3",
            image: "3.jpg",
            article: "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Quarto articolo sulla  lista",
            image: "4.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Quinto articolo sulla  lista",
            image: "5.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Sesto articolo sulla  lista",
            image: "1.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Settimo articolo sulla  lista",
            image: "2.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        }
    ]);
    //creiamo una nuova istanza per la view iniziale 
    //associandogli la collection appena creata e popolata
    var startView = new StartView({
        collection : articles
    });
    $("body").append(startView.render().el);

});</pre><p>
<h2></h2>

		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h2>Backbone.js e Ratchet HTML5 mobile app: il risultato</h2>
<p>Vediamo il risultato live nei 3 skin differenti offerti da Ratchet:
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Stile di base</h3>
<div style="background-image: url('http://www.upcreative.net/wp-content/uploads/2014/03/iphone5.png'); background-repeat: no-repeat; margin: 0 auto; padding: 145px 0px 0px 27px; width: 375px; height: 690px;"><iframe width="320" height="550" src="http://www.upcreative.net/tutorials/28032014HTML5-Mobile-App-Ratchet2-e-Backbonejs/"></iframe></div>

		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Stile di iOS</h3>
<div style="background-image: url('http://www.upcreative.net/wp-content/uploads/2014/03/iphone5.png'); background-repeat: no-repeat; margin: 0 auto; padding: 145px 0px 0px 27px; width: 375px; height: 690px;"><iframe width="320" height="550" src="http://www.upcreative.net/tutorials/28032014HTML5-Mobile-App-Ratchet2-e-Backbonejs/index-ios.html"></iframe></div>

		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Stile di Android</h3>
<div style="background-image: url('http://www.upcreative.net/wp-content/uploads/2014/03/iphone5.png'); background-repeat: no-repeat; margin: 0 auto; padding: 145px 0px 0px 27px; width: 375px; height: 690px;"><iframe width="320" height="550" src="http://www.upcreative.net/tutorials/28032014HTML5-Mobile-App-Ratchet2-e-Backbonejs/index-android.html"></iframe></div>

		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-star"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Aiutami a condividere la risorsa per ottenere il <strong>download</strong>:</p>

		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-star"></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>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">
			
			<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-shortcode6aafdbc1a52d0-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6aafdbc1a52d0-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/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/">Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
