Angular o React?
Spunti e idee per la scelta di un framework
Giovanni Buffa
Front-End/Web/Drupal Developer
https://twitter.com/amp_gioppy
https://it.linkedin.com/in/gioppy
https://www.facebook.com/giova.buffa
https://github.com/gioppy
Cos’è una Web Application?
Il Web è una Repubblica basata sulle App.
Applicativo software, spesso mono-tasking, il quale viene
distribuito da un server remoto ed eseguito via Internet su
un Browser.
1. Accesso ai miei dati ovunque.
2. Utilizzo dell’ultima versione disponibile.
3. Funziona su qualsiasi dispositivo munito di browser.
4. Maggiore sicurezza locale.
Quali strumenti utilizzeremo?
Sublime Text
https://www.sublimetext.com/
Firefox Developer
https://www.mozilla.org/it/firefox/developer/
Terminale
NodeJS
https://nodejs.org/en/
npm
https://www.npmjs.com/
git
https://git-scm.com/
GitHub
https://github.com/
Firebase
https://firebase.google.com/
Tutti gli esempi possono essere scaricati da:
https://github.com/gioppy/angular-react-ires-workshop-2016
Alcuni concetti comuni...
Imperativo
VS
Dichiarativo
Components
Porzione isolata che permette di dividerne il comportamento in ruoli, in modo
analogo alle funzioni JavaScript.
Design Patterns &
Pattern MVC
VIEW CONTROLLER
USER
MODEL
VEDE
USA
AGGIORNA MANIPOLA
Data Bindings
Aggiornare la View alle modifiche del Data Model.
...e altri che non vedremo!
1. Task runner (Angular) e Module loader (React)
2. Routing (Angular/React)
3. Promises (Angular/React)
4. Redux (React)
5. Angular 2
Cosa costruiamo?
Main
Scores
ScoresPlayersScoresControls
Player
Button
Main
PlayerAdd
PlayerAddColors
PlayerAddForm
Cos’è React?
A JavaScript library for building user interfaces
– Wikipedia
“React is an open-source JavaScript library providing a
view for data rendered as HTML. React views are typically
rendered using components that contain additional
components specified as custom HTML tags.”.
JSX
XML-like syntax extension to ECMAScript without any
defined semantics.
https://facebook.github.io/jsx/
Webpack
https://webpack.github.io/
Babel
https://babeljs.io/
Cos’è AngularJS?
Superheroic JavaScript MV* Framework
– Wikipedia
“AngularJS è un framework per applicazioni web open-
source […] per affrontare molte delle sfide incontrate
nello sviluppo di Single Page Applications.
È mirato a semplificare lo sviluppo e la sperimentazione
di tali applicazioni, fornendo un framework basato sul
design pattern MVC, assieme a componenti comunemente
utilizzati nelle Rich Internet Applications”.
Gulp
http://gulpjs.com/
Bower
https://bower.io/
Modules
Collezione di oggetti che definiscono il set di funzionalità della nostra App.
Scopes
Il collante tra la logica e la UI.
Esiste uno scope globale [$rootScope] al cui interno
vengono creati degli scope per ogni componente [$scope].
Ogni scope può accedere sia al proprio genitore che ai
propri figli.
Nel caso di un componente o una direttiva lo scope può
essere isolato [isolated scope].
Dependency Injection
Come gli oggetti devono accedere alle dipendenze di cui hanno bisogno
per poter funzionare.
Controllers
Definiscono le funzionalità per un singolo aspetto della nostra App.
Services
Oggetti singleton che svolgono compiti comuni a più aree della nostra App.
E Angular 2?
One framework. Mobile & desktop.
A typed superset of JavaScript that compiles to plain JavaScript.
https://www.typescriptlang.org/index.html
An API for asynchronous programming with observable streams
http://reactivex.io/
Build desktop and native mobile apps with strategies
from Ionic Framework, NativeScript, and Electron
http://ionic.io/2
http://electron.atom.io/
https://www.nativescript.org/
Grazie a tutti!
Ci sono domande?
© 2016 - Giovanni Buffa

Angular js o React? Spunti e idee per la scelta di un framework