SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
http://angularjs.org
Versione 1.x
Cos'è AngularJS
Angularjs è un framework MVC sviluppato da Google
per sviluppare Web Application
● Per framework si intende:
“una struttura che facilita lo sviluppo, sia in termini di
velocità che in termini di ordine e mantenibilità del
codice”
Non è una libreria!
Full-featured SPA
● L'applicazione Single Page Application viene eseguita
all’interno di una singola pagina HTML
● tutte le risorse necessarie alla sua esecuzione vengono
caricate dinamicamente ed aggiunte al DOM della pagina
corrente.
● All’interno di una singola pagina vengono caricate viste
diverse in base all’interazione dell’utente con la pagina
stessa.
● Questo approccio consente di creare applicazioni
responsive che si avvicinano al funzionamento delle
applicazioni desktop.
Angularjs friends
● Bower: è un package manager per il web,
ovvero offre la possibilità di gestire le
dipendenze Web di applicazioni
esclusivamente front-end
● Grunt: è uno strumento di build task based:
basato su operazioni concatenabili (stile Ant),
attività come e minificazione e
concatenazione
● Yeoman: tool per generare scaffolding di
applicazioni, che utilizza Grunt per il processo
di build e Bower per la gestione delle
dipendenze
MVC
Il Model-View-Controller (MVC, talvolta tradotto in
italiano Modello-Vista-Controllo), in informatica, è un
pattern architetturale molto diffuso nello sviluppo di
sistemi software, in particolare nell'ambito della
programmazione orientata agli oggetti, in grado di
separare la logica di presentazione dei dati dalla
logica di business.
Componenti Angularjs
Direttive
● Le direttive sono la funzionalità predominante e potente
disponibile solo in AngularJS.
● Permettono di creare componenti HTML personalizzati e
riusabili, che possono essere utilizzati per nascondere la
complessità della struttura DOM e permettono di
"decorare" alcuni elementi con comportamente specifici.
Vi consentono di estendere il vostro HTML permettendovi
di inventare nuove sintassi HTML, e istruendo AngularJS
per incorporare le loro funzionalità nella pagina.
● Hanno il prefisso "ng-", saranno inserite come attributi
HTML e funzionano come elementi standalone.
View
<!doctype html>
<html ng-app=”cspApp”>
<head>
<meta charset="utf-8">
<title>Prima pagina con AngularJS</title>
<script src="js/angular.min.js"></script>
<script src="js/app.js"></script>
</head>
<body ng-controller=”MainCtrl”>
<p>
<strong>{{welcomeText}}<strong><br/>
La somma di 12 e 13 &egrave; uguale a {{12+13}}
</p>
</body>
</html>
Direttiva
Controller
Modello
Controller
● Il controller in Angular è collegato a un
elemento del DOM (Document Object Model)
tramite una direttiva.
angular.module('cspApp', [])
.controller('MainCtrl', function ($scope) {
$scope.welcomeText = 'Benvenuto!';
}
---------
<body ng-controller=”MainCtrl”>
Model: L’oggetto scope
Nella terminologia di AngularJS uno scope
(spesso indicato nel codice con $scope) indica
il contesto in cui vengono salvati i dati di
un’applicazione (il model) ed in cui vengono
valutate le espressioni utilizzate nella view.
Lo $scope è il “collante” tra la vista e il controller
Data Binding
● E' il meccanismo di sincronizzazione automatica dei dati tra il modello e la
view
● ogni modifica al modello dei dati si riflette automaticamente sulla view e
ogni modifica alla view viene riportata sul modello dei dati
● È sufficiente associare il modello allo scope all’interno del controller ed
utilizzare la direttiva ng-model nella view oppure usare le espressioni
Service
● consentono di implementare la logica
dell’applicazione, cioè le funzionalità che si
occupano di elaborare e/o recuperare i dati da
visualizzare sulle view tramite i controller.
● Utilizzate in AngularJS per consumare dati
provenienti da un’API REST (ma non solo...)
Dependency Injection
● la dependency injection consente di
combinare insieme componenti allo scopo di
strutturare un’applicazione.
● Se all’interno di un componente Angular
abbiamo bisogno delle funzionalità offerte da
un altro componente non dobbiamo fare altro
che dichiararne la dipendenza.
angular.module('cspApp', [])
.service("userService", function($http) {
return $http.get('http://restapi/utente');
})
angular.module('cspApp').controller('MainCtrl', function
($scope, userService) {
userService.then(function (nome) {
$scope.welcomeText = 'Benvenuto ' + nome + '!';
},
function () {
$scope.welcomeText = 'Non mi ricordo il tuo nome :(';
});
}
Dependency
Injection
Teoria delle “promesse”
● Sono oggetti che rappresentano il risultato di una chiamata di funzione
asincrona
● rappresentano una promessa che un risultato verrà fornito non appena
disponibile
● Il vantaggio dell’utilizzo delle promise consiste nel rendere il codice più
leggibile
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// Chiamata asincrona
// “response” contiene il risultato del Server
}, function errorCallback(response) {
// Chiamata asincrona in caso di errore
// “response” contiene il risultato di errore del Server
});
Applicazioni mobile
Cos'è Cordova
● Si tratta di un Framework – una serie di strumenti di
sviluppo – che consente agli sviluppatori di costruire
applicazioni mobile utilizzando dei linguaggi specifici del
Web: HTML, CSS e JavaScript.
● Il codice sorgente, quasi identico, permetterà di
sviluppare applicazioni su differenti piattaforme.
Attualmente, Cordova è, tra gli altri, compatibile con i
sistemi: iOS, Android, Blackberry, WindowsPhone,
PalmWebOS, Bada e Symbian.
https://cordova.apache.org/
Cos’è Ionic
● Ionic mette semplicemente insieme Apache
Cordova e AngularJS
● Essendo basato su Cordova, le app
svilluppate con Ionic sono compatibili non solo
con iOS e Android, ma anche con Windows
Phone, Amazon Fire OS, Firefox OS.
http://ionicframework.com/
Angular 2…
Next Time!
Ora passiamo al codice!

Contenu connexe

Tendances

Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campusDotNetCampus
 
AngularJS: accessibility
AngularJS: accessibilityAngularJS: accessibility
AngularJS: accessibilityVittorio Conte
 
AngularJS: server communication
AngularJS: server communicationAngularJS: server communication
AngularJS: server communicationVittorio Conte
 
Angular framework
Angular frameworkAngular framework
Angular frameworkLuca Modica
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco Breveglieri
 
Migliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsMigliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsAndrea Dottor
 
Zend Framework Workshop Parte1
Zend Framework Workshop Parte1Zend Framework Workshop Parte1
Zend Framework Workshop Parte1massimiliano.wosz
 
Zend Framework Workshop Parte2
Zend Framework Workshop Parte2Zend Framework Workshop Parte2
Zend Framework Workshop Parte2massimiliano.wosz
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
 
Angular 4 - convertire o migrare un'applicazione Angularjs
Angular 4 -  convertire o migrare un'applicazione AngularjsAngular 4 -  convertire o migrare un'applicazione Angularjs
Angular 4 - convertire o migrare un'applicazione AngularjsGiovanni Buffa
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Fabrizio Bernabei
 
Alla scoperta di Zend Framework 1.8
Alla scoperta di Zend Framework 1.8Alla scoperta di Zend Framework 1.8
Alla scoperta di Zend Framework 1.8massimiliano.wosz
 
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...Codemotion
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Eugenio Minardi
 
Acadevmy - Angular Overview
Acadevmy - Angular OverviewAcadevmy - Angular Overview
Acadevmy - Angular OverviewFrancesco Sciuti
 

Tendances (20)

Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 
AngularJS: accessibility
AngularJS: accessibilityAngularJS: accessibility
AngularJS: accessibility
 
AngularJS: server communication
AngularJS: server communicationAngularJS: server communication
AngularJS: server communication
 
Angular framework
Angular frameworkAngular framework
Angular framework
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e Delphi
 
Migliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsMigliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.js
 
Zend Framework Workshop Parte1
Zend Framework Workshop Parte1Zend Framework Workshop Parte1
Zend Framework Workshop Parte1
 
Require js
Require jsRequire js
Require js
 
Zend Framework Workshop Parte2
Zend Framework Workshop Parte2Zend Framework Workshop Parte2
Zend Framework Workshop Parte2
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
 
Corso angular js base
Corso angular js baseCorso angular js base
Corso angular js base
 
Angular 4 - convertire o migrare un'applicazione Angularjs
Angular 4 -  convertire o migrare un'applicazione AngularjsAngular 4 -  convertire o migrare un'applicazione Angularjs
Angular 4 - convertire o migrare un'applicazione Angularjs
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010
 
Corso angular js componenti
Corso angular js componentiCorso angular js componenti
Corso angular js componenti
 
Alla scoperta di Zend Framework 1.8
Alla scoperta di Zend Framework 1.8Alla scoperta di Zend Framework 1.8
Alla scoperta di Zend Framework 1.8
 
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...
 
ReactJS for beginners
ReactJS for beginnersReactJS for beginners
ReactJS for beginners
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
Acadevmy - Angular Overview
Acadevmy - Angular OverviewAcadevmy - Angular Overview
Acadevmy - Angular Overview
 

En vedette

AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedStéphane Bégaudeau
 
introduction to Angularjs basics
introduction to Angularjs basicsintroduction to Angularjs basics
introduction to Angularjs basicsRavindra K
 
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013Carlo Bonamico
 
Angular 2 - The Next Framework
Angular 2 - The Next FrameworkAngular 2 - The Next Framework
Angular 2 - The Next FrameworkCommit University
 
Angular js
Angular jsAngular js
Angular jsmiladiir
 
Project-Based Learning (PBL) Proposal [UIIT assessment item one]
Project-Based Learning (PBL) Proposal [UIIT assessment item one]Project-Based Learning (PBL) Proposal [UIIT assessment item one]
Project-Based Learning (PBL) Proposal [UIIT assessment item one]sycindyng
 
Mobileapps 111013123450-phpapp01
Mobileapps 111013123450-phpapp01Mobileapps 111013123450-phpapp01
Mobileapps 111013123450-phpapp01Wealthnet LLC
 
συναισθηματικη νοημοσυνη
συναισθηματικη νοημοσυνησυναισθηματικη νοημοσυνη
συναισθηματικη νοημοσυνηYolanda Komianou
 
Infection control risk assessment
Infection control risk assessmentInfection control risk assessment
Infection control risk assessmentKhusnul Khatimah
 
Dollars and sense part, pitfalls and purpose of finances
Dollars and sense  part, pitfalls and purpose of financesDollars and sense  part, pitfalls and purpose of finances
Dollars and sense part, pitfalls and purpose of financesRoger Hernandez
 
Eb q2-tugas1 11410100279
Eb q2-tugas1 11410100279Eb q2-tugas1 11410100279
Eb q2-tugas1 11410100279Annisa Nagari
 
Para hablar de amor - paintings
 Para hablar de amor - paintings Para hablar de amor - paintings
Para hablar de amor - paintingsMakala (D)
 
Worksheet Listening
Worksheet ListeningWorksheet Listening
Worksheet Listeningsycindyng
 
Digital Partner for your Brand Communication
Digital Partner for your Brand CommunicationDigital Partner for your Brand Communication
Digital Partner for your Brand CommunicationSaurabh Pokharna
 

En vedette (20)

Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get started
 
Gui Report Studio in java
Gui Report Studio in javaGui Report Studio in java
Gui Report Studio in java
 
introduction to Angularjs basics
introduction to Angularjs basicsintroduction to Angularjs basics
introduction to Angularjs basics
 
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
 
Angular 2 - The Next Framework
Angular 2 - The Next FrameworkAngular 2 - The Next Framework
Angular 2 - The Next Framework
 
Angular js
Angular jsAngular js
Angular js
 
Project-Based Learning (PBL) Proposal [UIIT assessment item one]
Project-Based Learning (PBL) Proposal [UIIT assessment item one]Project-Based Learning (PBL) Proposal [UIIT assessment item one]
Project-Based Learning (PBL) Proposal [UIIT assessment item one]
 
Mobileapps 111013123450-phpapp01
Mobileapps 111013123450-phpapp01Mobileapps 111013123450-phpapp01
Mobileapps 111013123450-phpapp01
 
Soft Eng 1st PPT
Soft Eng 1st PPTSoft Eng 1st PPT
Soft Eng 1st PPT
 
συναισθηματικη νοημοσυνη
συναισθηματικη νοημοσυνησυναισθηματικη νοημοσυνη
συναισθηματικη νοημοσυνη
 
Infection control risk assessment
Infection control risk assessmentInfection control risk assessment
Infection control risk assessment
 
Ppt0000016
Ppt0000016Ppt0000016
Ppt0000016
 
Dollars and sense part, pitfalls and purpose of finances
Dollars and sense  part, pitfalls and purpose of financesDollars and sense  part, pitfalls and purpose of finances
Dollars and sense part, pitfalls and purpose of finances
 
Eb q2-tugas1 11410100279
Eb q2-tugas1 11410100279Eb q2-tugas1 11410100279
Eb q2-tugas1 11410100279
 
Overview
OverviewOverview
Overview
 
Para hablar de amor - paintings
 Para hablar de amor - paintings Para hablar de amor - paintings
Para hablar de amor - paintings
 
Worksheet Listening
Worksheet ListeningWorksheet Listening
Worksheet Listening
 
Digital Partner for your Brand Communication
Digital Partner for your Brand CommunicationDigital Partner for your Brand Communication
Digital Partner for your Brand Communication
 
Gormiti gormiti
Gormiti     gormitiGormiti     gormiti
Gormiti gormiti
 

Similaire à Angularjs

Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8Valerio Radice
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Antonio Gallo
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance ImprovementsMichele Aponte
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client Sabino Labarile
 
Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4Giovanni Buffa
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angulardotnetcode
 
Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTfirenze-gtug
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerMatteo Magni
 

Similaire à Angularjs (20)

Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
 
Presentazione tirocinio
Presentazione tirocinio Presentazione tirocinio
Presentazione tirocinio
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance Improvements
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client
 
Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4
 
react-it.pdf
react-it.pdfreact-it.pdf
react-it.pdf
 
Angular Components e Pipe
Angular Components e PipeAngular Components e Pipe
Angular Components e Pipe
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angular
 
Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWT
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Jquery mobile per App
Jquery mobile per AppJquery mobile per App
Jquery mobile per App
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Many Designs Elements
Many Designs ElementsMany Designs Elements
Many Designs Elements
 
Spring e Flex
Spring e FlexSpring e Flex
Spring e Flex
 
MVC and Struts 1
MVC and Struts 1MVC and Struts 1
MVC and Struts 1
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
jQuery
jQueryjQuery
jQuery
 
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
 

Angularjs

  • 1.
  • 3. Cos'è AngularJS Angularjs è un framework MVC sviluppato da Google per sviluppare Web Application ● Per framework si intende: “una struttura che facilita lo sviluppo, sia in termini di velocità che in termini di ordine e mantenibilità del codice” Non è una libreria!
  • 4. Full-featured SPA ● L'applicazione Single Page Application viene eseguita all’interno di una singola pagina HTML ● tutte le risorse necessarie alla sua esecuzione vengono caricate dinamicamente ed aggiunte al DOM della pagina corrente. ● All’interno di una singola pagina vengono caricate viste diverse in base all’interazione dell’utente con la pagina stessa. ● Questo approccio consente di creare applicazioni responsive che si avvicinano al funzionamento delle applicazioni desktop.
  • 6. ● Bower: è un package manager per il web, ovvero offre la possibilità di gestire le dipendenze Web di applicazioni esclusivamente front-end ● Grunt: è uno strumento di build task based: basato su operazioni concatenabili (stile Ant), attività come e minificazione e concatenazione ● Yeoman: tool per generare scaffolding di applicazioni, che utilizza Grunt per il processo di build e Bower per la gestione delle dipendenze
  • 7. MVC Il Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllo), in informatica, è un pattern architetturale molto diffuso nello sviluppo di sistemi software, in particolare nell'ambito della programmazione orientata agli oggetti, in grado di separare la logica di presentazione dei dati dalla logica di business.
  • 8.
  • 10. Direttive ● Le direttive sono la funzionalità predominante e potente disponibile solo in AngularJS. ● Permettono di creare componenti HTML personalizzati e riusabili, che possono essere utilizzati per nascondere la complessità della struttura DOM e permettono di "decorare" alcuni elementi con comportamente specifici. Vi consentono di estendere il vostro HTML permettendovi di inventare nuove sintassi HTML, e istruendo AngularJS per incorporare le loro funzionalità nella pagina. ● Hanno il prefisso "ng-", saranno inserite come attributi HTML e funzionano come elementi standalone.
  • 11. View <!doctype html> <html ng-app=”cspApp”> <head> <meta charset="utf-8"> <title>Prima pagina con AngularJS</title> <script src="js/angular.min.js"></script> <script src="js/app.js"></script> </head> <body ng-controller=”MainCtrl”> <p> <strong>{{welcomeText}}<strong><br/> La somma di 12 e 13 &egrave; uguale a {{12+13}} </p> </body> </html> Direttiva Controller Modello
  • 12. Controller ● Il controller in Angular è collegato a un elemento del DOM (Document Object Model) tramite una direttiva. angular.module('cspApp', []) .controller('MainCtrl', function ($scope) { $scope.welcomeText = 'Benvenuto!'; } --------- <body ng-controller=”MainCtrl”>
  • 13. Model: L’oggetto scope Nella terminologia di AngularJS uno scope (spesso indicato nel codice con $scope) indica il contesto in cui vengono salvati i dati di un’applicazione (il model) ed in cui vengono valutate le espressioni utilizzate nella view. Lo $scope è il “collante” tra la vista e il controller
  • 14. Data Binding ● E' il meccanismo di sincronizzazione automatica dei dati tra il modello e la view ● ogni modifica al modello dei dati si riflette automaticamente sulla view e ogni modifica alla view viene riportata sul modello dei dati ● È sufficiente associare il modello allo scope all’interno del controller ed utilizzare la direttiva ng-model nella view oppure usare le espressioni
  • 15. Service ● consentono di implementare la logica dell’applicazione, cioè le funzionalità che si occupano di elaborare e/o recuperare i dati da visualizzare sulle view tramite i controller. ● Utilizzate in AngularJS per consumare dati provenienti da un’API REST (ma non solo...)
  • 16. Dependency Injection ● la dependency injection consente di combinare insieme componenti allo scopo di strutturare un’applicazione. ● Se all’interno di un componente Angular abbiamo bisogno delle funzionalità offerte da un altro componente non dobbiamo fare altro che dichiararne la dipendenza.
  • 17. angular.module('cspApp', []) .service("userService", function($http) { return $http.get('http://restapi/utente'); }) angular.module('cspApp').controller('MainCtrl', function ($scope, userService) { userService.then(function (nome) { $scope.welcomeText = 'Benvenuto ' + nome + '!'; }, function () { $scope.welcomeText = 'Non mi ricordo il tuo nome :('; }); } Dependency Injection
  • 18. Teoria delle “promesse” ● Sono oggetti che rappresentano il risultato di una chiamata di funzione asincrona ● rappresentano una promessa che un risultato verrà fornito non appena disponibile ● Il vantaggio dell’utilizzo delle promise consiste nel rendere il codice più leggibile $http({ method: 'GET', url: '/someUrl' }).then(function successCallback(response) { // Chiamata asincrona // “response” contiene il risultato del Server }, function errorCallback(response) { // Chiamata asincrona in caso di errore // “response” contiene il risultato di errore del Server });
  • 20. Cos'è Cordova ● Si tratta di un Framework – una serie di strumenti di sviluppo – che consente agli sviluppatori di costruire applicazioni mobile utilizzando dei linguaggi specifici del Web: HTML, CSS e JavaScript. ● Il codice sorgente, quasi identico, permetterà di sviluppare applicazioni su differenti piattaforme. Attualmente, Cordova è, tra gli altri, compatibile con i sistemi: iOS, Android, Blackberry, WindowsPhone, PalmWebOS, Bada e Symbian. https://cordova.apache.org/
  • 21. Cos’è Ionic ● Ionic mette semplicemente insieme Apache Cordova e AngularJS ● Essendo basato su Cordova, le app svilluppate con Ionic sono compatibili non solo con iOS e Android, ma anche con Windows Phone, Amazon Fire OS, Firefox OS. http://ionicframework.com/
  • 22. Angular 2… Next Time! Ora passiamo al codice!