Le linee guida di Apple per sviluppare il software

di |
logomacitynet696wide

Aggiornate a fine maggio, Apple le propone a tutti i suoi sviluppatori. Per tutti gli altri comuni mortali, ecco le curiosità  e le particolarità .

Le linee guida di Cupertino per gli sviluppatori che si avvicinano al mondo Mac sono state rinnovate e in data 27 maggio sono state ri-pubblicate, è possibile leggerle nella completezza delle 85 pagine PDF (979 KB) oppure consultarle online qui.

Per il pubblico di non sviluppatori abbiamo voluto estrarre alcune parti, a volte curiose, a volte utili, a volte inedite.

Scrive Apple…

“La soluzione 80%”: se durante lo sviluppo di un software ci sono dei problemi dovete valutare se questi sono riscontrati da non più del 20% dei vostri utilizzatori, questo è un limite da ritenere trascurabile perché l’80% di esiti positivi è il giusto equilibrio per ritenere ben fatto un software. Volendo scrivere del software per il 20% dell’utenza rappresenta si rischierebbe di renderlo inutilizzabile dall’80% degli utenti. Questo metodo semplifica il lavoro.

“Le tecnologie appropriate”: con Mac OS X si possono usare varie tecnologie, prima di scegliere quella che fa al caso vostro valutate alcuni fattori come la facilità  di programmazione, la flessibilità , la velocità . Alcune tecnologie offrono una combinazione di questi fattori, difficilmente di tutti. Le API di alto livello sono facili da usare ma sono più lente. Per la maggiore velocità  possibile è meglio scegliere tecnologie a basso livello, per esempio quelle che trovano spazio in Darwin. Le tecnologie a basso livello necessitano di un lavoro maggiore per essere implementate ma si guadagna in controllo ed efficienza.
Per esempio con applicazioni basate sugli oggetti distribuiti Cocoa non si ottengono vantaggi nella spedizione di dieci messaggi al minuto in rete, spedendone migliaia al secondo non è consigliabile usare gli oggetti distribuiti, meglio CFNetwork o soluzioni BSD.
Ci sono varie librerie accelerate “Velocity Engine” in Mac OS X 10.3 per gestire funzioni matematiche complesse e la manipolazione di immagini, in versioni precedenti alla 10.3 si può usare il framework vecLib direttamente per i calcoli matematici.

“Internazionalizzate il software”: con l’infrastruttura di Mac OS X si possono localizzare facilmente le applicazioni grazie ad un solo processo integrato. Facendolo otterrete un prodotto che sarà  gradito maggiormente dai vostri utenti internazionali. Per una corretta localizzazione ecco la lista delle cose da fare: 1) implementare il programma come un raggruppamento, 2) supporto del testo Unicode, supportato pienamente da Mac OS X, 3) modificare il codice per renderlo visibile dall’utente attraverso i file .strings, 4) usare il file nib per archiviare i dati dell’interfaccia utente.

“Cosa dimenticare”: per le tecnologie di rete dimenticatevi di Open Transport, Internet Config e URL Access Manager, si tratta di parti che potrebbero ancora funzionare ma in modo da rallentare molto le performance generali in Mac OS X (per le quali non sono state studiate), quindi si consiglia di sostituirle con, rispettivamente, CFNetwork/soluzioni BSD, Launch Service e System Configuration, CFNetwork.
Altre tecnologie per Carbon da sostituire sono: Apple Guide (si usi Apple Help), AppleTalk Manager (si usi CFNetwork o soluzioni BSD), PPC Toolbox (si usi Apple Events), QuickDraw 3D (si usi OpenGL), QuickDraw GX (si usi Quartz e ATSUI – Apple Type Services for Unicode Imaging), Font Manager (si usi Apple Type Services for Fonts), e altre ancora.

e infine…

“Non re-inventate la ruota”: pianificando un nuovo progetto è bene appoggiarsi alle tecnologie esistenti, attingendo dalla comunità  che sviluppa per Mac OS X e per open source. Per esempio non è proprio il caso d’inventare un motore HTML quando si può benissimo usare Web Kit Framework. Tecnologie esistenti vi danno la garanzia che il codice sia stato già  testato e se ci sono dei bug potrete correggerli con futuri aggiornamenti gratuiti provenienti da altre fonti, Apple compresa.”