crossdev sdk/tools: devil's deception
TRANSCRIPT
Luciano Colosio - @unlucio(Save The Mom)
Crossdev sdk/tools:devil's deception
Ciao! :)
Ho 32 anni
vengo da Brescia
So2ware Architect e Dev @ Save The Mom
Adoro il mobile internet fin dal WAP
In internet sono: unlucio
3
Gli Smartphones
Giugno 2002
Primo device Symbian
Promessa: cellulare + palmareun unico device da tenere in tasca
Supporto app terze parJ
Web + email
Nokia 7650
4
Gli Smartphones
5
Arriva l’iPhoneGennaio 2007
Finalmente sparisconotasJere e pennini
Cellulare + iPod + Internet
Internet QUELLO VERO!
Primo mobile browserdegno di tale nome
Primo client email mobiledegno di tale nome
6
Ma non le app!
Non ha SDK naJvo!
Nel bel mezzo del web 2.0
Cavalca la rivoluzione delle webapp!
7
l’iPhone: reazioni
“$500… fully-subsidized with a plan… I say that is the most expensive phone in the world… and it doesn’t appeal business customer because it doesn’t have a keyboard,”
-‐ Steve Ballmer -‐
"There's no chance that the iPhone is going to get any significant market share. No chance,"
8
l’iPhone: conseguenze
Operator lock
Jail break
Toolchain
App installer / Cydia
Successo delle app non ufficiali
9
Appstore6 marzo 2008: rilascio primo SDK beta
Nuova opportunita’ di business(apprentemente semplice)
E’ piu’ facile avere l’icona del porprio prodogo sulla springboard!
10
Ed e’ frenesia da App
Tui vogliono un’appTui i dev voglino costruire un’app
Tui i concorrenJ alla rincorsa di iPhone corrono a costruirsi un appstore
Nel mio coltellino ci sono:
html, css, javascript e linguaggi di scripJng per il server side
non: Objc, Xcode, Java, Eclipse, Qt, ecc, ecc, ecc...
11
Sono un web developer
12
Le scelte...Scelgo una piagaforma, e mi imparo il relaJvo framework ed un nuovo linguaggio
O cerco un “mezzuccio” per riciclare le mie skills, in un echo sistema che non e’ propriamente il mio?
App naJva != Web App
13
Cosa trovo in giro
14
Pro...Piu’ immediaJ dei naJvi
Si raggiungono facilmente risultaJ soddisfacenJ
Ok se il progego non e’ troppo complessoo richiede features parJcolari
Plugins
Semplici per i web developer (forse)
Possibile contenimento dei cosJ
15
... ControL’overhead si impenna
non sono comunque a casa
Gli inganni dei vendors ed il lockin
difficile debuggare e profilare
features specifiche mancanJ
Plugins
Il rate di update delle app puo’ essere un problema!
16
Il problema: La UIWrite once run everywhere non esiste
La user experince varia molto da OS ad OS
Se ci va bene riempiamo il codice di if condizianJ alla piagaforma
e se va peggio ci troviamo a smazzarci la famosa polverizzazione di android...
17
Il worst case“Anything that can go wrong, will go wrong”
-‐ With love, Murphy -‐
Se il mio progego e’ piu’ di un’app usa-‐e-‐gega, nella sua evoluzione si arrivera’ al punto in cui la soluzione intrapresa non sara’ piu’ gesJbile.
Doppia faJca e doppio tugo
18
Bug che vanno e vengono
Tra sviluppatore ed il sistema “targeizzato” c’e’ una terza parte a cui si deve, per forza di cose, sogostare.
Piu’ layers, piu’ codice, piu’ posJ in cui qualcosa puo’ andare storto
Una cosa funziona da una parte, ma non dall’altra. Nuova release e magari i ruoli si invertono...
19
workaround...Trovi un bug, magari solo in un caso molto specifico
Scrivi un workaround
La release successiva risolve il bug
Se hai fago il workaround hai perso del tempo, ma agendere che lo fixino loro puo’ essere anche peggio
20
Nuovi OS, features e compatibilita’
All’annuncio di una nuova versione di un OS e relaJvo SDK, se si e’ legaJ ad un tool di mezzo si e’ automaJcamente esclusi dalla nuova versione fino a che la terza parte non provvede.
L’os viene comunque rilasciato ma tu non saprai mai se riuscirai a rendere la tua app compaJbile in tempo e a quale prezzo.
21
Codice in crescita
Il codice quindi tende a crescere e ramificarsi
L’effort per la gesJone dei vari degagli di interfaccia puo’ superare facilmente il vantaggio dato dal poter mantenere il core comune
Ammesso che ce la si faccia.
E’ facile rischiare d’avventurarsi in barocche architegure che cercano di gesJre il piu’ possibile le parJcolarita’.
Il nostro codice sembra sempre piu’ un Idra molto incavolato!
22
Se diventa un mostro...
23
Torniamo nel browser!
Ma non eravamo web developers?
Capita poi, che alla fine i browser ci diano gia’ un supporto ad un set comune di tecnologie su piagaforme diverse!
Non e’ cio’ che abbiamo sempre fago?
“Giravamo” su linux, osx e windows!
Si dice che HTML5 non sia maturo, ma non e’ quello che molJ framework ci fanno usare?
24
opzioni ibride
Scheletro naJvo fago ad-‐hoc
contenuto in html5
non piu’ un probelma di performace
let tecnologie web conJnuano a maturare
Linkedin, come facebook, google, e la stessa apple hanno app ibride che caricano contenuJ web!
Facile liberarsi dallo scheletro e tornare nel browser
25
60% dei casi non pareggia!
fonte: hgp://app-‐promo.com/wake-‐up-‐call-‐infographic/
26
Quindi
Serve davvero un’app?
Webapps con interfaccia da webapp
Se proprio vogliamo targeizzare una determinata piagaforma: andiamo naJvi, la UX ne giovera’.
Valutare bene il prodogo in termini di complessita’ ed esigenze
27
grazie per l’agenzione
trollatemi su twiger@unlucio
28
Un po’ di spam! :)
hgp://nodejsconf.ithgp://www.webdebs.org/