Upload
diego-la-monica
View
146
Download
0
Embed Size (px)
Citation preview
Diego La Monica@jast
#appmobile
#appmobileDiego La [email protected]
Applicazioni mobili: strumenti, costi, soluzioni e performance
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
#>Hello World!Diego La Monica
Web Solution Developer
mail: [email protected]
web: http://diegolamonica.info
twitter: @jast
skype: diego.la.monica
mobile: +39 333 7235 382
● Professionista Web di cui alla legge
n. 4/2013
● Full stack developer
● Associato IWA/HWG dal 2006
● Autore di EUCookieLaw (+2500 siti)
● Autore XTemplate (JSClasses Award)
● Contribuisce ad altri progetti
Open Source
● Sviluppo app mobili e web app
2
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
3
http://store.streetlib.com/sviluppare-applicazioni-ibride-per-dispositivi-mobili
ISBN: 9788892513044
Diego La Monica
Web Solution Developer
mail: [email protected]
web: http://diegolamonica.info
twitter: @jast
skype: diego.la.monica
mobile: +39 333 7235 382
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
International Web Association● Dal 1996 (in Italia dal 2000) è il riferimento di chi lavora
nel Web, sia nel settore pubblico che privato.
● Associazione professionisti Web (Legge 4/2013),
promotrice norme UNI in materia di professionalità
ICT.
● Obiettivo di IWA è creare rete tra i soci, partecipare
all'evoluzione della rete e divulgare conoscenza
tramite i soci con eventi e iniziative.
4
partecipazioni internazionali
principali partecipazioni nazionali
http://www.iwa.it
Diego La Monica@jast
#appmobile
Conosci il nemico come conosci te
stesso. Se farai così, anche in
mezzo a cento battaglie non ti
troverai mai in pericoloSun Tzu - L’arte della guerra - Cap. 3 p. 31
Diego La Monica@jast
#appmobile
Se non conosci te stesso, né conosci il
tuo nemico, sii certo che ogni
battaglia sarà per te fonte di pericolo
gravissimo.Sun Tzu - L’arte della guerra - Cap. 3 p. 33
Diego La Monica@jast
#appmobile
Diamo i numeri!Periodo Android iOS Windows Phone BlackBerry Altri
2016Q2 86.2% 12.9% 0.6% 0.1% 0.4%
2015Q2 82.2% 14.6% 2.5% 0.3% 0.4%
2014Q2 84.8% 11.6% 2.5% 0.5% 0.7%
2013Q2 79.8% 12.9% 3.4% 2.8% 1.2%
2012Q2 69.3% 16.6% 3.1% 4.9% 6.1%
9
Diego La Monica@jast
#appmobile
popolazione mondiale 7.000.000.000 circa
dispositivi mobili 6.880.000.000 nel mondo
dispositivi mobili 88.580.000 in Italia
https://en.wikipedia.org/wiki/List_of_countries_by_number_of_mobile_phones_in_use
10
10#diamoinumeri
Diego La Monica@jast
#appmobile
E adesso? Cosa faccio?
Per quali versioni?
Per quali piattaforme?
Ma funzionerà ovunque?
Diego La Monica@jast
#appmobile
Il tuo scopo primario deve essere quello di
riuscire a prendere Tutto-Sotto-Il-Cielo: così,
non dovrai mantenere le truppe di
occupazione e i tuoi profitti saranno assoluti.
Questa è la regola per la strategia dell’assedio.Sun Tzu - L’arte della guerra - Cap. 3 p. 11
Diego La Monica@jast
#appmobile
Web app[…] una web app è sostanzialmente un
collegamento verso un applicativo remoto, scritto
in un linguaggio cross-platform come HTML5, con
il codice dell'interfaccia utente che può risiedere
sul dispositivo mobile o anch'essa in remoto.https://it.wikipedia.org/wiki/Applicazione_mobile#Web_app
17
Diego La Monica@jast
#appmobile
App nativa[…] Strumento informatico che si installa e si
utilizza interamente sul proprio dispositivo
mobile, vale a dire un insieme di istruzioni
informatiche progettate con lo scopo di rendere
possibile un servizio o una serie di servizi o
strumenti ritenuti utili o desiderabili dall’utente,
creata appositamente per uno specifico sistema
operativo. https://it.wikipedia.org/wiki/Applicazione_mobile#App_nativa
18
Diego La Monica@jast
#appmobile
App nativa per Windows Phone 21
Mantenimento app sullo store:
€ 75 / anno
Diego La Monica@jast
#appmobile
La vita è veramente molto
semplice; ma noi insistiamo
nel renderla complicata.Confucio
Diego La Monica@jast
#appmobile
App ibrida
App nativa + Web app
25
✓ Pubblicabile sugli store
✓ Compilata
✓ Accesso all’hardware
✓ HTML
✓ CSS
✓ Javascript
Diego La Monica@jast
#appmobile
Le App sviluppate con
Apache Cordova sono scritte
in HTML, CSS e Javascript e
sono in grado di accedere
anche alle funzionalità
native del device.
27
Diego La Monica@jast
#appmobile
28✓ Google Android
✓ Apple iOS
✓ Windows Phone
✓ Blackberry
✓ Amazon Tizen
✓ Firefox OS
Diego La Monica@jast
#appmobile
Con cosa si sviluppa un App?
✓ Intel XDK ( IDE )
✓ Cordova CLI (CLI)
sviluppo multi-piattaforma con Apache Cordova
31
Diego La Monica@jast
#appmobile
Svilupperò l’app identica per tutte le piattaforme!
L’utente vivrà la stessaesperienza a prescindere dal device
Sebastian Seidil - Bronzo - Giochi Europei 2015
Diego La Monica@jast
#appmobile
UI 35
1 2
Qual è la risposta giusta?
a) 1 = Android 2 = iPhone
b) 1 = iPhone2 = Android
c) Entrambe Android
d) Entrambe iPhone
Diego La Monica@jast
#appmobile
UI 36
iPhone Android
Qual è la risposta giusta?
× 1 = Android 2 = iPhone
✓ 1 = iPhone2 = Android
× Entrambe Android
× Entrambe iPhone
Diego La Monica@jast
#appmobile
UI 37
1 2
Qual è la risposta giusta?
a) 1 = Android 2 = iPhone
b) 1 = iPhone2 = Android
c) Entrambe Android
d) Entrambe iPhone
Diego La Monica@jast
#appmobile
Android iPhone
38UIQual è la risposta giusta?
✓ 1 = Android 2 = iPhone
× 1 = iPhone2 = Android
× Entrambe Android
× Entrambe iPhone
Diego La Monica@jast
#appmobile
Ogni sistema è associato a specifiche
caratteristiche hardware che l’utente è
abituato ad utilizzare.
L’utente non si deve adattare all’app
Diego La Monica@jast
#appmobile
40…<body class="android">
… </body></html>
…<body class="ios">
… </body></html>
…<body class="windows">
… </body></html>
body.ios a.back-button{display: none;
}body.windows{ background-image:
url(images/windows.png);}body.android{
background-image: url(images/android.png);
}body.ios{
background-image: url(images/apple.png);
}
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
41
41Cosa cambia?Se si hanno elementi
specifici per un device
si visualizzano solo
quando serve.
body:not(.ios) .ios-only,
body:not(.android) .android-only,
body:not(.windows) .windows-only{
display: none;
}
...
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
42
42Codice diverso per dispositivo?Per comportamenti
differenti, bisogna
trovare il minimo
comune multiplo.
function base64toFile( buffer, file){/* * alcuni device forniscono il base64 * con il data-uri * data:image/gif;base64,<contenuto> */buffer = buffer.replace(/^[^,]*,/,'');…
}
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
43
43Codice diverso per dispositivo?Per comportamenti
differenti, bisogna
trovare il minimo
comune multiplo.
/* * In dipendenza del sistema alcuni * percorsi possono non esistere. */
var destinationPath =cordova.file.externalRootDirectory ||cordova.file.tempDirectory ||cordova.file.cacheDirectory;
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
Cosa posso fare con Apache Cordova?✓ Autenticazione sociale
✓ Notifiche push
✓ Geolocalizzazione
✓ Stato della rete
✓ Storage
✓ Integrazione mappe
✓ Internazionalizzazione
✓ Streaming
✓ Advertising
✓ Accesso ai contatti
✓ Acquisti in-app
✓ Accesso alla fotocamera
✓ Media
✓ Google Play Games Service
✓ …
44
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
Ma si può fare davvero?✓ Geolocalizzazione
✓ Stato della rete
✓ Storage
✓ Integrazione mappe di Google
✓ Accesso alla fotocamera
45
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
Ma si può fare davvero?✓ Autenticazione sociale
✓ Geolocalizzazione
✓ Accesso alla fotocamera
✓ Media
✓ Stato della rete
✓ Storage
✓ Streaming
46
Diego La Monica@jast
#appmobile
Quali sono i limiti?
C'è luogo tra la fantasia e la realtà,
un luogo dove non ci sono limiti,
né assoluti né relativi.E.L. James
Diego La Monica@jast
#appmobile
Ottimizzazione del Core
✓ Permessi
✓ Campi di input
✓ Framework
✓ Multithread
50
Diego La Monica@jast
#appmobile
Ottimizzazione accesso al DOM
✓ DOM Reflow
✓ Semplificazione
✓ Virtualizzazione
✓ Interrogazione
51
Diego La Monica@jast
#appmobile
Ottimizzazione delle funzioni di rete
✓ Online/Offline
✓ Errori di comunicazione
✓ Caricamento contenuti
✓ Notificare l'elaborazione
52
Diego La Monica@jast
#appmobile
Ottimizzazione hardware
✓ Accelerazione Hardware
✓ Device Events
✓ Elaborazione immagini
✓ Trasformazioni CSS
53
Diego La Monica@jast
#appmobile
Ottimizzazione funzionale
✓ Statistiche d'uso
✓ Monitoraggio dei
feedback
✓ Analisi dei dati
54
Diego La Monica@jast
#appmobile
Parla poco, odi assai et
guarda al fine di ciò che fai
San Benedetto
Question Time
Diego La Monica@jast
#appmobile
Applicazioni mobili: strumenti, costi, soluzioni e performance
Diego La Monica
Web Solution Developer
mail: [email protected]
web: http://diegolamonica.info
twitter: @jast
skype: diego.la.monica
mobile: +39 333 7235 382
56
http://store.streetlib.com/sviluppare-applicazioni-ibride-per-dispositivi-mobili
ISBN: 9788892513044