lunedì 12 aprile 2010

Mobile web o objective C?

Uno dei miei 4 lettori, mi ha fatto notare che nello sviluppo di nuove applicazioni per dispositivi mobili alcuni temono che si stia diffondendo la moda di usare objective C anziché gli strumenti standard per il web.

Vediamo i principali pro e contro delle due scelte.

Mobile web
Pro: raggiungibile da molti
Contro: user experience (UX)

Objective C
Pro: user experience (UX), persistenza
Contro: mono-piattaforma

La scelta è quindi tra la UX ed il raggiungimento di un maggior numero di utenti.

I dispositivi mobili hanno molte diversità tra loro, sia hardware (display più o meno grandi e quindi risoluzioni diverse, processori più o meno veloci), sia software (browser diversi e non compatibili al 100% con gli standard, motori javascript diversi, ecc.). Per questo motivo la resa di applicazioni web, anche se scritte rispettando strettamente gli standard e testandola su dispositivi diversi non può avere la stessa resa su tutti. Inoltre, per aggirare problemi di incompatibilità spesso occorre ridursi ad un minimo comune denominatore che penalizza le piattaforme più prestanti, scontentandone i clienti.

L'ideale è avere sia una versione web che permetta l'accesso a tutti sia versioni ottimizzate sulle principali piattaforme. Sicuramente oggigiorno iPhone è la piattaforma di riferimento (ma per quanto?), ma avere applicativi per più piattaforme è meglio.

La scelta di sviluppare per più piattaforme mi piace per i motivi seguenti.
  • Innanzitutto l'esperienza dell'utente con un'applicazione mirata è spesso superiore. Penso ad esempio a Facebook su iPhone: l'applicazione dedicata la preferisco addirittura a Facebook su PC; oppure ai vari client per twitter o ai lettori RSS o ancora a client per servizi come Dropbox. Se si considera inoltre che queste applicazioni offrono qualche funzionalità anche quando non si è collegati ad internet, è ovvio che in un paese come il nostro hanno un bel vantaggio.
  • Essendo io un programmatore, preferisco vedere applicazioni mirate a sfruttare al massimo i vari tipi di hardware e la scrittura di più versioni permette anche la creazione di più posti di lavoro oltre che una analisi dell'applicazione da varie realtà e quindi da vari punti di vista.
  • Infine, ritengo che una software house che offre le proprie applicazioni per più piattaforme si presenti in un modo migliore all'utente. Infatti gli dice che se un domani dovesse cambiare piattaforma, non deve preoccuparsi di perdere quest'applicazione e che lo sviluppo non è fatto solo da pochi programmatori legati ad una singola realtà, ma che dietro all'applicazione c'è un team di sviluppatori competenti su varie piattaforme.
Ovviamente se il tempo e le risorse sono limitate bisogna accontentarsi di una sola versione. In questo caso la scelta va fatta in base al tipo di applicazione ed al tipo di utenti a cui ci si rivolge, facendo un'attenta analisi.

Oggi è probabilmente una moda avere un'applicazione per iPhone, ma lo sviluppo del web, in particolare con HTML5, porterà alla creazioni di applicazioni web che offriranno una maggior UX su ogni piattaforma.

E' interessante ricordare che tutte le versioni 1.0 di iPhone, WebOS ed Android non permettevano lo sviluppo di software nativo, ma si appoggiavano alle applicazioni web (o a macchine virtuali Java nel caso di Android). Tutti e tre hanno dovuto ricredersi, anche per il business che permette uno store di applicazioni.

1 commento:

  1. bel pezzo Enrico: il mio parere è che alla fine sarà una questione economica, html5 costa meno di java che costa meno di objc. questo in teoria, vedremo come si evolverà la pratica.

    RispondiElimina