28
Luciano Colosio - @unlucio (Save The Mom) Crossdev sdk/tools: devil's deception

Crossdev sdk/tools: devil's deception

Embed Size (px)

Citation preview

Page 2: 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

Page 3: Crossdev sdk/tools: devil's deception

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

Page 4: Crossdev sdk/tools: devil's deception

4

Gli Smartphones

Page 5: Crossdev sdk/tools: devil's deception

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

Page 6: Crossdev sdk/tools: devil's deception

6

Ma non le app!

Non  ha  SDK  naJvo!

Nel  bel  mezzo  del  web  2.0

Cavalca  la  rivoluzione  delle  webapp!

Page 7: Crossdev sdk/tools: devil's deception

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,"

Page 8: Crossdev sdk/tools: devil's deception

8

l’iPhone: conseguenze

Operator  lock

Jail  break

Toolchain

App  installer  /  Cydia

Successo  delle  app  non  ufficiali

Page 9: Crossdev sdk/tools: devil's deception

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!

Page 10: Crossdev sdk/tools: devil's deception

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

Page 11: Crossdev sdk/tools: devil's deception

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

Page 12: Crossdev sdk/tools: devil's deception

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

Page 13: Crossdev sdk/tools: devil's deception

13

Cosa trovo in giro

Page 14: Crossdev sdk/tools: devil's deception

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

Page 15: Crossdev sdk/tools: devil's deception

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!

Page 16: Crossdev sdk/tools: devil's deception

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...

Page 17: Crossdev sdk/tools: devil's deception

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

Page 18: Crossdev sdk/tools: devil's deception

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...

Page 19: Crossdev sdk/tools: devil's deception

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

Page 20: Crossdev sdk/tools: devil's deception

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.

Page 21: Crossdev sdk/tools: devil's deception

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.

Page 22: Crossdev sdk/tools: devil's deception

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...

Page 23: Crossdev sdk/tools: devil's deception

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?

Page 24: Crossdev sdk/tools: devil's deception

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

Page 25: Crossdev sdk/tools: devil's deception

25

60% dei casi non pareggia!

fonte:  hgp://app-­‐promo.com/wake-­‐up-­‐call-­‐infographic/

Page 26: Crossdev sdk/tools: devil's deception

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

Page 27: Crossdev sdk/tools: devil's deception

27

grazie  per  l’agenzione

trollatemi  su  twiger@unlucio

Page 28: Crossdev sdk/tools: devil's deception

28

Un po’ di spam! :)

hgp://nodejsconf.ithgp://www.webdebs.org/