Per sviluppare applicazioni per Mac un programmatore ha a disposizione varie tecnologie. Il primo passo da fare è leggere le indicazioni del sito sviluppatori iscrivendosi sul sito http://developer.apple.com/. Il secondo passo è dotarsi di Objective-C, un valido ambiente di programmazione e XCode.
Objective-C
Objective-C è un’estensione dell’ANSI C che implementa un linguaggio di programmazione orientato agli oggetti. Esso è di fatto il linguaggio di programmazione predefinito per scrivere applicazioni Mac, supportando la maggior parte delle astrazioni e dei meccanismi che si ritrovano negli altri linguaggi object-oriented, come ereditarietà, incapsulazione, riusabilità e polimorfismo. Tuttavia Objective-C, diversamente dal C++, non permette l’overloading degli operatori, nè i templates, nè l’ereditarietà multipla.
Ambienti di programmazione
Cocoa
Cocoa è il maggiore degli ambienti di programmazione disponibili per Mac ed è una suite integrata di componenti orientati agli oggetti creato per il sistema operativo Mac OS X e scritto in Objective-C. Cocoa è il proseguimento del progetto OPENSTEP, e permette di creare applicazioni funzionali native per Mac OS X. I programmi sviluppati con le librerie Cocoa non sono compatibili con i sistemi operativi precedenti a Mac OS X. Le applicazioni Cocoa sono normalmente sviluppate utilizzando X Code, che supporta solo i linguaggi Objective C, AppleScript, C++ e Java, mentre Cocoa è utilizzabile anche con altri programmi di sviluppo e con linguaggi come Perl, Python e Ruby. Cocoa include molti servizi ed essendo un ambiente orientato agli oggetti, questi servizi vengono ereditati dalle applicazioni che si appoggiano a Cocoa.
Carbon
Carbon è il nome delle API (Interfaccia di Programmazione di un’Applicazione) del sistema operativo Mac OS X, sviluppato per permettere alle applicazioni progettate per Mac OS 9 ( e sistemi precedenti ) di essere utilizzate con Mac OS X tramite piccole modifiche. Le API sono formate da dei header file per il linguaggio C e da delle librerie dinamiche che implementano le funzioni: queste implementazioni sono differenti a seconda dei sistemi operativi ma per l’eseguibile il comportamento è identico. Senza le librerie Carbon di esse l’unico modo per utilizzare le vecchie applicazioni sarebbe quello di utilizzare il programma di emulazione Classic fornito con Mac OS X.
BSD e X11
BSD è un componente che provvede a gestire le chiamate dei programmi BSD e a indirizzarle correttamente. X11 è un’estensione grafica utilizzata dai programmi BSD per visualizzare un’interfaccia grafica. Il codice sorgente del software è disponibile su source code for Apple X11.
XCode
XCode è un tool di sviluppo incluso in ogni Mac, che provvede a tutto ciò che serve per creare applicazioni Mac e iPhone, ed è completamente integrato con i framework Cocoa. XCode è un IDE ( ambiente di sviluppo integrato) che mette assieme vari programmi separati: editor, compilatore, linker e debugger. Tra gli strumenti gestiti da XCode c’è anche Interface Builder, un’applicazione che permette di disegnare interfacce e mettere assieme oggetti Cocoa in modo semplice e veloce, o come Shark, per analizzare il comportamento e le performance dei propri prodotti.