L'SDK dell'iPhone è una piaga

Thursday, 09 October 08
Qualche giorno fa ho comprato un MacBook. Tralascio il mio impatto non troppo felice con l'interfaccia utente di Mac OS X... anni e anni di xterm con background grigi non ti rendono il tipo di persona adatta a mac, ma spero che imparerò ad apprezzarne alcune caratteristiche interessanti...

Ci sono tre motivi fondamentali per cui ho acquistato il Mac: sviluppare software per Mac, poter testare i siti su Safari/Mac, ma specialmente poter installare l'SDK ufficiale di iPhone e smanettarci.

In realtà il mio portatile sta cadendo a pezzi, dunque spero anche di installare Ubuntu sul nuovo portatile quando mi abbandona del tutto e farne così il mio nuovo ferro di lavoro. Ma non mi dilungo perchè il vero contenuto di questo post è raccontarvi come è andata la giornata di oggi lottando con l'SDK.

È incredibile quello che devi fare per usarlo: Tutto questo solo per poter usare l'SDK e testare le applicazioni sul tuo telefono. Infatti per la distribuzione reale bisogna fare altri 45 passaggi vari, le cose più assurde.

Sembra praticamente pensato per scoraggiare chiunque volesse sviluppare su iPhone. Per non parlare del fatto che il simulatore, una delle cose più ambite da me tra le funzionalità dell'SDK, non ha alcun supporto per l'accelerometro (nonostante il MacBook ha un accelerometro all'interno... ma almeno una simulazione con mouse, o con un dialog in cui inserisci x,y,z la si poteva fare), per cui per esempio devo testare il mio gioco sempre sul telefono reale.

Ovviamente dopo aver fatto tutta questa catena di Sant'Antonio non funzionava una cippa. Infatti devi andare a settare tramite Xcode dei dettagli dei tuoi certificati e di chi sei e come ti chiami e sticazzi vari in varie minuscole caselline, fino a quando il tuo device, finalmente, accetta il benedetto file e lo fa partire realmente. Un casino incredibile non privo di intoppi, che so c'è un file XML in cui non avevo specificato il nome della mia classe delegata e non veniva neppure chiamato il metodo didFinishLaunching: per cui trasferivo l'applicazione e vedevo solo uno schermo nero.

Comunque alla fine ce l'ho fatta! Per giustificare questa perdita di tempo ed energie devo assolutamente finire il gioco e metterlo nello Store, almeno posso dire ci ho provato :) E ovviamente non sarà l'ultima applicazione che scrivo, mi voglio avvicinare sempre di più ad iPhone e successivamente ad Android, mi sa che molte battaglie del futuro si giocheranno li o su qualche altro dispositivo portabile.

In ogni caso... ecco lo stato della applicazione, ben rappresentato da uno screenshot qui sotto. È sostanzialmente asteroids con una grafica meno mostruosa. Date le limitate pontenzialità della CPU dell'iPhone per disegnare lo sfondo in ogni frame (non c'è altro modo che io conosca) ho dovuto andarci di memcpy() sul framebuffer, perchè tutte le altre cose utilizzano una quantità di CPU notevole, ad esempio gli "Asteroidi" ruotano a diverse velocità e non ho usato sprite successivi ma li faccio davvero ruotare alla CPU. Tra qualche gioro parto per Firenze e poi vado a Milano per cui non so quanto potrò continuare questa settimana, ma conto di riprendere dalla prossima la solita ora quotidiana di iAsteroids e metterlo nello store prima possibile. Alla prox. Ah, ecco lo screenshot:

prima o poi lo finirò...

Edit: per approfondie:
post letto 6231 volte (1.9 letture al giorno in media)
Postato alle 20:57:01 permalink | 7 commenti | stampa | posta | trackbacks