Programeren voor OS X (The Basics)
4 januari 2006 - 19:44   
geplaatst door: Mrmoon
Mijn vraag is kort maar zorgt waarschijnlijk voor een aardige draad...

"Waar begin ik, wanneer ik wil gaan programmeren voor OS X? (En welke tools heb ik dan nodig?)"

Wat wil ik programmeren? Tsja, euhm... echt een duidelijk doel heb ik niet. Ik wil er meer van leren en zal waarschijnlijk willen beginnen met een soort van simpele texteditor die werkt met kleur codes, etc.

Vraag me niet direct de hemd van het lijf...  :biggrin: Ik heb programmeer ervaring, maar dat is voornamelijk windows geörienteerd.

Alvast bedankt

Macbook Pro - 2.2Ghz Core i7 - 16 Gb Ram - 250 Gb
Mac Mini - 2.5Ghz Core i5  - 8 Gb Ram - 512Gb
iPhone - X
Programeren voor OS X (The Basics)
4 januari 2006 - 20:05    reactie #1
geplaatst door: dewaard
A. Kies een taal
B. Als je de taal nog niet kent, leer hem (koop een boek, lees een tutorial en vooral heel veel proberen|)
C. Leer de nodige libraries kennen (zoals Cocoa als je voor Objective-C hebt gekozen).

Persoonlijk zou ik voor Java kiezen als ik jou was, want dan kan je je kennis en je programma's ook op andere platformen inzetten (afgezien van het feit dat Java een heerlijke programmeertaal is, natuurlijk). Java applicaties zijn qua uiterlijk niet te onderscheiden van reguliere Mac applicaties, vanwege de goede implementatie van Aqua voor Swing (Apple verzorgt zelf de Java versie voor de Mac).

Je *kunt* ook voor Objective-C in combinatie met Cocoa kiezen, maar daar heb ik persoonlijk minder mee. Het is in ieder geval wel (afgezien van Java) de klassieke manier op software voor de Mac te ontwikkelen.

Je kunt ook modern doen en voor Ruby of Python kiezen. Die talen zijn allemaal platformonafhankelijk. Een andere interessante optie is .NET via Mono, wat op dit moment nog een beetje expirimenteel is op de Mac, maar C# is een fantastische taal die het waard is om een beetje te stoeien met jonge software.

Een andere oplossing is C++ in combinatie met de Qt toolkit van Trolltech (bekend van KDE op Linux), waarmee je je software ook op verschillende platformen kunt draaien zonder (grote aanpassingen). Adobe gebruikt Qt onder andere voor Photoshop Elements.

Kies in ieder geval voor een cross-platform programmeertaal. Waarom? Daar ga ik binnenkort op in een artikel dat ik op dit moment nog aan het schrijven ben over het belang van cross-platform ontwikkeling. Als je wat dat betreft op de hoogte wilt blijven kan je het beste http://www.filipdewaard.com in de gaten houden...

Programeren voor OS X (The Basics)
4 januari 2006 - 20:23    reactie #2
geplaatst door: ventje853
installeer de developer kit vanop de OS X DVD. daarin staan vele voorbeelden en kan je al eens kijken hoe het er zo ongeveer uitziet.

veel succes, want het is een lange weg, zeker als je nog nooit geprogrammeerd hebt. want programmeren is 1 ding, maar de structuur van een programma uitdenken is nog veel complexer.

Programeren voor OS X (The Basics)
4 januari 2006 - 21:54    reactie #3
geplaatst door: BraboMac
Vanwege de switch naar Intel komen er redelijk snel updates. Registreer je dus als (gratis) ADC memeber (Apple Devolloper Connection member) en download de laatste developper tools van de site. Voor wat speurwerk kan de versie op je installatie CD natuurlijk ook goed voldoen, de meeste veranderingen zitten onder de motorkap.

Wat de taal betreft: er is maar 1 taal op Mac OS X, de rest is "bijzaak" of zelfs "oud zeer". Apple geeft heel duidelijk aan dat ze actief verder willen met Objective-C en het bijbehorende Cocoa libraries. Java ondersteuning wordt niet meer verder ontwikkeld na OS X 10.4. Leopard zal dus nog wel java bevatten, maar deze taal zal niet meer worden uitgebreid. Het is (net als Carbon) alleen nog aanwezig om compatibiliteits- en interoperabiliteitsredenen (cross-platform gebruik met Linux, Windows e.d.) aanwezig. Apple meldt dit in de revisie van 12 december 2005 van de Cocoa documentatie. Deze is te vinden in de members-area van http://developer.apple.com

php en perl zijn interpreted talen, wat betekent dat de code wordt verwerkt als die wordt aangeroepen. Dit zorgt ook voor goede protabiliteit tussen verschillende platformen. Overigens is Cocoa ook redelijk cross-platform te noemen sinds gnustep.

Het voorbeeld dat jij noemt is bij uitstek geschikt om in Cocoa te maken. Je zult verbaasd zijn hoe weinig regels code je nodig hebt om het te maken!

Als je bent aangemeld bij Apple vind je daar een schat aan documentatie. Je moet de Engelse taal wel goed beheersen.

Big Nerd Ranch blogs for Mac developers (and Nerds)
Er bestaan slechts 10 soorten mensen op deze aarde: Zij die binair kunnen rekenen en zij die dat niet kunnen.
Programeren voor OS X (The Basics)
4 januari 2006 - 23:41    reactie #4
geplaatst door: Mrmoon
Okay,

Het lijkt me dus wel duidelijk. Ik zal me gaan ingraven in Objective-C en Cocoa. Iemand nog goede boeken en of andere suggesties/sites? Behalve die van Apple natuurlijk.

Thanks

Macbook Pro - 2.2Ghz Core i7 - 16 Gb Ram - 250 Gb
Mac Mini - 2.5Ghz Core i5  - 8 Gb Ram - 512Gb
iPhone - X
Programeren voor OS X (The Basics)
5 januari 2006 - 00:02    reactie #5
geplaatst door: dewaard
Citaat
Wat de taal betreft: er is maar 1 taal op Mac OS X, de rest is "bijzaak" of zelfs "oud zeer". Apple geeft heel duidelijk aan dat ze actief verder willen met Objective-C en het bijbehorende Cocoa libraries. Java ondersteuning wordt niet meer verder ontwikkeld na OS X 10.4. Leopard zal dus nog wel java bevatten, maar deze taal zal niet meer worden uitgebreid. Het is (net als Carbon) alleen nog aanwezig om compatibiliteits- en interoperabiliteitsredenen (cross-platform gebruik met Linux, Windows e.d.) aanwezig. Apple meldt dit in de revisie van 12 december 2005 van de Cocoa documentatie. Deze is te vinden in de members-area van http://developer.apple.com

Jouw opmerkingen over Java zijn volgens mij klinklare onzin. Kan je ook bronnen noemen die dit ondersteunen? Verder is het nooit verstandig om te zeggen dat maar één taal geweldig is en de rest bijzaak of oud zeer is (met name als je Objective-C als die ene geweldige taal aanmerkt). Iedere ervaren programmeur weet namelijk dat de meeste talen qua doeltreffendheid ongeveer gelijk zijn en dat het uiteindelijk voor een groot deel aankomt op smaak.

Programeren voor OS X (The Basics)
5 januari 2006 - 00:03    reactie #6
geplaatst door: oogappel
Programeren voor OS X (The Basics)
5 januari 2006 - 00:52    reactie #7
geplaatst door: macvooh
volgens mij blijft java ook wel in (externe) ontwikkeling

maar "the" way to go voor mac is toch wel objective-c leren.

FREAK!
Programeren voor OS X (The Basics)
5 januari 2006 - 08:22    reactie #8
geplaatst door: BraboMac
Misschien ben ik een beetje kort door de bocht geweest door te zeggen dat er maar 1 taal is, maar op de Apple site staat het er toch eigenlijk net zo hard in! Ik hoop dat de link werkt voor non ADC-members....

Citaat
Important: Features added to Cocoa in Mac OS X versions later than 10.4 will not be added to the Cocoa-Java programming interface. Therefore, you should develop Cocoa applications using Objective-C to take advantage of existing and upcoming Cocoa features.

Wat boeken betreft:
Cocoa Programming for Mac OS X van Aaron Hillegass (second edition, ISBN: 0-321-21314-9 is the way to go. Het begint vrij gemakkelijk, gaat redelijk diep in op zaken en stoomt je zo ver klaar dat je daarna met de Apple documentation alles kunt maken wat je maar kunt verzinnen. En dat verzinnen is misschien nog wel het moeilijkste!

Let op dat je Second Edition pakt. Deze is veel moderner, en bespreekt o.a. bindings die is het eerste boek niet voor kwamen. Logisch want die bestonden toen nog niet!

Ik heb daarvoor ook Cocoa for Dummies doorgeworsteld. Leuk boek met leuke voorbeelden, maar na het lezen van het boek heb je nog zoveel vragen dat je alsnog naar een beter boek op zoek zal gaan.
De voorbeelden zijn echter weer wel goed bruikbaar in eigen programma's die je daarna wil maken.

(Bewerkt door BraboMac om 8:26, 5-01-2006)

Big Nerd Ranch blogs for Mac developers (and Nerds)
Er bestaan slechts 10 soorten mensen op deze aarde: Zij die binair kunnen rekenen en zij die dat niet kunnen.
Programeren voor OS X (The Basics)
5 januari 2006 - 08:25    reactie #9
geplaatst door: maqish
@Dewaard ik ben het zeker met je eens, java is een prachtige taal, maar op het moment dat ik weer een applicatie moet schrijven client heb ik het dan over dan zou ik dat of in swt doen maar niet zo snel meer in swing.

Als ik meer tijd had ging ik kijken naar objective-c met een java achtergrond moet dat niet al te moeilijk zijn zo lijkt mij.

kies inderdaad wat je leuk vindt. ik ben het eens met het cross platform idee, maar sta dan wel achter swt (eclipse)

nog een groot voordeel hiervan is dat het sneller is dan swing, voordat er flames komen. swt maakt net als awt gebruik van native onderdelen, waar bij swing alles geemuleerd is. dat is altijd trager.

plus veel grote bedrijven geven steeds meer ondersteuning aan swt.

Powermac G5 Dual 1.8ghz 2gb. zoek nog een sneller videokaart iemand??
Programeren voor OS X (The Basics)
5 januari 2006 - 08:33    reactie #10
geplaatst door: XiC
Java + SWT (swt is onderdeel van eclipse)
Dit levert platform onafhankelijke apps op (nouja, als het platform maar Windows, Linux of OS X is).
Op de Mac kan je een Java app verpakken tot een app waardoor het op een "gewoon" Mac programma lijkt.
Op windows kan je met wat moeite de java/swt app compileren met GCC om een executable te krijgen zodat je gebruikers ook geen aparte JVM nodig hebben.

Programeren voor OS X (The Basics)
5 januari 2006 - 09:24    reactie #11
geplaatst door: KidPaddle

Citaat
Mrmoon om 19:44, 4-01-2006
Mijn vraag is kort maar zorgt waarschijnlijk voor een aardige draad...

"Waar begin ik, wanneer ik wil gaan programmeren voor OS X? (En welke tools heb ik dan nodig?)"

Wat wil ik programmeren? Tsja, euhm... echt een duidelijk doel heb ik niet. Ik wil er meer van leren en zal waarschijnlijk willen beginnen met een soort van simpele texteditor die werkt met kleur codes, etc.

Vraag me niet direct de hemd van het lijf...  :biggrin: Ik heb programmeer ervaring, maar dat is voornamelijk windows geörienteerd.

Alvast bedankt

mooie adviezen allemaal hierboven, maar niemand die vraagt welke taal je al beheerst. Als je VisualBasic hebt geprogrammeert, kan je beter een taal kiezen die daar dichtbij staat (RealBasic bv).
Kijk vanuit je eigen kennis, en borduur daar op voort. Daar heb je het snelst resultaat mee.

Programeren voor OS X (The Basics)
5 januari 2006 - 09:37    reactie #12
geplaatst door: Raf
Oeps, heb dit bericht verwijderd wegens niet relevant ...

(Bewerkt door Raf om 9:40, 5-01-2006)

Switcher sinds 07/2003
Programeren voor OS X (The Basics)
5 januari 2006 - 09:56    reactie #13
geplaatst door: maqish
@ kidpaddle

in mijn ogen als je al een goede OO taal beheerst is het overstappen naar een andere OO of procedurele taal niet echt een probleem.

Er zullen altijd verschillen zijn, maar de overstap van geen naar een OO taal of van procedurele taal naar OO is lastiger. Wellicht wil hij totaal iets anders.

Maar toch de vraag dan  Welke programmeertaal beheers je?

persoonlijk zou ik niet inzien waarom je voort wil borduren op iets als VB maar dat is geheel mijn mening :)

Powermac G5 Dual 1.8ghz 2gb. zoek nog een sneller videokaart iemand??
Programeren voor OS X (The Basics)
5 januari 2006 - 10:18    reactie #14
geplaatst door: mennodeij
Voor OSX is Objective-C/Cocoa zonder meer het beste, wil je een cross-platform applicatie ontwikkelen, kijk dan ook eens naar wxWidgets. Een (gratis verkrijgbare) GUI toolkit met een hele zwik aan language bindings (alleen geen Objective-C zo te zien) waaronder C++, Java, Python, Ruby en Perl.
Wikipedia over wxWidgets
Vu-ja-dé: the odd feeling nothing has ever happened before...
Programeren voor OS X (The Basics)
5 januari 2006 - 12:16    reactie #15
geplaatst door: limmelambok
Java zal altijd wel ondersteund worden op OsX. Het zijn de Cocoa Java klassen (jawel, je kan in een Java programma een NSTreeview aanmaken, en Interface Builder gebruiken voor java applicaties) die niet verder meer zullen worden ontwikkeld. Maar eerlijk, wie gebruikt die nu. Je verliest immers de platformonafhankelijkheid van Java door deze klassen te gebruiken. En als je dan toch platformafhankelijk bent, is m.i. Cocoa de betere keuze.
Zelf doe ik professioneel Java en .Net en op de trein Cocoa, en ik vind Cocoa/Objective C toch wel de leukste van de drie - niet in het minst door de elegantie van Objective C (al is qua geheugenbeheer java/.Net dan weer eenvoudiger).
Het eerder vermelde boek 'Cocoa Programming for Mac OS X' vind ik trouwens het beste leerboek dat ik ooit in handen gehad heb - alle platformen alle talen bij elkaar.
MacBookPro 2Ghz
G5 Dual*2.7
Programeren voor OS X (The Basics)
8 januari 2006 - 00:35    reactie #16
geplaatst door: Appleidee
Als je helemaal vanaf de grond af aan wilt starten wordt het boek "Programming in Objective-C"
aanbevolen. Ik zal dit boek ook eens aan gaan schaffen, om te kijken wat het brengt. Dit boek is
ook in Nederland te koop: http://www.computerboek.nl/boekeninfo.asp?CODE=cgiobmbhgq&ReferrerID=4
(geen reclame, gewoon de eerste link die in Google naar voren kwam)
Programeren voor OS X (The Basics)
8 januari 2006 - 15:39    reactie #17
geplaatst door: macfreakie

Citaat
oogappel om 0:03, 5-01-2006
Cocoa Programming for Mac OS X

Ik verkoop dit boek net in dit topic.

Programeren voor OS X (The Basics)
19 januari 2006 - 09:55    reactie #18
geplaatst door: jackwburger
Hoi,

Cocoa icm Interfacebuilder is eenvoudig te leren. (doe wat oefeningen)
Als je cross platform wilt, kun je bv alles in code doen (zoals dvd2onex v2 dat doet, 2 libs 1 cocoa en 1 win32 (met dezelfde functies) maar een source voor de uiteindelijke gui).
Hiervoor moet je wel wat meer kennis van de libraries hebben maar dat komt vanzelf.

J.