DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
SPA+AngularJS
-
Upload
apuliasoft -
Category
Technology
-
view
269 -
download
0
Transcript of SPA+AngularJS
DEFINIZIONEWeb application che gira all'interno di una singola pagina HTML
allo scopo di fornire una UX più fluida, comparabile a quella diuna applicazione desktop.
ARCHITETTURANo SPA
Scripting per la manipolazione del DOM e piccoleelaborazioni
SPA
Applicazione strutturata grazie a design pattern
CHUNKINGNo SPA
Ad ogni richiesta il web server combina HTML e dati e liinvia al client
SPA
La pagina web è costruita nel browser caricando piccoliframmenti di HTML e dati
TEMPLATINGNo SPA
Manipolazione del DOM tramite scriptingSPA
Binding dichiarativo tra dati e template
REAL-TIME COMUNICATIONNo SPA
Ogni richiesta è monodirezionale dal browser al web serverSPA
Tra l'applicazione client ed il server sono possibilicomunicazioni bidirezionali
STORAGENo SPA
Carichi intensivi di dati dal server + CookieSPA
Capacità di memorizzare dati nel browser
TESTINGNo SPA
Test trial and error nel browserSPA
Framework di test che permettono TDD, BDD e test E2E
PROS & CONSPros
User ExperienceAlleggerimento del serverJavaScript
Cons
SEOAppesantimento del clientJavaScript
MISKO HEVERYSi propone di riscrivere l'intero progetto
da solo
in 2 settimane
con una libreria open-source che ha creato lui per hobby
ANGULAR JSProgetto patrocinato da Google
1.237 contributors in tutto il mondo
su GitHub sotto MIT Licence
MODEL VIEW VIEWMODELDesign pattern che implementa la Separation of concerns
tramite Object Oriented Programming
DATA BINDINGMappando una componente della UI con una proprietà JS
AngularJS provvederà a mantenerle sincronizzate
TEMPLATINGServer-side templating
Il server assembla dati e markupIl browser riceve l'HTML e lo mostra
Client-side templating
Il server invia dati e markupIl browser assembla l'HTML e lo mostra
TEMPLATINGServer-side templating
<table> <tr> <td>Totale:</td> <td>1000 €</td> </tr></table>
Client-side templating<table> <tr> <td>Totale:</td> <td>{{total}} €</td> </tr></table>
{total: 1000}
CLIENT-SIDE TEMPLATINGPros
Alleggerimento del serverAlleggerimento della trasmissioneRiuso
Cons
SicurezzaI18nSEO
CONCLUSIONISviluppare una SPA è più complesso rispetto allo sviluppo diuna classica applicazione WebLa complessità aumenta di molto sul client e si riduce di pocosul serverLe tecnologie non sono adatte ma si stanno affinando
CONCLUSIONIAngularJS semplifica lo sviluppo delle SPASi può utilizzare per lo sviluppo mobile con Ionic Framework2016 - AngularJS 2 basato su ES6 e Web Components
RIFERIMENTIangularjs.organgular.ioegghead.ioaddyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developersmartinfowler.com/articles/injection.htmlw3.org/TR/html5w3.org/TR/css3-*developer.mozilla.orgjquery.combackbonejs.orgknockoutjs.comfacebook.github.io/react/dojotoolkit.org
RIFERIMENTIunderscorejs.orgmomentjs.comd3js.orgdocumentup.com/kriskowal/qdurandaljs.comhandlebarsjs.compolymer-project.orgemberjs.comyeoman.iobower.iogruntjs.comgulpjs.comkarma-runner.github.iomochajs.org
RIFERIMENTIjasmine.github.ioqunitjs.comangular.github.io/protractortypescriptlang.orgcoffeescript.orgdartlang.orggetbootstrap.comfoundation.zurb.comlesscss.orgsass-lang.com