
Se siete fra i diversi milioni di utenti che hanno scaricato l’applicazione mobile di Facebook, per iOS e per Android, vi sarete sicuramente accorti che non gode di ottima fama, in nessuna piattaforma.
3/5 stelle nel Market Android e 2/5 stelle nell’App Store, è evidente che qualcosa non va. Cos’è che infastidisce tanto gli utenti riguardo le applicazioni native del colosso di Palo Alto?
Se avete utilizzato una delle ultime versioni dell’app di Facebook penso saprete già la risposta: instabilità, continui crash e quella sensazione di applicazione fatta solo perché doveva essere fatta come Gmail per iOS (se “applicazione” possiamo chiamarla, è un mini-browser che ci mostra la versione mobile di Gmail accessibile dal browser di sistema).
Certe cose da aziende così potenti non ce le aspettiamo (specialmente se con un parco di talenti ingegneristici e di design come quello di Facebook), e invece sono forse quelle più piccole a tenere di più ai dettagli (Path ne è un esempio lampante).
Motivazioni puramente tecniche
Per quelli di voi che vogliono capire le motivazioni alla base del malfunzionamento dell’app di Facebook, adesso mi dilungherò — senza ritegno — sulle questioni tecniche che potrebbero esserne la causa.
Il problema dell’applicazione di Facebook è che si finge qualcosa che non è, potremmo definirla un ibrido.
HTML5 e Javascript sono le tecnologie alla base di Facebook nelle sue versioni mobile, così come quelle alla base del sito internet che usate ogni giorno. Queste due tecnologie si uniscono, creando appunto un ibrido, con i linguaggi usati per lo sviluppo su ogni piattaforma: Java su Android, Objective-C su iOS, C# su Windows Phone 7.
Un misto fra “tecnologie” web e native, che non potranno mai eguagliare in prestazioni applicazioni completamente native. Ma quali sono le motivazioni?
Data la necessità di essere presenti su ogni piattaforma (Windows Phone 7, Blackberry, iOS, Android) la cosa più comoda da fare per aziende come Facebook è sviluppare contenitori che mostrino qualcosa scritto in un linguaggio standard — comprensibile da ogni piattaforma — che in questo caso è l’HTML5.
A fare da ponte tra HTML5 e OS (qui sta la differenza effettiva con touch.facebook.com e quindi una web-app vera e propria) è Javascript, linguaggio tipicamente web.
In questo modo i tempi di sviluppo diminuiscono (e così gli sviluppatori necessari e così gli stipendi da pagare), il codice diventa più facilmente gestibile e si possono rilasciare con più facilità aggiornamenti.
Il problema?
Difficilmente un’applicazione del genere potrà restituire la stessa esperienza d’uso di app come Path e Tweetbot per nominarne un paio. Non basta un buon design, che ritengo l’app di Facebook abbia, serve anche che il codice alle spalle di esso sia ottimizzato al massimo.
L’hardware sempre più potente forse arriverà ad ovviare a questo problema e arriveremo al vero “write once, run everywhere” che al momento è soltanto un miraggio per chi intende costruire un prodotto di qualità.
