App di successo - quali strumenti? e le performance?

55
Diego La Monica @jast #appmobile Stand B6 App di successo: quali strumenti? E le performance? #appmobile Diego La Monica [email protected]

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?

9

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

App di successo:quali strumenti? E le performance?

13

Diego La Monica@jast

#appmobileStand B6

App di successo:quali strumenti? E le performance?

14

Diego La Monica@jast

#appmobileStand B6

App di successo:quali strumenti? E le performance?

15

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

Per quale piattaforma produco la mia app?

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?

27

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

Adesso la vuoi fare troppo facile…

amico di Confucio

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

Ma non ci sono

problemi di

performance?

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