App di successo - quali strumenti? e le performance?
-
Upload
diego-la-monica -
Category
Mobile
-
view
85 -
download
1
Transcript of App di successo - quali strumenti? e le performance?
Diego La Monica@jast
#appmobileStand B6
App di successo: quali strumenti? E le performance?
#appmobileDiego La [email protected]
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le 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 di XTemplate (JSClasses
Award)
● Contribuisce ad altri progetti
Open Source
● Sviluppo app mobili e web app
2
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le 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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
International Web Association● Prima associazione al mondo che raggruppa chi
lavora nel Web
● Obiettivo di IWA: creare rete tra soci, partecipare
all'evoluzione del Web, divulgare conoscenza
tramite soci con eventi ed iniziative
● Associazione professionale in rappresentanza
delle professionalità Web
● unica Associazione del settore ICT attualmente
censita dal Ministero dello Sviluppo Economico
4
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Vuoi saperne di più?
5
5
Stand B6
Diego La Monica@jast
#appmobileStand B6
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
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Perché si usa il device?
7
Diego La Monica@jast
#appmobileStand B6
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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Diamo i numeri!10
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%
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
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
#diamoinumeri
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
1286% = ~ 6 Miliardi
13% = ~ 700 Milioni
0.6% = ~ 38 Milioni
Diego La Monica@jast
#appmobileStand B6
E adesso? Cosa faccio?
Per quali versioni?
Per quali piattaforme?
Ma funzionerà ovunque?
Diego La Monica@jast
#appmobileStand B6
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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
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
18
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
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
19
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
App nativa per iOS20
+ =
Mantenimento app sullo store:
€ 99 / anno
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
App nativa per Android21
+ =
Mantenimento app sullo store:
€ 25
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
App nativa per Windows Phone22
Mantenimento app sullo store:
€ 75 / anno
Diego La Monica@jast
#appmobileStand B6
Ma quanto mi costerà?
Per quale piattaforma produco la mia app?
Diego La Monica@jast
#appmobileStand B6
La vita è veramente molto
semplice; ma noi insistiamo
nel renderla complicata.Confucio
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
App ibrida
App nativa + Web app
26
✓ Pubblicabile sugli store
✓ Compilata
✓ Accesso all’hardware
✓ HTML
✓ CSS
✓ Javascript
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
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.
28
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
29
✓ Google Android
✓ Apple iOS
✓ Windows Phone
✓ Blackberry
✓ Amazon Tizen
✓ Firefox OS
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Requisiti30
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Alternativa31
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Con cosa si sviluppa un App?
✓ Intel XDK ( IDE )
✓ Cordova CLI (CLI)
sviluppo multi-piattaforma con Apache Cordova
32
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Stesso codice per tutte le piattaforme33
=
Diego La Monica@jast
#appmobileStand B6
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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
UI 36
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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
UI 37
iPhone Android
Qual è la risposta giusta?
× 1 = Android 2 = iPhone
✓ 1 = iPhone2 = Android
× Entrambe Android
× Entrambe iPhone
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
UI 38
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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Android iPhone
39UIQual è la risposta giusta?
✓ 1 = Android 2 = iPhone
× 1 = iPhone2 = Android
× Entrambe Android
× Entrambe iPhone
Diego La Monica@jast
#appmobileStand B6
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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
41…<body class="android">
… </body></html>
…<body class="ios">
… </body></html>
…<body class="windows">
… </body></html>
body.android a.back-button{ // Nasconde il tasto back su interfacciadisplay: 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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
42
42Cosa 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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
43
43Codice 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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
44
44Codice 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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Cosa posso fare con Apache Cordova?
✓ Autenticazione sociale
✓ Notifiche push
✓ Geolocalizzazione
✓ Stato della rete
✓ Storage
✓ Integrazione mappe
✓ Internazionalizzazione
✓ Stream remoto
✓ Advertising
✓ Accesso ai contatti
✓ Acquisti in-app
✓ Accesso alla fotocamera
✓ Media
✓ Google Play Games Service
✓ …
45
Diego La Monica@jast
#appmobileStand B6
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
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Ottimizzazione
✓ Core
✓ DOM
✓ Rete
✓ Hardware
✓ Funzionale
48
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Ottimizzazione del Core
✓ Permessi
✓ Campi di input
✓ Framework
✓ Multithread
49
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Ottimizzazione accesso al DOM
✓ DOM Reflow
✓ Semplificazione
✓ Virtualizzazione
✓ Interrogazione
50
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Ottimizzazione delle funzioni di rete
✓ Online/Offline
✓ Errori di comunicazione
✓ Caricamento contenuti
✓ Notificare l'elaborazione
51
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Ottimizzazione hardware
✓ Accelerazione Hardware
✓ Device Events
✓ Elaborazione immagini
✓ Trasformazioni CSS
52
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Ottimizzazione funzionale
✓ Statistiche d'uso
✓ Feedback qualitativi
✓ Feedback quantitativi
✓ Analisi dei dati
53
Diego La Monica@jast
#appmobileStand B6
Parla poco, odi assai et
guarda al fine di ciò che fai
San Benedetto
Question Time
Diego La Monica@jast
#appmobileStand B6
App di successo:quali strumenti? E le performance?
Diego La Monica
Web Solution Developer
mail: [email protected]
web: http://diegolamonica.info
twitter: @jast
mobile: +39 333 7235 382
55
ISBN: 9788892513044
Stand B6