23 ottobre 2009  1

Sviluppare applicazioni per iPhone e iPod Touch: qualche consiglio per iniziare

E’ opinione comune da parte sia degli addetti ai lavori, che degli analisti di settore, che lo sviluppo di applicazioni per dispositivi mobili sarà in fortissima espansione nei prossimi anni e costituirà un’ingente fetta di mercato nell’indotto economico prodotto dalla vendita del software.

Apripista in questo settore mai particolarmente decollato negli anni precedenti al lancio commerciale dell’iPhone è stata proprio Apple, che con il suo App Store, ne detiene attualmente il record di vendite, nonostante l’estrema verticalizzazione nella tipologia dei prodotti proposti (essendo dedicati esclusivamente allo smartphone della mela ed al suo fratello minore iPod Touch).

Il segreto del successo dell’App Store è sostanzialmente basato su tre punti fondamentali:

  • le applicazioni possono essere vendute o distribuite esclusivamente per suo tramite, previa approvazione del team di valutazione messo in campo dalla stessa Apple. Ciò dovrebbe garantire (ma in realtà questa affermazione è del tutto accademica) uno standard qualitativo controllato, oltre che una maggiore stabilità dei programmi proposti.
  • il costo delle applicazioni (tranne rarissime eccezioni) è volutamente “indirizzato” verso cifre non particolarmente elevate (in alcuni casi veramente irrisorie) per invogliare all’acquisto (a volte anche di cose assolutamente inutili)
  • essendo esso l’unico canale di distribuzione, costituisce in assoluto la migliore vetrina di vendita (i possibili clienti non hanno alternative). Inoltre l’intera procedura di vendita è interamente demandata allo store, lasciando allo sviluppatore il compito di occuparsi esclusivamente della fase “produttiva” piuttosto che di quella “commerciale” (che risulta essere spesso più complessa ed impegnativa della prima).

A tutto ciò è necessario aggiungere che le caratteristiche hardware dei dispositivi touch di Apple consentono la realizzazione di applicazioni complesse ma al tempo stesso semplici da utilizzare, il tutto condito da un ambiente grafico decisamente appagante.

Con queste premesse è evidente che risulti molto invitante per qualunque sviluppatore (o software house), cercare di entrare in questo nuovo business; ma è necessario però fare alcune valutazioni preliminari.

La prima di è ordine strettamente economico e tecnologico: per sviluppare applicazioni per i dispositivi mobili di Apple è necessario utilizzare un ambiente di sviluppo (chiamato Xcode) fruibile esclusivamente su piattaforma Mac OS X. Ciò comporta l’acquisto, se non se ne è già provvisti, di un Mac, possibilmente non di tipo portatile (leggi notebook), non tanto per motivi di potenza di calcolo, quanto per la grandezza del display sul quale poi si andrà a lavorare. La grandezza dello schermo è importantissima per poter fruire al meglio di tutte le caratteristiche di Xcode e per poter lavorare contemporaneamente anche con il simulatore software dell’iPhone/iPod Touch.

Mi sento di sconsigliare qualunque tipo di forma di virtualizzazione dell’ambiente di lavoro: sono solo delle soluzioni tampone che hanno come esito l’inevitabile “conclusione” del necessario acquisto dell’hardware dedicato.

Naturalmente, se si è già possessori di un Mac, il problema non si pone affatto. Discorso diverso, invece, se si è utenti di PC; in tal caso l’acquisto è obbligato, ma è possibile ridurre al minimo la spesa di start-up, potendo riciclare parte dell’hardware già in dotazione.

iPhone and apps

Con l’ultimo aggiornamento dei listini Apple, al momento, se si è in possesso di un monitor LCD con ingresso digitale (DVIW) è possibile acquistare un Mac mini a poco più di 500 €. Il nuovo Mac mini è corredato di 2 Gbyte di RAM e di un processore Core Duo a 2,26 Ghz, caratteristiche che consentono di poter utilizzare senza alcun problema l’ambiente di sviluppo Xcode (io utilizzo con estrema soddisfazione un Mac mini di generazione precedente con 3 Gbyte di RAM e processore Core Duo da 2,0 Ghz). Il Mac mini non è dotato di tastiera e mouse, ma possono essere utilizzati quelli già presenti ad esempio con il proprio PC, a patto che siano dotati di connettori USB: personalmente consiglio, se possibile,  l’uso di dispositivi wireless, così si andrà ad impegnare un unica porta USB sulla macchina. Se non si è in possesso di tale tipologia di prodotto è possibile dotarsi di questa ottima ed economica (nonché elegante) soluzione della Trust.

Anche la scelta del monitor è importante: se si sviluppa in maniera professionale, probabilmente si sarà già in possesso di un monitor LCD da 20” o 22” wide. Naturalmente può andare bene anche un 17”, anche se, allo stato dell’arte, non lo ritengo particolarmente comodo per lunghe sessioni di scrittura di codice. Per poterlo riutilizzare è necessario che sia anche dotato di ingresso digitale DVI (i Mac hanno solo uscita video digitale); in caso contrario bisognerà mettere in conto anche l’acquisto di un apposito adattatore non proprio economico.

XCode

La seconda valutazione riguarda l’ambiente di sviluppo Xcode, che è gratuito ed è liberamente scaricabile dal sito Developer Connection dedicato alla comunità degli sviluppatori Apple.

Il pacchetto è presente anche nel DVD di installazione di OS X Snow Leopard (va installato a parte) ma, non comprende lo SDK per iPhone, che va comunque scaricato dal sito già citato. Inspiegabilmente, non è possibile effettuare il download del solo SDK, ma è necessario scaricarlo in un’unica soluzione insieme ad Xcode (per cui non vale la pena installare quest’ultimo dal DVD del sistema operativo).

L’ambiente di sviluppo è molto completo ed include anche un designer visuale di interfacce oltre che il simulatore software iPhone/iPod Touch (configurabile a seconda della release firmware desiderata). L’intero pacchetto occupa circa 5 Gbyte di spazio disco, una volta installato, e va studiato con cura, soprattutto con il supporto della documentazione in linea, per poter essere utilizzato al meglio. Se avete già dimestichezza con ambienti di questo tipo, non vi sarà difficoltà alcuna nel poter essere operativi in pochissimo tempo.

Sfortunatamente l’ambiente, seppur molto sofisticato, non è all’altezza di prodotti come Visual Studio (che è a mio modesto parere ancora il miglior IDE visuale al momento in commercio) per cui, se si è abituati a questa tipologia di strumenti, è opportuno rimboccarsi adeguatamente le maniche e prepararsi a studiare molto.

Il sistema di programmazione che si usa con Xcode è denominato CocoaW: basato principalmente sul linguaggio Objective-CW può risultare ostico a chi, in passato non abbia avuto esperienza non solo con C, ma soprattutto con C++, essendo basato sugli oggetti. In realtà, Objective-C è molto più simile a SmalltalkW, soprattutto per ciò che concerne la gestione dei messaggi, piuttosto che a C++, pur mantenendo una retro compatibilità fortissima con il C. A tutto ciò è necessario aggiungere un vastissimo catalogo di librerie necessarie all’implementazione delle interfacce su iPhone ed alla gestione di tutte le sue caratteristiche hardware.

In definitiva, la carne sul fuoco è tantissima e, soprattutto se si parte da zero, i tempi di apprendimento si possono dilatare in maniera esponenziale. La “digestione” di Objective-C, in taluni casi può essere sconfortante: se non si entra nell’ordine di idee della gestione dei messaggi tra oggetti necessaria per la corretta implementazione delle applicazioni, si rischia di rimanere estremamente delusi e frustrati, con tutte le conseguenze del caso.

In compenso, una volta entrati a regime, si potrà apprezzare l’estrema compattezza del codice prodotto e la velocità di esecuzione del medesimo (è pur sempre codice C).

Fortunatamente, la documentazione a disposizione, corredata da esempi e frammenti di programma, è veramente vastissima, per non dire immensa. Naturalmente è completamente in inglese: in italiano c’è ben poca roba, anche in rete, e quel poco che c’è, oltre che a non essere all’altezza della documentazione originale, è anche a pagamento (ma non tutto).

Anche in questo caso vale la medesima considerazione fatta precedentemente: se si è già utenti, nonché sviluppatori Mac OS X, i tempi di apprendimento saranno limitati al semplice studio del framework dedicato allo SDK per iPhone/iPod Touch (dando per scontata la già acquisita conoscenza e padronanza di Objective-C).

Una volta superato lo scoglio delle necessità hardware (leggi acquisto di un nuovo computer) e dell’acquisizione del know-how necessario allo sviluppo del software, sembrerebbe possibile cominciare a distribuire le proprie applicazioni.

In realtà non è così: pur potendo utilizzare il simulatore in maniera molto simile al dispositivo fisico sarà inevitabilmente necessario testare le applicazioni prodotte su un iPhone o iPod Touch reali, soprattutto se si è fatto uso di particolari forme di combinazioni di gesture, difficilmente riproducibili con il simulatore stesso.

Ciò comporta l’acquisto di un iPhone o di un iPod Touch (o anche di tutti e due), con conseguente aggravio della spesa di start-up della nostra nuova attività.

Inoltre è necessario sapere che le applicazioni non possono essere trasferite e testate sui dispositivi fisici, se non si è prima aderito all’iPhone Developer Program di Apple, che prevede un contributo annuale a partire da 99 $. In tal modo si avrà non solo l’accesso alla vendita tramite App Store, ma anche le chiavi univoche necessarie alla firma digitale delle propri prodotti indispensabili per la corretta esecuzione sui dispositivi, oltre che il supporto e consulenza continua degli esperti Apple di programmazione.

Ma allora conviene veramente dedicarsi allo sviluppo di applicazioni per iPhone e iPod Touch ? Secondo me si, soprattutto perché ritengo che il futuro della programmazione si sposterà sempre di più verso il mondo mobile che sta conoscendo veramente “un nuovo rinascimento”.

A prescindere dalla scelta della piattaforma utilizzata che, nello specifico è quella Apple, ma solo perché al momento è senz’altro quella che consente un marketing ed una vendita più aggressivi (potrebbe essere Windows Mobile, Palm, BlackBerry o quant’altri), è sicuramente un’ottima palestra per entrare nell’ordine di idee delle necessità delle “nuove utenze mobili”.

Farsi le ossa in questo settore è, secondo me, fondamentale e potrebbe aprire la strada ad eventuali prodotti multipiattaforma che potrebbero allargare le nostre prospettive di business.

Sicuramente, se si è già sviluppatori in ambiente Mac OS X, cominciare a realizzare e distribuire applicazioni per iPhone deve essere un passaggio obbligato, soprattutto per la riduzione dei tempi di apprendimento e dei i costi iniziali che si “limitano” all’acquisto del dispositivo ed ai costi annuali di adesione all’iPhone Developer Program.

Se invece si viene dal mondo Windows o Linux diventa tutto sicuramente più complicato e, soprattutto, più costoso, non solo in termini di investimento in denaro liquido, quanto in ore/uomo da dedicare all’acquisizione del know-how.

Personalmente mi sento comunque di consigliare questo percorso a prescindere, per i motivi già esposti e, soprattutto per non doversi trovare tagliati fuori da un mondo che potrebbe costituire un eventuale ulteriore sbocco lavorativo.

Stavo dimenticando che Apple ovviamente non regala i servizi messi a disposizione sull’App Store. Per ogni applicazione venduta, trattiene il 30% del ricavato; ma avremo tempo di approfondire questo ulteriore aspetto.

Esprimi il tuo giudizio

Commenti (1) -

enza
enza
02 dic 2009 alle 23:29  01
vorrei sapere come cambiare la suoneria grazie.......

Aggiungi Commento

biucitecode
  • Commento
  • Anteprima
Loading


| |   |  

Codice QR

Codice QR - cristianofino.net

Ultimi Commenti