SlideShare a Scribd company logo
Gabriele Gaggi
Brain-Sys Srl
Gabriele.Gaggi@Brain-Sys.it
@GabrieleGaggi
www.Brain-Sys.it
github.com/gaggiga
slideshare.net/GabrieleGaggi
@OverNetE
www.wpc2015.it
Il mercato del mobile:
un’opportunità in continua mutazione
Smartphone sempre più alla portata di tutti
• Diminuzione dei costi
• Aumento delle potenzialità
• Geolocalizzazione
• Giroscopio, accelerometro, ect
• Batteria
• Tecnologie di connettività (3G, 4G)
• Tempi di produzione più brevi
Non focalizzarsi su una sola piattaforma!
Blackbarry è passato
dall’essere il più diffuso, alla
quasi completa scomparsa!
Cross-platform: la soluzione al problema?
Apache Cordova
La soluzione per il riutilizzo del codice
Cos’è Cordova?
Creare App mobile native utilizzando l’approccio "Write once, run
anywhere" (WORA)
Riutilizzare le conoscenze e l’esperienza in ambito web e gli strumenti
di sviluppo che già conosciamo
Cos’è Cordova?
Da Wikipedia:
Cordova (in spagnolo Córdoba e in latino Cordŭba) è un comune
spagnolo di 328.841 abitanti situato nella comunità
autonoma dell'Andalusia, sulla riva delGuadalquivir e ai piedi
della Sierra Morena.
Cos’è Cordova?
Dal sito ufficiale cordova.apache.org:
Apache Cordova is a set of device APIs that allow a mobile app
developer to access native device function such as the camera or
accelerometer from JavaScript. Combined with a UI framework such as
jQuery Mobile or Dojo Mobile or Sencha Touch, this allows a
smartphone app to be developed with just HTML, CSS, and JavaScript.
Cos’è Cordova?
Sempre dal sito ufficiale cordova.apache.org:
Cordova provides a set of uniform JavaScript libraries that can be
invoked, with device-specific native backing code for those JavaScript
libraries. Cordova is available for the following platforms: iOS, Android,
Blackberry, Windows Phone, Palm WebOS, Bada, and Symbian.
Un po’ di storia
• Pensato e realizzato da Nitobi ad un evento iPhoneDevCamp con il nome di
PhoneGap.
• Nel 2009 vince il People's Choice Award alla conferenza O'Reilly Media's
2009 Web 2.0.
• Viene ufficialmente approvato da Apple nel 2010.
• Nitobi viene acquisita da Adobe nell’ottobre del 2011.
• Il codice di PhoneGap entra quindi a far parte della Apache Software
Foundation inizialmente con il nome di Apache Callback e successivamente
Apache Cordova.
• Adobe continua a distribuire la sua Build con il nome di PhoneGap.
Un passo indietro: Applicazioni native
• Specificamente create per ogni piattaforma
• Pieno controllo delle caratteristiche del device su cui gireranno
• Utilizzo delle notifiche
• Funzionameno offline
Un passo indietro: siti mobili
• Sono siti che presentano un look and feel analogo a quello delle
applicazioni native
• Vengono eseguite all’interno del browser, quindi hanno un accesso
molto limitato alle risorse del device
• Tipicamente sfruttano le funzionalità avanzate di Html5
Un passo indietro: Applicazioni ibride
• Appaiono all’utente come applicazioni native presenti nello store e
permettono l’interazione con le caratteristiche del dispositivo
• Utilizzano il concetto delle Web Application girando all’interno di
specifiche web view
• Sono cross platform
• Esistono diversi tools per realizzarle
• Utilizzo delle notifiche
• Funzionameno offline
Come funziona
Sistema operativo
Api Native
Web View Native
Html5 Css3 Javascript
Licenza di Apache Cordova
• Apache Cordova graduated in October 2012 as a top level project
within the Apache Software Foundation (ASF). Through the ASF,
future Cordova development will ensure open stewardship of the
project. It will always remain free and open source under the Apache
License, Version 2.0.
• http://www.apache.org/licenses/LICENSE-2.0.txt
• Usi commerciali ammessi, bisogna solo includere una copia della
licenza e mostrarla nella sezione «copyright» del proprio programma.
Cordova non è un framework
• Quindi è possibile utilizzare i framework che preferiamo
Plugin per la gestione delle funzionalità native
• Una delle caratteristiche principali di Cordova è la possibilità di
utilizzare le funzionalità native dei diversi device attraverso specifici
plugin (es. Geolocalizzazione, batteria).
AngularJs
Per estendere il vocabolario HTML
Cos’è?
AngularJS è un framework JavaScript, patrocinato da Google, utile a
semplificare la realizzazione di applicazioni Web single page: favorisce
un approccio dichiarativo allo sviluppo client-side, migliore per la
creazione di interfacce utente, laddove l’approccio imperativo è ideale
per realizzare la logica applicativa.
AngularJS si ispira al pattern MVC, come altri framework analoghi quali
Knockout o Ember.js. Ma rispetto ai diretti concorrenti, questo
framework è in grado di ridurre in maniera considerevole il codice
necessario a realizzare applicazioni HTML/JavaScript.
Si ma quindi?
E’ un framework javascript open-source per applicazioni web single
page.
Favorisce un approccio dichiarativo.
Prende ispirazione dal pattern MVC.
Model View Controller (MVC)
Controller
ViewModel
Model View Controller (MVC)
????
PresentazioneDati & Logica
Model View Controller (MVC)
Il controller non deve occuparsi di troppe cose, deve
occuparsi del caricamento del corretto model e della
corretta view.
Storia
• Iniziato a sviluppare nel 2009
• Vengono gestite due versioni:
• La 1.x.x:
• 1.3.15 rilasciata a marzo 2015
• 1.4.7 rilasciata a settembre 2015
• La 2.0:
• In developer preview da aprile 2015
• Più veloce della 1
• Non retrocompatibile
• Sviluppata da Google in collaborazione con Microsoft usando Typescript
Riassumendo
Implementa il pattern MVC per separare la presentazione, I dati e la
logica applicative. Utilizza la dependency injection.
• Rende il codice più chiaro
• Lo semplifica
• Lo rende più lineare
• Migliora le dipendenze
• Rende i componenti riutilizzabili
Create mobile apps
with the web technologies you love
Cos’è?
Ionic is a complete open-source SDK for hybrid mobile app
development. Built on top of AngularJS and Apache Cordova, Ionic
provides tools and services for developing hybrid mobile apps using
Web technologies like CSS, HTML5, and Sass. Apps can be built with
these Web technologies and then distributed through native app stores
to be installed on devices by leveraging Cordova. Ionic was created by
Max Lynch, Ben Sperry, and Adam Bradley of Drifty Co. in 2013, and is
used by software developers around the World.
Cos’è?
Ionic
AngularJs Cordova
Cos’è?
Tool per
velocizzare lo sviluppo
Stili CSS specificatamente
pensati per il mobile
API Javascript
controllers e servizi utili
Un font contenente
più di 500 icone
Componenti Html5
dedicati al mondo del mobile
Tool per velocizzare lo sviluppo
start – Creazione progetto
serve – Esecuzione progetto su server locale
platform – Configurazione delle piattaforme di destinazione
build – Compilazione per specifica piattaforma
emulate – Emulazione nei simulatori delle piattaforme
run – Esecuzione su un device collegato al pc
I
O
N
I
C
Stili CSS specificatamente pensati per il mobile
Un font contenente più di 500 icone
Componenti Html5 dedicati al mondo del
mobile
Link utili
• Per iniziare con Ionic:
http://ionicframework.com/docs/guide/
• Visual Studio Code:
https://code.visualstudio.com/Docs
• Mobile Hybrid Apps with VS Code and Ionic:
http://blogs.msdn.com/b/vscode/archive/2015/06/05/mobile-hybrid-apps-with-vs-code-and-ionic.aspx
• Node, Grunt, Bower and Yeoman - A Modern web dev's Toolkit:
http://juristr.com/blog/2014/08/node-grunt-yeoman-bower/
• Get Up and Running With Node and Visual Studio:
http://www.johnpapa.net/get-up-and-running-with-node-and-visual-studio/
• Angular Style Guide:
https://github.com/johnpapa/angular-styleguide
• Esempio Angular:
https://github.com/johnpapa/ng-demos/tree/master/modular/src/client
Gabriele Gaggi
Brain-Sys Srl
Gabriele.Gaggi@Brain-Sys.it
@GabrieleGaggi
www.Brain-Sys.it
Slide
slideshare.net/GabrieleGaggi
Repository GitHub
github.com/gaggiga

More Related Content

What's hot

Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net Leonardo Alario
 
Costruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e XamarinCostruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e Xamarin
Fabio Cozzolino
 
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016 Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
Codemotion
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
Nicolò Carandini
 
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
Giovanni Buffa
 
App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile Powerapps
Giuneco S.r.l
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
Guido Magrin
 
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Luca Zulian
 
Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#
Guido Magrin
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
Nicolò Carandini
 
Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e contro
Carmelo Ruota
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Community Days 2015 Introduzione a Xamarin
Community Days 2015  Introduzione a XamarinCommunity Days 2015  Introduzione a Xamarin
Community Days 2015 Introduzione a Xamarin
Dan Ardelean
 
Kivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioKivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele Gaggio
Giuneco S.r.l
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
Andrea Dottor
 
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
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
Eugenio Minardi
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Giuneco S.r.l
 

What's hot (20)

Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
Costruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e XamarinCostruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e Xamarin
 
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016 Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
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
 
App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile Powerapps
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 
Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e contro
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Community Days 2015 Introduzione a Xamarin
Community Days 2015  Introduzione a XamarinCommunity Days 2015  Introduzione a Xamarin
Community Days 2015 Introduzione a Xamarin
 
Kivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioKivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele Gaggio
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
 
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
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
 

Viewers also liked

Rapid prototyping with Ionic Framework
Rapid prototyping with Ionic FrameworkRapid prototyping with Ionic Framework
Rapid prototyping with Ionic Framework
Alessio Delmonti
 
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente DrupalDDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
DrupalDay
 
Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?
Giancarlo Valente
 
node.js everywhere
node.js everywherenode.js everywhere
node.js everywhere
Valerio Coltre
 
V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009nera24mx
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccLuciano Colosio
 
Apache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionApache Cordova: Overview and Introduction
Apache Cordova: Overview and Introduction
Gabriele Falasca
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptCorso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
Studiabo
 
Aulas linux
Aulas linuxAulas linux
Aulas linux
Luis Soares
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
Lucio Grenzi
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
Emiliano Castellina
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptSinergia Totale
 
Introduzione a JavaScript
Introduzione a JavaScriptIntroduzione a JavaScript
Introduzione a JavaScript
Giovanni Buffa
 
Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
Studiabo
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
Flavius-Florin Harabor
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
Claudio Mignanti
 
Soluzione x Mobile
Soluzione x MobileSoluzione x Mobile
Soluzione x Mobile
maurizio_salis
 
Evernote
EvernoteEvernote
Evernote
Elisa Taffarel
 
Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3
John Bertucci
 

Viewers also liked (20)

Rapid prototyping with Ionic Framework
Rapid prototyping with Ionic FrameworkRapid prototyping with Ionic Framework
Rapid prototyping with Ionic Framework
 
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente DrupalDDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
 
Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?
 
node.js everywhere
node.js everywherenode.js everywhere
node.js everywhere
 
V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
 
Apache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionApache Cordova: Overview and Introduction
Apache Cordova: Overview and Introduction
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptCorso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
 
Aulas linux
Aulas linuxAulas linux
Aulas linux
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
Introduzione a JavaScript
Introduzione a JavaScriptIntroduzione a JavaScript
Introduzione a JavaScript
 
Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
 
Soluzione x Mobile
Soluzione x MobileSoluzione x Mobile
Soluzione x Mobile
 
Evernote
EvernoteEvernote
Evernote
 
Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3
 

Similar to Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Angular framework
Angular frameworkAngular framework
Angular framework
Luca Modica
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
sparkfabrik
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
Roberto Cappelletti
 
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Giorgio Di Nardo
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
dotnetcode
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
DrupalDay
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architectureLeonardo Alario
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
dotnetcode
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
Alessandro Morvillo
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
Stefano Sanna
 
Meet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventiMeet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventi
Fondazione Mondo Digitale
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Microfocusitalia
 
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPSLezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Gianluigi Cogo
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloud
Davide Benvegnù
 
Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...
Commit University
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Andrea Dottor
 
Un bit di accessibilità su dispositivi mobili
Un bit di accessibilità su dispositivi mobiliUn bit di accessibilità su dispositivi mobili
Un bit di accessibilità su dispositivi mobili
Mattia Ducci
 
Social media ca’ foscari 2016
Social media ca’ foscari 2016Social media ca’ foscari 2016
Social media ca’ foscari 2016
marcomurador
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012
FLT.lab
 
Xamarin
XamarinXamarin

Similar to Workshop AngularJs, Cordova, Ionic - Politecnico di Milano (20)

Angular framework
Angular frameworkAngular framework
Angular framework
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architecture
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Meet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventiMeet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventi
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro Focus
 
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPSLezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloud
 
Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 
Un bit di accessibilità su dispositivi mobili
Un bit di accessibilità su dispositivi mobiliUn bit di accessibilità su dispositivi mobili
Un bit di accessibilità su dispositivi mobili
 
Social media ca’ foscari 2016
Social media ca’ foscari 2016Social media ca’ foscari 2016
Social media ca’ foscari 2016
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012
 
Xamarin
XamarinXamarin
Xamarin
 

Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

  • 4. Il mercato del mobile: un’opportunità in continua mutazione
  • 5. Smartphone sempre più alla portata di tutti • Diminuzione dei costi • Aumento delle potenzialità • Geolocalizzazione • Giroscopio, accelerometro, ect • Batteria • Tecnologie di connettività (3G, 4G) • Tempi di produzione più brevi
  • 6.
  • 7. Non focalizzarsi su una sola piattaforma! Blackbarry è passato dall’essere il più diffuso, alla quasi completa scomparsa!
  • 9.
  • 10. Apache Cordova La soluzione per il riutilizzo del codice
  • 11. Cos’è Cordova? Creare App mobile native utilizzando l’approccio "Write once, run anywhere" (WORA) Riutilizzare le conoscenze e l’esperienza in ambito web e gli strumenti di sviluppo che già conosciamo
  • 12. Cos’è Cordova? Da Wikipedia: Cordova (in spagnolo Córdoba e in latino Cordŭba) è un comune spagnolo di 328.841 abitanti situato nella comunità autonoma dell'Andalusia, sulla riva delGuadalquivir e ai piedi della Sierra Morena.
  • 13. Cos’è Cordova? Dal sito ufficiale cordova.apache.org: Apache Cordova is a set of device APIs that allow a mobile app developer to access native device function such as the camera or accelerometer from JavaScript. Combined with a UI framework such as jQuery Mobile or Dojo Mobile or Sencha Touch, this allows a smartphone app to be developed with just HTML, CSS, and JavaScript.
  • 14. Cos’è Cordova? Sempre dal sito ufficiale cordova.apache.org: Cordova provides a set of uniform JavaScript libraries that can be invoked, with device-specific native backing code for those JavaScript libraries. Cordova is available for the following platforms: iOS, Android, Blackberry, Windows Phone, Palm WebOS, Bada, and Symbian.
  • 15. Un po’ di storia • Pensato e realizzato da Nitobi ad un evento iPhoneDevCamp con il nome di PhoneGap. • Nel 2009 vince il People's Choice Award alla conferenza O'Reilly Media's 2009 Web 2.0. • Viene ufficialmente approvato da Apple nel 2010. • Nitobi viene acquisita da Adobe nell’ottobre del 2011. • Il codice di PhoneGap entra quindi a far parte della Apache Software Foundation inizialmente con il nome di Apache Callback e successivamente Apache Cordova. • Adobe continua a distribuire la sua Build con il nome di PhoneGap.
  • 16. Un passo indietro: Applicazioni native • Specificamente create per ogni piattaforma • Pieno controllo delle caratteristiche del device su cui gireranno • Utilizzo delle notifiche • Funzionameno offline
  • 17. Un passo indietro: siti mobili • Sono siti che presentano un look and feel analogo a quello delle applicazioni native • Vengono eseguite all’interno del browser, quindi hanno un accesso molto limitato alle risorse del device • Tipicamente sfruttano le funzionalità avanzate di Html5
  • 18. Un passo indietro: Applicazioni ibride • Appaiono all’utente come applicazioni native presenti nello store e permettono l’interazione con le caratteristiche del dispositivo • Utilizzano il concetto delle Web Application girando all’interno di specifiche web view • Sono cross platform • Esistono diversi tools per realizzarle • Utilizzo delle notifiche • Funzionameno offline
  • 19. Come funziona Sistema operativo Api Native Web View Native Html5 Css3 Javascript
  • 20. Licenza di Apache Cordova • Apache Cordova graduated in October 2012 as a top level project within the Apache Software Foundation (ASF). Through the ASF, future Cordova development will ensure open stewardship of the project. It will always remain free and open source under the Apache License, Version 2.0. • http://www.apache.org/licenses/LICENSE-2.0.txt • Usi commerciali ammessi, bisogna solo includere una copia della licenza e mostrarla nella sezione «copyright» del proprio programma.
  • 21. Cordova non è un framework • Quindi è possibile utilizzare i framework che preferiamo
  • 22. Plugin per la gestione delle funzionalità native • Una delle caratteristiche principali di Cordova è la possibilità di utilizzare le funzionalità native dei diversi device attraverso specifici plugin (es. Geolocalizzazione, batteria).
  • 23. AngularJs Per estendere il vocabolario HTML
  • 24. Cos’è? AngularJS è un framework JavaScript, patrocinato da Google, utile a semplificare la realizzazione di applicazioni Web single page: favorisce un approccio dichiarativo allo sviluppo client-side, migliore per la creazione di interfacce utente, laddove l’approccio imperativo è ideale per realizzare la logica applicativa. AngularJS si ispira al pattern MVC, come altri framework analoghi quali Knockout o Ember.js. Ma rispetto ai diretti concorrenti, questo framework è in grado di ridurre in maniera considerevole il codice necessario a realizzare applicazioni HTML/JavaScript.
  • 25. Si ma quindi? E’ un framework javascript open-source per applicazioni web single page. Favorisce un approccio dichiarativo. Prende ispirazione dal pattern MVC.
  • 26. Model View Controller (MVC) Controller ViewModel
  • 27. Model View Controller (MVC) ???? PresentazioneDati & Logica
  • 28. Model View Controller (MVC) Il controller non deve occuparsi di troppe cose, deve occuparsi del caricamento del corretto model e della corretta view.
  • 29. Storia • Iniziato a sviluppare nel 2009 • Vengono gestite due versioni: • La 1.x.x: • 1.3.15 rilasciata a marzo 2015 • 1.4.7 rilasciata a settembre 2015 • La 2.0: • In developer preview da aprile 2015 • Più veloce della 1 • Non retrocompatibile • Sviluppata da Google in collaborazione con Microsoft usando Typescript
  • 30. Riassumendo Implementa il pattern MVC per separare la presentazione, I dati e la logica applicative. Utilizza la dependency injection. • Rende il codice più chiaro • Lo semplifica • Lo rende più lineare • Migliora le dipendenze • Rende i componenti riutilizzabili
  • 31. Create mobile apps with the web technologies you love
  • 32. Cos’è? Ionic is a complete open-source SDK for hybrid mobile app development. Built on top of AngularJS and Apache Cordova, Ionic provides tools and services for developing hybrid mobile apps using Web technologies like CSS, HTML5, and Sass. Apps can be built with these Web technologies and then distributed through native app stores to be installed on devices by leveraging Cordova. Ionic was created by Max Lynch, Ben Sperry, and Adam Bradley of Drifty Co. in 2013, and is used by software developers around the World.
  • 34. Cos’è? Tool per velocizzare lo sviluppo Stili CSS specificatamente pensati per il mobile API Javascript controllers e servizi utili Un font contenente più di 500 icone Componenti Html5 dedicati al mondo del mobile
  • 35. Tool per velocizzare lo sviluppo start – Creazione progetto serve – Esecuzione progetto su server locale platform – Configurazione delle piattaforme di destinazione build – Compilazione per specifica piattaforma emulate – Emulazione nei simulatori delle piattaforme run – Esecuzione su un device collegato al pc I O N I C
  • 36. Stili CSS specificatamente pensati per il mobile
  • 37. Un font contenente più di 500 icone
  • 38. Componenti Html5 dedicati al mondo del mobile
  • 39. Link utili • Per iniziare con Ionic: http://ionicframework.com/docs/guide/ • Visual Studio Code: https://code.visualstudio.com/Docs • Mobile Hybrid Apps with VS Code and Ionic: http://blogs.msdn.com/b/vscode/archive/2015/06/05/mobile-hybrid-apps-with-vs-code-and-ionic.aspx • Node, Grunt, Bower and Yeoman - A Modern web dev's Toolkit: http://juristr.com/blog/2014/08/node-grunt-yeoman-bower/ • Get Up and Running With Node and Visual Studio: http://www.johnpapa.net/get-up-and-running-with-node-and-visual-studio/ • Angular Style Guide: https://github.com/johnpapa/angular-styleguide • Esempio Angular: https://github.com/johnpapa/ng-demos/tree/master/modular/src/client