iOS e Android

approcci allo sviluppo

iOS e Android
La nostra esperienza con il mondo mobile parte da lontano. La prima applicazione sviluppata per smartphone girava su PalmOS e si basava su Java2ME, un progetto di ricerca molto ambizioso che prevedeva l'utilizzo di agenti software mobili in un ambiente debolmente connesso alla rete. Ora, nel 2011, fortunatamente la situazione è cambiata...milioni di App, ambienti di sviluppo moderni e forum di supporto densi di documentazione!
Durante questi ultimi mesi abbiamo concentrato il nostro quotidiano tempo dedicato alla ricerca e l'aggiornamento professionale sui differenti approcci allo sviluppo di applicazioni mobile. Abbiamo cercato di inquadrare la strada migliore per poter sviluppare con semplicità e produttività applicazioni di qualità in un mondo in piena evoluzione come quello dei device mobili.

Tutto questo tenendo presente la totale eterogeneità degli ambienti software e dell'hardware stesso, per non considerare la dilagante invasione negli scaffali dei market di soluzioni tablet sempre più interessanti. Il primo sguardo l'abbiamo dato all'ultimo arrivato, Windows Phone, una piattaforma appena nata ma che ha subito mostrato carattere ed originalità. Storicamente abbiamo sempre lavorato con tecnologia .Net e Java e quindi ci sembrava logico studiare l'evoluzione di un ambiente di sviluppo pienamente conosciuto. Anche con Android ci siamo trovati a casa soprattutto nell'utilizzo di Eclipse con integrati gli strumenti di sviluppo forniti da Google. Con il mondo iOS invece l'approccio è stato completamente differente cercando di vedere le potenzialita del suo webKit e l'implementazione dell'html5 come motore per le nostre applicazioni. Le nostre conclusioni dopo questo primo giro di boa sono state di entusiasmo e contemporaneamente di totale smarrimento, ci siamo chiesti se una piattaforma potesse, con lo scorrere degli anni, imporsi sulle altre o se lo sviluppo di applicazioni di grande diffusione dovesse per forza di cose coinvolgere 3/4 sistemi operativi differenti. Dover mantenere applicazioni software su hardware e sistemi operativi differenti, applicazioni che devono avere un livello qualitativo molto alto, potrebbe essere veramente troppo dispendioso in termini di costo e di tempo. Inoltre vogliamo proporre ai nostri clienti soluzioni veloci e particolarmente competitive sotto ogni punto di vista, cercando quindi di minimizzare il rischio di investimento e garantendo un livello qualitativo elevato. Ci siamo quindi chiesti come poter sviluppare applicazioni per tutti i disponibili mobili presenti sul mercato in modo facile e veloce? Le soluzioni trovate sono molte ma concettualemente si dividono in 2 filoni principali. La prima soluzione prende il nome di WebApp per Mobile, scrivere applicazioni basate sugli ultimi standard web come l'html5 e l'uso intensivo di librerie javascript. Una delle prime soluzioni proposte sul mercato prende il nome di jQTouch, soluzione specifica per la scrittura di applicazioni web per iOS. Si sono poi susseguiti veri e propri framework per lo sviluppo cross-platform e cross-device come jQuery Mobile e Sencha Touch. Queste soluzioni forniscono librerie JavaScript per poter scrivere la propria applicazione web sfruttando pienamente le caratteristiche software ed hardware dei device. La nostra applicazione (web) sfrutterà il browser per girare ma con un look and feel omogeneo su ogni dispositivo utilizzato. Facile! Scriviamo una sola volta il codice per poterlo poi eseguire su tutti i sistemi supportati. Il secondo vantaggio fondamentale di tale approccio è che l'applicazione può risiedere su un server web ed essere eseguita dai device collegati alla rete senza quindi dover pubblicare la nostra App su marketplate e repository di applicazioni. Veloce e senza approvazioni di sorta! Tecnicamente c'e' da dire che Sencha Touch risulta sicuramente più completo e solido rispetto al giovane jQuery Mobile anche se su sistemi Android risulta veramente troppo lento e dispendioso di risorse per poterlo utilizzare con frequenti effetti di scroll e drag&drop.

Su iPad invece la nostra sensazione è stata quella di trovarsi di fronte ad applicazioni native, con risposte veloci ed animazioni fluide. Concludendo non ci aspettavamo certamente velocità da primato su Android, ci rendiamo conto che eseguire le proprie applicazioni su un contenitore come il browser, non compilate, e con un framework javascript sottostante non può avere performance paragonabili alle applicazioni native, ma per poter avere almeno un minimo di usabilità con tale approccio bisogna evitare animazioni complesse e pagine ricche di elementi interattivi.

Tutto un altro discorso invece merita il secondo approccio utilizzato principalmente dall'ambiente di sviluppo proposto da Appcelerator, nello specifico Titanium Mobile. Questo ambiente di sviluppo basa le proprie radici nello sviluppo web. Il developer non deve far altro che sfruttare le proprie competenze nello sviluppo di applicazioni web basandosi sui soliti standard html5, css e javascript. Ci pensa poi l'ambiente a compilare in codice nativo l'applicazione sfruttando pienamente le API disponibili, senza interpreti software o contenitori. Certo la curva di apprendimento è molto più ripida dei rispettivi concorrenti ma la qualità del risultato, almeno come velocità di risposta e sensazione non ha paragoni. Non a caso colossi come EBay e Mtv hanno scelto questa piattaforma per lo sviluppo di App cross-platform. L'unico neo di questo difetto risulta l'obbligatorietà nella fase di distribuzione della pubblicazione su marketplaces e passaggi di validazione del proprio risultato. Ma sappiamo benissimo che essere presenti in questi frequentatissimi repository di codice porta traffico ed aumenta notevolmente la propria visibilità. Continueremo nel prossimo futuro ad approfondire l'approccio proposto da Appcelerator in vista dello sviluppo di una prossima applicazione molto particolare ed interessante!

About the Author

Diego Bonura

Diego Bonura

  • Questo indirizzo email è protetto dagli spambots. E\' necessario abilitare JavaScript per vederlo.
Questo sito web utilizza i cookie per migliorare la navigazione. Utilizzando il sito si intende accettata la Cookie Policy. Approfondisci