Le applicazioni mobili sono osservati speciali. Ma come decidere se sviluppare un'App Nativa o un'App Ibrida e quali sono i costi da sostenere? Questo ed altro è stato discusso a SMAU Milano 2016.
2. Diego La Monica
@jast
#appmobile
Applicazioni mobili: strumenti, costi,
soluzioni e performance
#>Hello World!
Diego La Monica
Web Solution Developer
mail: diego.lamonica@gmail.com
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
3. 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: diego.lamonica@gmail.com
web: http://diegolamonica.info
twitter: @jast
skype: diego.la.monica
mobile: +39 333 7235 382
4. 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
5. 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 pericolo
Sun Tzu - L’arte della guerra - Cap. 3 p. 31
7. 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
9. 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
10. Diego La Monica
@jast
#appmobile
popolazione mondiale 7.000.000.000circa
dispositivi mobili 6.880.000.000 nel mondo
dispositivi mobili 88.580.000in Italia
https://en.wikipedia.org/wiki/List_of_countries_by_number_of_mobile_phones_in_use
10
10#diamoinumeri
16. 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
17. 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
18. 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
27. 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
31. Diego La Monica
@jast
#appmobile
Con cosa si sviluppa un App?
✓ Intel XDK ( IDE )
✓ Cordova CLI (CLI)
sviluppo multi-piattaforma con Apache Cordova
31
33. Diego La Monica
@jast
#appmobile
Svilupperò l’app identica
per tutte le piattaforme!
L’utente vivrà la stessa
esperienza a prescindere
dal device
Sebastian Seidil - Bronzo - Giochi Europei 2015
35. Diego La Monica
@jast
#appmobile
UI 35
1 2
Qual è la risposta giusta?
a) 1 = Android
2 = iPhone
b) 1 = iPhone
2 = Android
c) Entrambe Android
d) Entrambe iPhone
36. Diego La Monica
@jast
#appmobile
UI 36
iPhone Android
Qual è la risposta giusta?
× 1 = Android
2 = iPhone
✓ 1 = iPhone
2 = Android
× Entrambe Android
× Entrambe iPhone
37. Diego La Monica
@jast
#appmobile
UI 37
1 2
Qual è la risposta giusta?
a) 1 = Android
2 = iPhone
b) 1 = iPhone
2 = Android
c) Entrambe Android
d) Entrambe iPhone
38. Diego La Monica
@jast
#appmobile
Android iPhone
38
UIQual è la risposta giusta?
✓ 1 = Android
2 = iPhone
× 1 = iPhone
2 = Android
× Entrambe Android
× Entrambe iPhone
39. 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
41. 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;
}
...
42. 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(/^[^,]*,/,'');
…
}
43. 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;
44. 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
45. 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
46. 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
47. 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