40
Gabriele Gaggi Brain-Sys Srl [email protected] @GabrieleGaggi www.Brain-Sys.it github.com/gaggiga slideshare.net/ GabrieleGaggi

Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Embed Size (px)

Citation preview

Page 1: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Gabriele GaggiBrain-Sys [email protected]@GabrieleGaggiwww.Brain-Sys.it

github.com/gaggiga

slideshare.net/GabrieleGaggi

Page 2: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

@OverNetE

Page 3: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

www.wpc2015.it

Page 4: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Il mercato del mobile: un’opportunità in continua mutazione

Page 5: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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

Page 6: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Page 7: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Non focalizzarsi su una sola piattaforma!

Blackbarry è passato dall’essere il più diffuso, alla quasi completa scomparsa!

Page 8: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Cross-platform: la soluzione al problema?

Page 9: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Page 10: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Apache CordovaLa soluzione per il riutilizzo del codice

Page 11: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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

Page 12: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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.

Page 13: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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.

Page 14: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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.

Page 15: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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.

Page 16: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Un passo indietro: Applicazioni native

• Specificamente create per ogni piattaforma• Pieno controllo delle caratteristiche del device su cui gireranno• Utilizzo delle notifiche• Funzionameno offline

Page 17: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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

Page 18: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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

Page 19: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Come funziona

Sistema operativo

Api Native

Web View Native

Html5 Css3 Javascript

Page 20: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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.

Page 21: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Cordova non è un framework• Quindi è possibile utilizzare i framework che preferiamo

Page 22: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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).

Page 23: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

AngularJsPer estendere il vocabolario

HTML

Page 24: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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.

Page 25: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Si ma quindi?E’ un framework javascript open-source per applicazioni web single page.Favorisce un approccio dichiarativo.Prende ispirazione dal pattern MVC.

Page 26: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Model View Controller (MVC)

Controller

ViewModel

Page 27: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Model View Controller (MVC)

????

Presentazione

Dati & Logica

Page 28: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Model View Controller (MVC)

Il controller non deve occuparsi di troppe cose, deve occuparsi del caricamento del corretto model e della corretta view.

Page 29: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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

Page 30: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

RiassumendoImplementa 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

Page 31: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Create mobile apps with the web technologies you

love

Page 32: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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.

Page 33: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Cos’è?

Ionic

AngularJs Cordova

Page 34: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Cos’è?

Tool per velocizzare lo sviluppo

Stili CSS specificatamente pensati per il mobile

API Javascriptcontrollers e servizi utili

Un font contenentepiù di 500 icone

Componenti Html5dedicati al mondo del mobile

Page 35: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Tool per velocizzare lo sviluppostart – 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

IONIC

Page 36: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Stili CSS specificatamente pensati per il mobile

Page 37: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Un font contenente più di 500 icone

Page 38: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Componenti Html5 dedicati al mondo del mobile

Page 39: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

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

Page 40: Workshop AngularJs, Cordova, Ionic - Politecnico di Milano

Gabriele GaggiBrain-Sys [email protected]@GabrieleGaggiwww.Brain-Sys.it

Slide

slideshare.net/GabrieleGaggi

Repository GitHub

github.com/gaggiga