2007Cocoa Cursus
rss

Boeken

Boeken zijn nog steeds onmisbaar om een nieuwe programmeertaal onder de knie te krijgen. Het onderstaande overzicht bevat boeken die ik zelf behulpzaam heb gevonden bij het leren van Cocoa. Sinds de introductie van OS X zijn er veel nieuwe programmeerboeken voor de Macintosh verschenen, dus deze lijst is slechts een beperkte greep uit het totale aanbod.

Ik hou zelf van boeken met een wat 'academische' inslag, waarmee ik bedoel; een goede bespreking van de achterliggende concepten en nette broncode. Als je meer van het type 'cookbook' houdt (leren door het intypen van veel voorbeeld broncode), dan zijn er andere boeken beschikbaar. Er bestaat zelfs een 'Cocoa Programming for Dummies' boek dat vrij goed staat aangeschreven!

C en Objective-C Boeken

k en r
The C Programming Language
2nd Edition
Brian Kernighan & Dennis Ritchie
vergelijk

C is de basis van Objective-C, dus alles wat voor C geldt is ook relevant voor Objective-C. The C Programming Language is dé referentie wat betreft de C programmeertaal. Auteurs Kernighan en Ritchie zijn de oorspronkelijke ontwikkelaars van C bij AT&T en het boek staat dan ook bekend als 'K&R'. De C programmeertaal zoals die in de eerste editie stond beschreven wordt aangeduid als K&R C. Deze tweede editie bespreekt de gestandaardiseerde ANSI C versie, die door vrijwel iedere moderne compiler wordt begrepen.

Het boek is heel helder geschreven, met duidelijke voorbeelden, zodat zelfs een gemotiveerde beginner met dit boek in de hand C kan leren. In het begin van het boek wordt rustig met een 'hello, world' programma gestart, maar gaandeweg komen alle mogelijkheden van C aan bod. Achter in het boek is een compleet syntax overzicht opgenomen en wordt tevens de 'standard library' (de functies die altijd aanwezig zijn) besproken. Dit boek is het naslagwerk dat iedere serieuze C programmeur bij de hand heeft. Desondanks is dit een dun boekje omdat C een kleine, compacte, taal is.

learn c on the mac
Learn C on the Macintosh
Mac OS X Edition
Dave Mark
web site

Met "Learn C on the Macintosh" heeft een hele generatie Macintosh programmeurs geleerd te programmeren. Een tijd lang werd dit boek zelfs als .pdf bij CodeWarrior (de developer tools van MetroWerks) geleverd. Sinds kort is het in een geheel herziene uitgave voor Mac OS X verkrijgbaar, dit maal uitsluitend als eBook.

Dave begint bij het begin; ook voor beginnende programmeurs is alles te volgen. Het 'voor Macintosh' aspect zit mede in het feit dat hij in de voorbeelden Xcode gebruikt. Ik lees zelf het liefst echte (gedrukte) boeken, maar voor omgerekend slechts 12 euro heb je toch iets goeds 'in handen'.

deep c
Expert C Programming
Deep C Secrets
Peter van der Linden
vergelijk

Dit boek is een goede aanvulling op de informatie in K&R. Ten eerste is er veel informatie over de 'tools' die in K&R slechts zijdelings ter sprake komen. Toen van der Linden dit boek schreef was hij ontwikkelaar bij SUN, verantwoordelijk voor de compilers. Dit boek bevat dan ook veel technische informatie over C en de 'UNIX tool chain' ofwel het trio pre-processor, compiler en linker dat uiteindelijk verantwoordelijk is voor de omzetting van broncode in een uitvoerbaar programma. De tweede verdienste van het boek is dat het de zere vinger legt op een aantal zwakke plekken in C, en uitlegt waarom die tot veel problemen kunnen leiden. Daarnaast is het boek aanstekelijk geschreven en wordt ieder hoofdstuk afgesloten met een vermakelijke anekdote. Van harte aanbevolen voor iedereen die enige ervaring heeft met C en zich regelmatig afvraagt: 'Ben ik nou zo dom, of is C nou zo moeilijk?'.

obj-c
The Objective-C Programming Language
for Mac OS X version 10.3 and later
Apple Computer

Dit boek is het Objective-C equivalent van 'The C programming language', en refereert ook aan dat boek. De ondertitel 'voor OS X' is geen loze kreet. Apple is de officiële eigenaar van de Objective-C taal, en breidt die naar believen uit. De tekst is helder en schetst diepgravend alle aspecten van de taal. Bij twijfel over een taaleigenschap heeft dit boek het antwoord paraat. Er wordt wel verondersteld dat de lezer voldoende kennis heeft van C.

De meest actuele versie wordt als onderdeel van de developer tools geïnstalleerd als html en pdf. Dit boek was ooit ook op papier verkrijgbaar, maar is dat jammer genoeg niet meer.

Cocoa Boeken

hillegass
Cocoa Programming for Mac OS X
2nd Edition
Aaron Hillegass
vergelijk

Aaron Hillegass is de eigenaar van Big Nerd Ranch, een bedrijf dat IT opleidingen geeft en gespecialiseerd is in intensieve Cocoa trainingen. Dit boek bevat het lesmateriaal dat hij bij die trainingen gebruikt. De huidige editie is van 2004, en is daarmee het enige leerboek dat de nieuwere toevoegingen van Cocoa zoals 'bindings' behandelt. De heersende opinie is dat dit het beste Cocoa boek is dat op dit moment verkrijgbaar is.

learning cocoa
Learning Cocoa with Objective-C
2nd Edition
James Duncan Davidson, Apple Computer
vergelijk

Dit is het 'officiële' Apple boek om Cocoa te leren. Apple heeft voor de tweede editie een co-auteur aangetrokken, wat de leesbaarheid ten goede is gekomen. De belangrijkste aspecten van Cocoa komen aan bod, en de voorbeelden behandelen zowel het maken van 1- als meervenster programma's.

nutshell
Cocoa in a Nutshell
A Desktop Quick Reference
Mike Beam & Duncan Davidson
vergelijk

Dit boek heeft twee gedeelten. Het eerste deel bevat een korte introductie van Objective-C en een overzicht van Cocoa. Het belangrijkste deel van het boek is een compleet (t.m. Mac OS 10.2) API overzicht van alle klassen en functies in AppKit en Foundation. Erg nuttig is een methoden index waarin je kunt terugvinden in welke klassen die methode wordt gedefinieerd. De Apple documentatie biedt zo'n functie niet.

Overige Boeken

practice
The Practice of Programming
Simplicity, Clarity, Generality
Brian Kernighan & Rob Pike
vergelijk

Dit is een algemeen programmeerboek. Kernighan (dezelfde) en Pike behandelen een aantal onderwerpen waar iedere programmeur vroeg of laat tegenaan loopt: het ontwerpen van algoritmen, de keuze van data-structuren, programmeerstijl, programma's testen en debugging. Bij al deze onderwerpen geven de auteurs aan wat in hun ervaring de 'best practices' zijn. Hoewel het boek niet op één programmeertaal is gericht zijn zijn de voorbeelden in het boek meestal in C geschreven. Dit is een prima boek voor iedereen die de kwaliteit van zijn programma's wil verbeteren.

core book
Advanced Mac OS X Programming
Second edition of "Core Mac OS X and UNIX Programming"
Mark Dalrymple & Aaron Hillegass
vergelijk

Niet alles wat je in een programma wilt doen is te realiseren met behulp van Cocoa. Soms moet je gebruik maken van andere frameworks. Dit boek laat zien hoe je de standaard mogelijkheden van UNIX kunt gebruiken in Mac OS X. Zo komen onder andere netwerk en sockets, file IO, multiprocessing en authorisatie aan bod. Ook is er aandacht voor Apple technologieën als Rendezvous, CFRunloop, NSFileManager en de Keychain. Een erg nuttig hoofdstuk behandelt het gebruik van GDB, de standaard debugger. Dit is een verbeterde uitgave van "Core Mac OS X and UNIX Programming" en bevat de nieuwste informatie over Mac OS X 10.4 en GCC 4.