Einstieg mit Cocoa und Xcode

below

below

Aktives Mitglied
Thread Starter
Dabei seit
15.03.2004
Beiträge
13.565
Reaktionspunkte
1.092
Es gibt viele Möglichkeiten, auf dem Mac zu programmieren bzw. es zu lernen, und dazu gibt es auch einige Threads hier im Forum.

Die „Muttersprache“ von OS X (und dem iPhone) ist Objective-C mit dem Cocoa Framework, und dieser Thread beschäftigt sich mit dieser Umgebung und dem Werkzeug Xcode. Vor- oder Nachteile von Objective-C/Cocoa/Xcode sollen in diesem Thread nicht besprochen werden, das sollte in den entsprechenden Threads passieren – insbesondere für das iPhone gibt es aber keine Alternative.

Genug der Vorrede, zum Thema.

Anmerkungen zum iPhone

Da sich in letzer Zeit die Posts mit dem Tenor „Ich hab keine Ahnung vom Programmieren, was fange ich mit dem iPhone SDK an?“ häufen, zunächst etwas dazu:
Programmieren lernt man nicht über Nacht. Ich selbst habe vielleicht zwei Jahre gebraucht, bis ich mein erstes wirklich brauchbares Programm geschrieben habe. Stellt Euch auf einen längeren Lernweg ein.
Ein Anfängertutorial spezifisch für das iPhone kenne ich nicht, und ich halte es auch nicht für sinnvoll. Daher ist der beste Weg, erst einmal Objective-C und Cocoa für den Mac zu lernen. Der Umstieg auf das iPhone ist dann wirklich einfach.

Xcode 3

Die meisten Tutorials und viele Bücher gehen noch von Xcode 2.x aus, während die aktuelle Version Xcode 3 ist.
Wirklich blutige Anfänger könnten von den Unterschieden verwirrt sein, aber das ist kein Problem: Auf Leopard kann man problemlos mehrere Versionen von Xcode gleichzeitig installieren und benutzen (Und auf Tiger gibt es kein Xcode 3). Xcode 2.5 gibt es bei der Apple Developer Connection
Damit ist es möglich, Xcode 2 Beispiele wirklich Schritt-für-Schritt nachzuvollziehen, oder es auch mal direkt in Xcode 3 zu probieren.
Das Buch von Aaron Hillegass ist jetzt in der dritten Auflage erschienen, die auch Xcode 3 und OS X 10.5 behandelt.

Der Einstieg

Ein beliebtes Anfängertutorial auf Deutsch für wirklich blutige Anfänger findet sich auf Cocoading, der Seite von Amin Negm-Awad.
Ein sehr umfangreiches, englisches Anfängertutorial gibt es bei Andy Matuschak
Und natürlich findet sich auch bei Apple ein (englisches) Tutorial, das allerdings schon etwas höher ansetzt.

Die Bücher

DAS deutsche Cocoa Buch ist Objective-C und Cocoa – Programmieren unter Apple Mac OS X von Klaus M. Rodewig und Amin Negm-Awad. Die aktuelle Auflage behandelt noch Xcode 2.

DAS englische Cocoa Buch ist Cocoa Programming for Mac OS X von Aaron Hillegass. Die aktuelle, dritte Auflage behandelt Xcode 3.

Nicht ganz so umfangreich sind die Bücher von Spiderworks. Sie sind aber auch deshalb sehr zu empfehlen, weil sie als Downloadversion beim aktuellen Dollarkurs sehr günstig zu haben sind.

Auf Anregungen und Ergänzungen zu diesem Posting freue mich und werde sie in diesen Hauptpost einfügen.

Viel Spass beim Entwickeln!

Alex
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: timhager, Daniel B, MarkusMuller und 39 andere
Wobei ich sagen muss, dass ich gerade dabei bin das Buch (2. Auflage über Amazon) von Rodewig und Negm-Awad durchzulesen. Leider bin ich von der Qualität sehr enttäuscht. Viele, viele Flüchtigkeitsfehler, die einem geschulten Programmierer (gute Assembler, C und Pascalkenntnisse) schnell auffallen. Allerdings für Anfänger verwirrend sein könnten. Daher kann ich zu dem Buch zurzeit nur sagen: bedingt empfehlenswert
 
Wobei ich sagen muss, dass ich gerade dabei bin das Buch (2. Auflage über Amazon) von Rodewig und Negm-Awad durchzulesen. Leider bin ich von der Qualität sehr enttäuscht. Viele, viele Flüchtigkeitsfehler, die einem geschulten Programmierer (gute Assembler, C und Pascalkenntnisse) schnell auffallen. Allerdings für Anfänger verwirrend sein könnten. Daher kann ich zu dem Buch zurzeit nur sagen: bedingt empfehlenswert

Das ist zwar richtig aber das richtig Traurige daran: Es ist das Beste auf deutsch derzeit. :(
 
Habe das Tutorial von Andy Matuschak noch mit aufgenommen.

Alex
 
Ich glaube nicht, dass ein Anfänger von _namee anstelle _name verwirrt wird.
 
Ich habe mir auch das buch " Objective-C und Cocoa – Programmieren unter Apple Mac OS X" geholt und finde es als anfänger unter leopard sehr sehr anstrengend. Fängt schon bei den ersten versuchen mit der umgebung umzugehen an. z.b. Man soll im "Doc Window" zum Punkt "Classes" gehen. Diesen punkt gibt es aber unter leopard nicht, bzw. nicht an der stelle wie er im buch beschrieben wird.

Gibt es wirklich KEIN einigermaßen gutes, "deutsches" buch für cocoa anfänger unter leopard (Xcode 3.0)?

*edit*: was wäre denn das beste englische Buch für absolute anfänger in (leopard) cocoa, Xcode 3.0, Objective-C. Wenn man aber immehrin erfahrungen in php und delphie hat ? ^^
 
Zuletzt bearbeitet:
Gibt es wirklich KEIN einigermaßen gutes, "deutsches" buch für cocoa anfänger unter leopard


Es dürfte einigermaßen problematisch sein für die Autoren das alles so zeitnah fertig zu haben. Auch ist die IDE von Apple eben nicht so intuitiv wie Apple das immer gern verkauft. Das hat zwar seinen Sinn, was die dahinterstehenden Frameworks angeht, aber es ist eben nicht wirklich Newbie-freundlich!

Wie gesagt es dürfte schwer genug sein immer aktuell englischsprachige Bücher zu finden, von deutschen mal abgesehen. Am mangelnden Engangement der Autoren liegt es sicher nicht.
 
das ist natürlich schade, hätte aber eher gedacht, dass man einfach englische Bücher übersätzt und dass diese schon ziemlich zeitnah entstehen.
aber da habe ich anscheinend zu viel erwartet ^^

kennst du vielleicht ein gutes englisches? weil auf der apple seite (vielleicht bin ich blind), habe ich nur sachen gefunden, wie man von 2.0 auf 3.0 umsteigt also keine erklärungen für neulinge wie z.B variablen, for-schleifen und etc.
 
@NOcTua: ich denke in Deinem Fall ist es sinnvoller eine Lernumgebung entsprechend der verfügbaren Dokumentation herzustellen ( was unter Leopard aber ggf. schwierig ist) oder erste gedruckte Bücher abzuwarten die sich mit Xcode3 auseinandersetzen.

So ein Buch will eben auch erst geschrieben sein ( eine Arbeit die Leser gern unterschätzten). Oftmals sind Softwareprodukte schon alt, wenn es Dokumentation in Printform gibt, von übersetzten Werken oder neu geschriebenen die auf englischer Literatur fußen ganz zu schweige.

Ab einem gewissen Punkt ist es in der Tat so, das es zu aktueller Software keine Print-Doku mehr gibt. Bei OpenSource kann man teilweise froh sein, wenn die Doku in den nä. 12 Monaten nach Release entsteht. Das ist nicht schön, ich habe auch lieber ein Buch neben dem Rechner als einen Webbrowser mit Doku, ist aber der Zeit geschuldet die ein Buch zur Erstellung eben zusätzlich bräuchte.
 
Das verstehe ich jetzt nicht. Das steht doch alles auch in Xc2 Tutorials

Alex

ich vermute das es daran liegt das es sehr viel auf einmal ist eine IDE, OO, ein komplexes Framework UND Programmieren überhaupt zu erlernen.

Die Unterteilung in einen Editor und einen Interfacebuilder ( und die Umsetzung des Letzteren) ist da wenig Einsteigerfreundlich! Der Grund warum immer wieder ein Delphi/C++ Builder gewünscht wird für OS X liegt darin das Newbies da einfach bessere Chancen haben erstmal alles andere zu lernen ( was ja schonmal genug ist).

Klar klärt sich nachher warum das für Objective-C so besser ist, nur ist es für den Newbie eben frustrierend, dem wäre erstmal mit einem Delphi eher geholfen.
 
Ich glaube nicht, dass ein Anfänger von _namee anstelle _name verwirrt wird.
Doch genau. Weil ein Anfänger Tippfehler macht. Dann schaut er im Buch nach. Tippt es dann genau wie im Buch ab und es geht nicht. Weil ein Anfänger sich auf viele Dinge gleichzeitig konzentrieren muss.
Sich ständig wiederholende Fehler sind auch, dass man eine .h-Datei ändern soll und dort diesen oder jenen Code eingeben soll. Dabei ist die jeweilige .m-Datei gemeint. Gerade bei der Einführung fand selbst ich verwirrend, dass die Klasse mal Instrument, mal Piano und mal Guitar hieß, obwohl es konsequent Instrument hätte heißen müssen. Denn die spezifischen Ableitungen kommen erst gegen Ende des Abschnitts.

Wie solche Fehler entstehen ist mir schon klar. Wir haben hier auch ein Buch von ca. 15 Autoren veröffentlicht. Deshalb ist es gerade bei solchen Büchern wichtig, dass 1 darüber liest und damit 1 konsistente Linie fährt.

Sorry, aber da sind (sehr) viele Fehler nicht aufgeführt.

Ich bin zurzeit auch erst bei der Hälfte des Buches, da ich nebenher auch noch etwas arbeiten muss und noch ein Nebenstudium betreibe.
 
Sorry, wenn ein Anfänger nicht sieht, was ein Bezeichner ist und nur "dumm abtippt" hat er ganz andere Probleme. Dann wird er nämlich nie ein eigenes Programm schreiben können.

Welche Fehler fehlen denn? Sicherlich sind nicht einmal alle berichtet, zumal in der zweiten Auflage Fehler aus der ersten Auflage berichtet wurden. Sicherlich habe ich auch mal einen übersehen. Aber sicherlich habe ich auch zahlreiche Mails über nicht gelistete Fehler bekommen, die sich bereits auf der Seite befanden. ;-)

Ich habe deshalb die Liste mehrfach umgestellt, um das leichter auffindbar zu machen. Irgendwie verhält es sich so, dass wie man es macht, es jemanden gibt, der ihn nicht findet.
 
anegmawad schrieb:
Sorry, wenn ein Anfänger nicht sieht, was ein Bezeichner ist und nur "dumm abtippt" hat er ganz andere Probleme. Dann wird er nämlich nie ein eigenes Programm schreiben können.

Das ist völlig richtig, jedoch:
betrachtet man was ein wirklicher Anfänger alles leisten muß, so kann dies in der Tat eine unüberwindliche Hürde darstellen! Von jemandem der überhaupt schonmal programmiert hat erwarte ich solche Transferleistungen auch ad hoc. Ein kompletter newbie der erstmal lernen muß was Kontrollstrukturen sind, was Methoden sind und warum es sie gibt, wozu man Objekte verwendet und wieso man die dann auch noch vererben kann,... der dann auch noch auf eine systemorientierte ( und nicht benutzerorientierte) IDE sowie eine leicht ausgefallene Syntax trifft, den wird es mit absoluter Sicherheit umhauen. Der muß nämlich erstmal dumm abtippen und dann das abgetiptte variieren um zu genau der Erkenntnis ( was ist ein Bezeichner) zu kommen die Du voraussetzt!

Grundsätzlich gebe ich Dir recht! Kein Buch ( schon gar nicht mit solcher Komplexität) kann fehlerfrei sein. Von daher ist so eine Website mit "Updates" ein probates Kompensationsmittel. Allerdings ist der absolute Anfänger dabei eben auf jede Kleinigkeit angewiesen, während mit wachsender Erfahrung man immer eher selbst auf die Fehler kommen kann ( eine Art Kreuzworträtsel für Programmierer :) ).

anegmawad schrieb:
Irgendwie verhält es sich so, dass wie man es macht, es jemanden gibt, der ihn nicht findet.

Das ist in der Tat ein schier unlösbares Problem. Man kann gar nicht so krumm denken, wie es alle User in Ihrer Gesamtheit tun.
Ich bin auch immer wieder erstaunt zu welchen erstaunlichen Schlüssen neue User tendieren und was man wirklich alles präzisieren müßte um möglichst wenig mißverstanden zu werden. Vollständig lösen läßt sich sowas IMHO tatsächlich nicht.
 
  • Gefällt mir
Reaktionen: Pingu
In der Tat war das Buch auch gar nicht für einen vollständigen Anfänger geacht. Es gab sogar gewisse Meinungsverschiedenheiten darüber, ob so etwas wie "while" im Buch stehen sollte. Aber immerhin: Es ist sinnvoll für Leute, die schon in einer anderen Programmiersprache gearbeitet haben und denen nur das Schlüsselwort fehlt.
 
Mich würde es freuen, wenn wir die Diskussionen zum Buch meinetwegen zusammenfassen könnten, um dann die m.E. doch etwas off-topic liegenden Beiträge zu löschen.

Auch im Hillegass sind Fehler, und davon ganz abgesehen gibt es einfach im Deutschen Markt keine Alternative.

Alex
 
ich denke da wird anders ein Schuh draus:

Du wolltest einen Thread als Tutorial starten. Da macht es wenig Sinn wenn jeder zu jedem Schritt Deines Tutorials schreibt wie er den Schritt sieht und warum ein anderer besser wäre...

Das Ding zerfaselt, wie hier zu sehen! Im Grunde könnte ich alles nach dem ersten Posting abtrennen. Vielleicht drehen wir es aber besser um und lassen das hier so stehen ( immerhin haben einige geposted die vielleicht ihre Beiträge dann suchen) und Du kopierst den Beitrag 1 und eröffnest im Forenbereich für Tutorial ein eben Solches!?

Immerhin sollte klar sein das es bei Tutorials unerwünscht ist dazwischenzuposten, während das hier im normalen Forenbereich ja automatisch als Diskussion gesehen wird.

Wenn Das nicht in Deinem Sinne sein sollte Alex, dann laß uns das bitte per PN klären!


Gruß wegus
 
Ich hab hier eine Seite, mit der ich mich gerade anfreunde.
Für Ein- und Umsteiger auf deutsch, eventuell hilft sie dem einen oder anderen, daher möchte ich die mal posten:
http://cocoa-coding.de/
 
Diese Seite ist mit inhaltlichen Fehlern gespickt.
 
Zurück
Oben Unten