Analisi sullo sviluppo di applicazioni per Smartphone

Analisi sullo sviluppo di applicazioni per Smartphone

3108
16
CONDIVIDI

La realtà del web sta pian piano lasciando spazio a quella delle applicazioni, in informatica si sa, bisogna stare dietro ad ogni nuova tecnologia e adattarsi alla “moda del momento”. Senz’altro i nuovi trend del mercato abbandonano giorno dopo giorno i siti web e le applicazioni web-based per orientarsi su quella degli smartphone. Lo capiamo nella vita quotidiana, quando nei bus, nelle metro, per strada o nella sala d’attesa del dentista vediamo sempre più spesso persone, uomini d’affari o spesso ragazzini alle prese con cellulari di ultima generazione. In questo articolo analizzerò i principali ambienti di sviluppo per device come smartphone e tablet cercando di capire nel dettaglio pregi e difetti arrivando a classificare le piattaforme e gli ambienti di sviluppo più performanti secondo parametri fondamentali come: apprendimento, tempistiche, usabilità e denaro.

Apple iOSX – iPhone, iPod Touch, iPad

Essendo arrivati per primi sul mercato ed in una maniera anche brillante al momento Apple rimane il brand per la quale sono state prodotte il maggior numero di applicazioni (circa 100.000). Tuttavia lo sviluppo di applicazioni abbraccia la stessa teoria “chiusa” del suo store.

Occorrente

Sembra il titolo di una ricetta ma per poter sviluppare un’applicazione per iPhone, servono sostanzialmente tre cose:

  • Un iMac, MacBook o qualsiasi sistema Intel based che abbia come sistema operativo iOSX;
  • Xcode, ossia l’ambiente di sviluppo che si scarica gratuitamente;
  • L’SDK (Software development kit) anche questo gratuito;

In poche parole vi serve un MAC.

Ai tre già citati aggiungerei un quarto ingrediente che si chiama pazienza.

Linguaggio di programmazione

Apple rispolvera un vecchio linguaggio di programmazione: “Objective-C“. Se credete che abbia parecchie somiglianze con il cugino alla lontana C o C++ beh dovrete un pò ricredervi poichè a parte la sintassi di base il resto è totalmente diverso. In tandem, associato all’Objective-C vi è Cocoa Touch ovvero il framework che costituisce la parte grafica.

Il modello di programmazione è l’MVC (Model View Controller): c’è un Modello, c’è una View e c’è un Controller, chi è reduce da esperienze Java, Vb.Net e simili sicuramente avrà più padronanza e riuscirà a comprendere meglio i meccanismi rispetto a chi ha avuto a che fare con linguaggi interpretati come php o asp. Personalmente reputo l’Objective-C tra i linguaggi più tosti da imparare in quattro e quattr’otto…ma l’impresa non è impossibile. Apple in merito fornisce un’ottima guida online ed una community di sviluppo abbastanza vasta che vi permette di evitare un risparmio economico tra acquisto di inutili manuali, a patto che masticate un pò di inglese ma questo è ormai fondamentale e quasi scontato.

Costi di pubblicazione

Per firmare digitalmente le vostre applicazioni bisogna sborsare un minimo di 99$ annuali alla Apple, questo vi permetterà di entrare nello store Apple senza il quale la visibilità della vostra applicazione sarà pari allo zero. Non finisce qui; se la vostra applicazione ha fini commerciali è necessario acquistare la licenza “Enterprise” che comporta un costo di 299$.

Se pensate di realizzare un’applicazione con lo scopo di guadagnare vi sbagliate di grosso. Questo accade in una bassissima percentuale; inoltre non solo pagherete per firmare digitalmente la vostra applicazione, non solo pagherete per avere visibilità nello store, se la vostra App sarà a pagamento Apple pensa bene di trattenere il 30% delle vendite, insomma, guadagnerete € 0.70 se la vostra App costa € 1.00; guadagnerete € 3.50 se la vostra App costa € 5.00 e cosi via…

Vantaggi e svantaggi

Tornando al discorso dei costi fondamentalmente bisogna vedere da che lato si guardano le cose, io pago perchè la mia applicazione sopravviva su delle macchine di non mia proprietà. Questo già accade con le applicazioni web. E’ ovvio, però che questo risulta un punto a sfavore per chi vuole iniziare con dei budget ridotti magari anche pubblicando un’App gratuita.

A detta di molti e anche da parte mia il Framework è davvero ottimo. Peccato che è chiuso all’interno dei sistemi operativi di casa Apple. Se uso Windows? Mi compro un Mac per sviluppare un’applicazione?

Se venite dall’esperienza Window/Linux troverete difficoltà ad interfacciarvi con mouse e tastiere Apple, mancano tasti inizio/fine fondamentali per chi programma, personalmente non lo ritengo all’altezza, forse per abitudine, forse perchè si spreca troppo tempo inutile senza le short-cut.

Quando credete di aver concluso la vostra applicazione è proprio li che vi sbagliate, potrebbe esserci un lungo ping-pong fra voi e la Apple (soprattutto se siete alle prime armi) perchè forse non avete rispettato le loro linee guida grafiche o avete sfruttato male la gestione della memoria interna sulla quale si punta molto. Tutto ciò che realizzerete sotto il punto di vista grafico dovrà far fronte alle rigide regole che Apple vi impone.

Android

E’ senza dubbio l’antagonista di Apple, seppur lontano anni luce numericamente parlando la sua ascesa sembra essere sempre più forte e convinta anche grazie ad una politica meno chiusa rispetto la sua concorrente.

Occorrente

  • SDK di Android;
  • Ambiente di sviluppo non vincolato: NetBeand, Eclipse, ecc…

Qui non ci sono vincoli tra Pc/Mac o altro.

Linguaggio di programmazione

Java rispetto Objective-C è un linguaggio molto più conosciuto. Google, inoltre, ha messo su “App Inventor” (sulla quale preferirei scrivere un articolo a parte) un programma widget che permette di realizzare applicazioni in modo visuale senza il bisogno di essere particolarmente afferrati sulla programmazione.

Costi di pubblicazione

Per poter pubblicare un’applicazione sul Market è necessario iscriversi come sviluppatore Android pagando un canone di 25$ in fase iniziale senza canoni annui, un prezzo davvero ridicolo se consideriamo la concorrenza. Questo è il prezzo da pagare per poter finire nel Market ufficiale di android, tuttavia ci sono dei Market alternativi come Slide Me che permettono di farlo in maniera gratuita.

Sulle App a pagamento anche qui c’è una trattenuta del 30% come commessa sul costo dell’applicazione (se a pagamento)

Alcuni ambienti di sviluppo come Eclipse permettono in maniera semplice di esportare l’applicazione per il Market di Android.

Vantaggi e svantaggi

Sicuramente tra i vantaggi più evidenti sono i costi, chiunque può realizzare un’applicazione Android con un rischio di impresa minore poichè i costi di iscrizione sono davvero irrisori e i tempi di sviluppo più brevi.

Rispetto iOSX le applicazioni potrebbero cambiare a differenza dei dispositivi che si utilizzano, un samsung è diverso da un htc a livello di componenti, memoria ecc… mentre con iPhone tutto resta uguale. Bisogna quindi essere aggiornati su ogni singola novità sui devices che vengono rilasciati.

Stiamo parlando di un sistema operativo open-source. Questo rende molta più libertà nello sviluppo, nei test che possono essere applicati direttamente su devices, con tutti i vantaggi che un sistema open source ne consegue partendo dalla community abbastanza ambia e radicata.

Symbian

I devices che montano Symbian sono abbastanza diffusi anche se con avvento di Android stanno pian piano lasciando la scena a sistemi operativi più evoluti.

Occorrente

  • Un compilatore Java (Eclipse va bene) o C++

Anche qui va bene l’utilizzo di qualsiasi ambiente, pc, sistema operativo.

Linguaggio di programmazione

Vi basterà masticare un pò di C++ per mettere in piedi la vostra prima applicazione Symbian; tuttavia ci sono altri linguaggi “satelliti” che possono essere utilizzati a scapito del C++ (che rimane comunque quello nativo di Symbian). Python è un’ottima alternativa ma anche .NET, Perl o J2ME.

Vantaggi e svantaggi

Ho evitato la voce dedicata ai costi di pubblicazione perchè sono pari a zero o ancora più irrisori rispetto Android. E’ molto facile sviluppare applicazioni poichè Java e C++ sono tra i più diffusi e conosciuti.

Lo sviluppo di applicazioni Java consente un vantaggio non indifferente ossia quello di essere portabile per altri sistemi operativi e devices ovviamente ritoccando i dettagli.

D’altro canto bisogna far fronte ad un mercato di App saturo, quasi tutto è stato creato. Il mio consiglio è quello di adottare Java piuttosto che C++ per un semplice motivo: Symbian è in netto calo, quando e se sarà del tutto morto fra un pò potete recuperare la vostra applicazione e trasportarla ad esempio su Android o BlackBerry o altri OS che supportano Java.

BlackBerry

BlackBerry in america è un modello ormai collaudato ed offre molte possibilità di sviluppo di App grazie anche al suo market (non tutto è stato inventato), a livello di gerarchie ha perso un pò troppa strada qui da noi ma rimane tuttavia molto commercializzato ed in voga soprattutto dopo il lancio del nuovo modello Torch 9800.

Occorrente

  • Ambiente di sviluppo: Eclipse;

Qualsiasi Pc, Mac e OS.

Linguaggio di programmazione

J2ME cosi come per Symbian è il linguaggio di programmazione per sviluppare applicazioni BlackBerry; RIM (acronimo di Research in Motion) l’azienda Canadese produttrice di BlackBerry mette a disposizione un kit che funge da estensione per J2ME, al suo interno una serie di classi specifiche all’accesso e al controllo di funzionalità particolari dei dispositivi.

Vantaggi e svantaggi

Fondamentalmente realizzata un’applicazione per BlackBerry essa può essere “trasportata” anche su Symbian (ovviamente con i dovuti ritocchi). Questo permette di coprire 2 “montagne” con una sola “coperta”. Per firmare le proprie chiavi occorre versare 20$ una tantum; ma tra i vantaggi sostanziali c’è sicuramente quello della libertà, RIM infatti, non pone limiti agli sviluppatori, è possibile far diventare la propria applicazione un’estensione del sistema operativo interagendo con agenda, rubrica, calendario, gps, mandare sms/mms e chi più ne ha più ne metta. Lato design non ci sono vincoli, si possono costruire delle proprie interfacce grafiche in maniera libera.

Windows Mobile

Conosciuta meno rispetto iOSX e Android, Windows Mobile si piazza subito dietro questi tre colossi grazie alla sua stabilità però penalizzata dalla veste grafica scarna e poco innovativa.

Occorrente

  • Visual Studio (standard o pro);
  • Un Pc con ambiente windows.

Linguaggio di programmazione

VB.NET/C# o C++ sono i linguaggi di programmazione nativi. Ascoltando molti pareri quasi tutti simili l’ambiente Visual Studio è considerato uno dei migliori ambienti di sviluppo in circolazione abbastanza collaudato e dotato di un debugger sopra alle righe.

Vantaggi e svantaggi

Come sopra specificato l’ambiente di sviluppo è un punto a favore che certamente però contrasta con i costi: la versione gratuita di Visual Studio non permette lo sviluppo per Mobile e di conseguenza bisogna acquistare l’IDE a pagamento. Lo sviluppo non presenta particolari linee guida, si può andare abbastanza a fondo ed interagire con le funzionalità del telefono.

E’ possibile scegliere su quale Market distribuire la propria applicazione (a pagamento o gratuiti), questo spesso rende l’utente medio più disorientato nella ricerca di applicazioni; non c’è nessun costo per firmare le proprie applicazioni; questo è sintomo di un mercato ormai saturo.

Conclusioni

Alla fine di questa lunga analisi credo che a prescindere bisogna seguire la “moda” del momento, spesso come citato in questo articolo il sistema operativo che offre costi di pubblicazione bassi o assenti spesso non è quello più utilizzato, anzi, forse in tanti casi è quello meno di “moda”. Android è sicuramente l’antagonista ad Apple che comunque rimane il primo su tutti anche perchè ha un HW di tutto rispetto. Personalmente ho notato molto da vicino le prestazioni di iOSX a confronto con Android Froyo 2.2 e devo dire che oltre alla somiglianza grafica Android si avvicina molto a quella perfezione software che è il marchio di fabbrica Apple.

A voi le considerazioni.

  • Pingback: Analisi sviluppo applicazioni per Smartphone | Mario Concina – WEB …()

  • vito

    Ottimo articolo complimenti. Il mondo Apple mi affascina molto, ho provato a cimentarmi nella realizzazione di apps (vengo da esperienza. Net) e ho scoperto un linguaggio quasi a basso livello… Come mai apple ha scelto objectiveC?

  • Ottimo articolo! Solo una domanda: la moda è sicuramente un fattore da tenere in considerazione, ma la diffusione di un determinato smartphone è altrettanto importante. E in Italia Symbian è al 50% e oltre…

  • Pingback: Programmazione, SEO, Startup - Il Meglio della Settimana #3()

  • Andrea

    complimenti per l’articolo, è interessante. Per il prossimo ti suggerisco di aggiungere i link delle varie cose che citi, ad esempio il market ufficiale di android, slideme, etc.

    un saluto!

  • Simone

    anche io ti faccio le stesse osservazioni di Andrea: articolo buono, per il prossimo ti suggerisco di aggiungere i link.

    Ciao

  • admin

    Grazie per i consigli, sicuramente apporterò migliorie in seguito!

  • nicola

    Oh complimenti bella guida molto completa

  • Pier C.

    Cosa mi dite a riguardo del market su android? Mi sembra molto più conveniente rispetto Apple.

  • Alexandro

    chiaro e preciso.Grazie davvero l’articolo è utilissimo!
    Una domanda da neofita : da un’applicazioni gratuita COSA guadagna lo sviluppatore? c’è qualche via per un guadagno monetario? e COME invece guadagna applestore o qualisasi altro store/sito che propone l’applicazione?
    grazie
    Alexandro

  • daniele

    a un anno di distanza dall’uscita dell’articolo è cambiato qualcosa in merito allo sviluppo di app con visual studio express (gratuito)?

    • Mario Concina

      Su visual studio express non saprei ma per tutto il resto direi di si. Nell’informatica 1 anno solare è una fascia temporale all’interno del quale potrebbero avvenire enormi cambiamenti. In questo caso bisognerebbe scrivere un nuovo articolo!

  • Luca

    Vi sono delle improprietà.
    1) la versione dell’IDE visual studio per MOBILE è gratuita, dove hai letto che è a pagamento (http://www.microsoft.com/visualstudio/en-us/products/2010-editions/windows-phone-developer-tools)?
    2) Android su eclipse richiede risorse esagerate (CPU e MEMORIA) rispetto ai concorrenti, con oblidgo di compare almeno un i5 con 6Gb di ram e non sempre tutto fila liscio

  • Luca

    x Vito.
    apple ha preferito ObejctC poiche STORICAMNETE Mr. Jobs ha puntata su smalltalk e derivati ovvero ObjectC per i suoi sistemi operativi

  • Francesco

    Articolo utile davvero! Tra le altre cose, dei rumours mi hanno detto che ci saranno novità nel prossimo Smau, ho sentito dire che c’è un ambiente che rende la programmazione più semplice. Si chiama Leonardo hlc, ed è una vera chicca. Io aspetto di saperne di più!

  • Go

    Puoi aggiornare per favore?