Periodicamente mi trovo a riflettere, per esigenze professionali e per piacere personale, su quale piattaforma per lo sviluppo mobile spendere tempo e risorse. Trovare un trend che andrà per la maggiore nel futuro che ci aspetta, bilanciare complessità dello sviluppo e flessibilità offerta dal linguaggio. Considerazioni del genere devono però tener presente la consistenza magmatica di questo settore, con fattori che possono cambiare dall’oggi al domani. Vediamo quindi cosa c’è disponibile all’oggi, elencando i principali sistemi operativi per smartphone e cellulari e relativi linguaggi di sviluppo.
iPhone: impossibile pensare oggi al mondo mobile, soprattutto quello consumer, senza tirare in causa il prodotto della Apple. Un market di applicazioni collaudato e funzionante per distribuire programmi gratuiti e a pagamento, un modello retributivo ben definito e che sembra funzionare. Semza contare l’effetto passaparola, che vuole l’iPhone oggetto del desiderio anche di molti utilizzatori che poi in realtà non sfruttano molte delle sue funzioni avanzate e peculiari. Sviluppo in Objective-C, un linguaggio simile al C e diverse librerie che semplificano la programmazione delle routine più tipiche del sistema. In ultimo, per programmare, occorre avere necessariamente un Mac e occorre pagare alcune royalty alla Apple, se non altro quelle per veder pubblicato il proprio software sull’App Store e poterlo provare dal vivo, invece che sull’emulatore.
Windows Mobile: Fino ad un paio d’anni fa elemento di spicco sia del mondo business che del mondo consumer, oggi sembra stia perdendo quote di mercato, per lo meno in quello consumer. Continui posticipi da parte di Microsoft sulle nuove versioni, un market di applicazioni ancora acerbo e caratteristiche “mobili” del sistema operativo spesso non ancora all’altezza dei concorrenti, senza contare poi che il tempo sta colmando anche il gap tra il parco software professionale disponibile per Windows Mobile rispetto al resto del mondo. In ambito business invece sembra ancora praticabile il suo utilizzo, grazie alle integrazioni con l’ormai consolidata piattaforma Microsoft lato server e la relativa semplicità con cui si può imparare a scrivere codice per Windows Mobile partendo da quello.NET. Usando Visual Studio come IDE per sviluppare, occorre prendere almeno la versione Professional, dato che quella Express non contempla le estensioni per la programmazione per Smart device.
Android: Ultimo entrato in questa piccola guerra, Android ha dalla sua il supporto di un’azienda, Google, che sicuramente non ha paura nell’introdurre innovazioni e nello sperimentare, spesso con ottimi risultati. Certo, ci sono ancora pochi device disponibili sul mercato e il loro look’nd feel non sempre è appetibile, ma ne sono attesi di nuovi per la fine dell’anno. L’utilizzo di istruzioni Java puro potrebbe semplificare il passaggio a molti sviluppatori già allenati in questo mondo e l’attenzione che da sempre è stata posta verso il fattore “community” sta contribuendo a creare una grande base di codice da dove attingere a piene mani. Completano il quadro un market di applicazioni ormai avviato e in crescita che permette la pubblicazioni sia di applicazioni gratuite che a pagamento. Eclipse, Netbeans e altri ambienti di sviluppo sono supportati, su tutti i maggiori sistemi operativi esistenti.
Symbian S60: A partire dall’X5800, fino al recente N97, Nokia ha dovuto includere funzionalità e paradigmi appartenenti al mondo dei touchscreen nel suo sistema operativo ammiraglio. Stiamo comunque parlando di un ambiente che richiede competenze di C++ e che ha diverse versioni e caratteristiche supportate per terminali di fascia media (come l’E65 e successivi) o di fascia alta (come l’N95, l’N87 e successivi), con o senza touchscreen. Buono il supporto sia a Windows che a Linux, e i tool necessari allo sviluppo sono gratuiti.
Blackberry: la programmazione per la piattaforma RIM, nelle ultime versioni (Pearl, Curve, Bold e Storm) poggia sull’utilizzo di Java Micro Edition (J2ME). Purtroppo però la compatibilità con altre applet J2ME non è pienamente garantita, soprattutto per quanto riguarda l’utilizzo delle caratteristiche peculiare dei dispositivi mobili, come rubrica, gps ecc. Ambiente di sviluppo consigliato, Eclipse con apposito plugin per Blackberry, che però funziona solo con Windows.