Einstieg mit Cocoa und Xcode

Ich dachte, Mac ist nicht Dein Ding?

Alex

Ich bin Anfang 2008 wie die Jungfrau zum Kind nach 18 Jahren PC Journaille zur MACUP als Redakteur gekommen. Ich wollte NUR redigieren. Keinesfalls mit Macs arbeiten und erst recht nicht drüber schreiben.

Tja, dann hat sich das AIR erst ästhetisch, dann funktional in mein Herz geschlichen ... Und nun weigere ich mich, einen pc anzufassen und lass ihn höchstens einmal virtuell ins Fenster ;)

Also: ich bin ein echter Saulus-Paulus-Fall und schreibe seither NUR NOCH über OS x und & Co. Selbst meine Kids sind schon infiziert. Mein Sohn rechnet jedes Einkommen (Bill Gates / Steve Jobs) nicht in € oder $ sondern nur noch in macbooks um ;-)

Ingo
 
Hallo zusammen,

ich bin auf der suche (wie so viele ;)) nach guten Büchern zum Einstieg in Cocoa und Xcode, auf diesen Gebiet bin ich Anfänger.

Programmiererfahrung ist vorhanden (ca. 6 Jahre SAP Umfeld und C++).
Welche Bücher könnte Ihr mir Empfehlen die speziell auf Objective-C eingehen sowie das SDK behandeln.

Gruß,
HansOlsen
 
guude,

ich poste dir nun einfach den amazon link mit den suchworten cocoa objective-c weil diese frage schon mehrmals durchgekaut wurde und empfehlungen ueber die suchfunktion in diesem forum gefunden werden koennen ... Amazon Link

wenn du ein buch "auf deutsch" haben moechtest nimm das von amin negm-awad. wenn du der englischen sprache maechtig bis, kaufe dir was einfuehrendes zu objective-c von kochan und fuer cocoa den hillegass! alternative solltes du dir auch mal die "learn reihe" aus dem apress verlag ansehen.

regards,
buk
 
Gibt es auch ein XCode Buch welches Spiele-Programmierung für das iPhone mit XCode behandelt?
 
[ISBN]3908497833[/ISBN]
 
Hallo Leute,

ich arbeite mich gerade durch "iPhone & iPad, Programmierung für Einsteiger" durch und komme auch gut voran...

Leider wird hier sehr wenig auf den Syntax con Objectiv-C eingegangen.
Ich verstehe z. B. nicht wann ich [], (irgendwas*) oder warum es [myActivityIndicatorView stopAnimating]; und nicht myActivityIndicatorView.stopAnimating; heißt...

Was ist eine Eigenschaft, was eine Methode, wo sind die Unterschiede?

Warum ist ActivityIndicator isAnimating eine Methode und switch on eine Eigenschaft?
Beides gibt doch eine Bool-Wert zurück?!?

Grundlagen von Objectiv-C halt...

Nun suche ich ein gutes deutsches Buch wo das für Einsteiger erklärt wird.
Gefunden habe ich das: http://www.amazon.de/gp/product/382...&pf_rd_t=101&pf_rd_p=463375193&pf_rd_i=301128

Allerdings steht da in der Einführung das C-Kenntnisse von Vorteil sind, und die hab ich nicht...

Hat jemand ne Empfehlung für mich?

Vielen Dank!
Jörg
 
Zuletzt bearbeitet:
Im Prinzip finde ich die Grundlagen von Objective-C einfach erklärt. Ein spezielles "Objective-C" Buch finde ich für Anfänger übertrieben.

Das iOS Buch von Hillegass und Conway gibt es noch nicht auf Deutsch, aber vielleicht ist es auf English eine Alternative? (*)

Alex

(*) Safe Harbor Statement: Aaron Hillegass ist ein Freund von mir, und ich arbeite auch für die Big Nerd Ranch
 
Ich hab als blutiger Anfänger versucht in Objective C reinzukommen. Habe 3 Monate in verschiedenen Büchern geackert wie ein bescheuerter. Ergebnis: ich kann nix, nee... gar nix. Objective C ist ein Unding, praktisch nicht lernbar. Wirklich verständliche Literatur darüber deren man folgen kann oder irgendwie ein pädagogischen Aufbau hat hab ich gar keine gefunden.
 
Ich hab als blutiger Anfänger versucht in Objective C reinzukommen. Habe 3 Monate in verschiedenen Büchern geackert wie ein bescheuerter. Ergebnis: ich kann nix, nee... gar nix. Objective C ist ein Unding, praktisch nicht lernbar.

Mit welchen Büchern hast Du es versucht, was sind Deine Vorkenntnisse? Objective-C ist nicht schwerer als Java, und deutlich leichter als C++.

Wo genau lagen da Deine Probleme?

Alex

EDIT: Als "unlernbar" würde ich C++ bezeichnen. Jedenfalls so lange, bis ich jemanden treffe, der C++ vollständig mit allen Paradigmen verstanden hat.
 
Im Prinzip finde ich die Grundlagen von Objective-C einfach erklärt. Ein spezielles "Objective-C" Buch finde ich für Anfänger übertrieben.
Ein Buch für sowas gibt es aber doch bestimmt oder:

Was ist eine Eigenschaft, was eine Methode, wo sind die Unterschiede?

Warum ist ActivityIndicator isAnimating eine Methode und switch on eine Eigenschaft?
Beides gibt doch eine Bool-Wert zurück?!?

Ich hab als blutiger Anfänger versucht in Objective C reinzukommen. Habe 3 Monate in verschiedenen Büchern geackert wie ein bescheuerter. Ergebnis: ich kann nix, nee... gar nix. Objective C ist ein Unding, praktisch nicht lernbar. Wirklich verständliche Literatur darüber deren man folgen kann oder irgendwie ein pädagogischen Aufbau hat hab ich gar keine gefunden.

Hm, also ich arbeite jetzt seit 3 Tagen mit Objectiv-C... ich kann schon einige Sachen machen, d. h. ich weiß wie ich was programmieren muss damit es funktioniert... also sooo schwer find ich es jetzt nicht.

Ich weiß halt nur nicht warum das eine in []-Klammern steht und das andere mit . getrennt wird...
Ich weiß das es so ist und mache es, ich weiß nur nicht warum es so ist, und das möchte ich verstehen...
 
Mit welchen Büchern hast Du es versucht, was sind Deine Vorkenntnisse? Objective-C ist nicht schwerer als Java, und deutlich leichter als C++.

Wo genau lagen da Deine Probleme?

Alex

EDIT: Als "unlernbar" würde ich C++ bezeichnen. Jedenfalls so lange, bis ich jemanden treffe, der C++ vollständig mit allen Paradigmen verstanden hat.

Objective C und Cocoa Band 1 Grundlagen
Objective-C for Absolute Beginners
BecomeAnXcoder
Bucanek Beginning.Xcode
Objective C Dummies
Cocoa Programming for Mac OS X, 3rd Edition
Kochan - Programming in Objective-C 2
Objective C und Cocoa programmieren unter MacOS X
Beginning Mac OS X Snow Leopard Programming

Das Problem ist, es gibt kein systematisches Lehrverfahren. Alles kommt irgendwie kreuz und quer, am Schluss hat man einen rauchenden Kopf. Ausserdem gibt es nirgends eine Klassenbeschreibung und deren Methodenbeschreibung, ausser bei Apple natürlich, deren "Hilfe" ist aber dermassen verwirrend und kryptisch geschrieben, dass wenn man schon alles verstanden hat, dann versteht man auch die Apple Hilfe.
 
Zuletzt bearbeitet:
Mit langjähriger Erfahrung mit Programmiersprachen im C-Stil hatte ich auch so meine Probleme mit der Syntax. Die abstrakte Idee von OOP ist hier eben eine ganz andere, weiterreichender als die von den statisch getypten Sprachen. Wenn man sich aber von dem Korsett erst einmal befreit hat, finde ich die Sprache sehr logisch und einleuchtend.

C++ finde ich übrigens teilweise auch schon sehr anstrengen. Ein Template-Mechanismus mit dem man Fibonacci berechnen kann ist schon heftig ;) Vom Speichermanagement will ich jetzt garnicht erst reden.
 
Was ist eine Eigenschaft, was eine Methode, wo sind die Unterschiede?

Warum ist ActivityIndicator isAnimating eine Methode und switch on eine Eigenschaft?
Beides gibt doch eine Bool-Wert zurück?!?

Ich weiß halt nur nicht warum das eine in []-Klammern steht und das andere mit . getrennt wird...
Ich weiß das es so ist und mache es, ich weiß nur nicht warum es so ist, und das möchte ich verstehen...

Also, an aller erster Stelle ist es ein konzeptueller Unterschied: Das Ziel ist es, State (Zustand) und Behaviour (Verhalten) klar zu trennen.

Bei isAnimating stellt sich tatsächlich die Frage, warum Apple das nicht als Property zugänglich gemacht hat, auch ich würde "animating" für einen Zustand halten.

Am Ende des Tages ist es aber bei Objective-C relativ egal: Auch aus einer "dot Notation", also object.color wird eine Message gemacht, die dann eine Methode [object color] aufruft.

Wenn es Dich verwirrt, bleib bei der Klammernotation.

Und wenn Du etwas mehr darüber wissen willst: When to use properties & dot notation

Das Problem ist, es gibt kein systematisches Lehrverfahren. Alles kommt irgendwie kreuz und quer, am Schluss hat man einen rauchenden Kopf.

Ich weiss nicht, wie alt Du bist, oder welches Vorwissen Du hast. Ich habe etwa mit 12 mit dem Programmieren angefangen, und es ging mir erst mal nicht anders. Naja, heute verdiene ich mein Geld damit, scheint wohl doch geklappt zu haben.

Leute glauben, programmieren sei einfach. Da muss man mal ganz klar sagen: Ist es nicht.
Bei Fragen hilft sicherlich auch dieses Forum, aber manchmal hilft es auch, Dinge mal ein paar Wochen sacken zu lassen.

Selbst habe ich bestimmt zwei Jahre gebraucht, bis ich mal so mein erstes ordentliches Programm geschrieben habe.

Alex
 
Leute glauben, programmieren sei einfach. Da muss man mal ganz klar sagen: Ist es nicht.

Zustimm! Man kann immer nur wieder den Kopf schütteln, wenn man sich mit den Kunden unterhält, welche Vorstellungen dort existieren. Mausschubser haben
die Tendenz, alles sehr vereinfacht zu sehen.

EDIT: Als "unlernbar" würde ich C++ bezeichnen. Jedenfalls so lange, bis ich jemanden treffe, der C++ vollständig mit allen Paradigmen verstanden hat.

Na also da kann ich dir mehrere benennen ;)

Im Übrigen empfinde ich Obj-C als anstrengend - wahrscheinlich, weil ich seit 30 Jahren C/C++ gewohnt bin. Das ist wirklich eine Frage der Gewohnheit.

Ich hab als blutiger Anfänger versucht in Objective C reinzukommen. Habe 3 Monate in verschiedenen Büchern geackert wie ein bescheuerter. Ergebnis: ich kann nix, nee... gar nix. Objective C ist ein Unding, praktisch nicht lernbar. Wirklich verständliche Literatur darüber deren man folgen kann oder irgendwie ein pädagogischen Aufbau hat hab ich gar keine gefunden.

Du gehst ja auch falsch an die Sache heran (meiner Meinung nach). Ein Buch ist als Referenz zu verstehen, LERNEN kannst du ObjC besser durch Learning-by-Doing ;) und natürlich den entsprechenden Usergroups. Gedrucktes ist tot! Grundsätzlich falsch empfinde ich auch bei einigen, das sie den gesamten ObjC-Ansatz lernen wollen,
indem sie komplett ein Buch durcharbeiten - du musst da schon aktiv mitarbeiten, Stück für Stück. Auswendiglernen bringt da schonmal garnichts. Hast du was nicht verstanden, dann ist es am Besten sich nach alternativen Quellen umzusehen, so hat man verschiedene "Erklärbären". Programmieren ist oft wie Mathematik: es baut
vieles aufeinander auf, wenn dann Grundlagen fehlen, dann gerät man an seine Grenzen. Ich habe schon viele Programmierer ausgebildet, speziell Assembler.
Viele machen es sich unnötig schwer, das scheint mir bei dir auch der Fall zu sein. Welche Vorkenntnisse hast du denn? Beherrschst du schon andere Programmiersprachen? Wie bist du vorgegangen? Autodidaktisch?
 
Objective C und Cocoa Band 1 Grundlagen
Objective-C for Absolute Beginners
BecomeAnXcoder
Bucanek Beginning.Xcode
Objective C Dummies
Cocoa Programming for Mac OS X, 3rd Edition
Kochan - Programming in Objective-C 2
Objective C und Cocoa programmieren unter MacOS X
Beginning Mac OS X Snow Leopard Programming

Das Problem ist, es gibt kein systematisches Lehrverfahren. Alles kommt irgendwie kreuz und quer, am Schluss hat man einen rauchenden Kopf. Ausserdem gibt es nirgends eine Klassenbeschreibung und deren Methodenbeschreibung, ausser bei Apple natürlich, deren "Hilfe" ist aber dermassen verwirrend und kryptisch geschrieben, dass wenn man schon alles verstanden hat, dann versteht man auch die Apple Hilfe.

Wann kommt eigentlich der Punkt, an dem du erkennst, dass nicht alle etwas falsch machen, sondern allein du?
 
below schrieb:
Ich weiss nicht, wie alt Du bist, oder welches Vorwissen Du hast.

genau das ist der Knackpunkt! Für jemanden der schon diverse Sprachen kennt, der OO-Paradigmen kennt ( wenn auch nicht alle ;) ), der IDEs beherscht und den Umgang mit Projekten in der Software-Entwicklung gewöhnt ist, für den finde ich einen Einstieg in Objective-C in einem Monat machbar. Danach gilt es dann noch den Einstieg in die Cocoa-APIs zu lernen ( wie lange das dauert vermag ich nicht zu beurteilen) und dann kann man loslegen.

Für jemanden der gar keine Erfahrung hat sieht die Sache deutlich anders aus. Die Verzweiflung an der vermeintlich untauglichen Literatur liest sich ein bißchen so, als sei hier kaum Vorwissen vorhanden. Die Literatur ist nicht schlecht, sie ist inzwischen sogar soweit gefächert das eigentlich für jeden etwas dabei ist. Wer jedoch meint er kaufe sich ein Buch und lese ein bißchen darin und könne dann programmieren.....nunja der liegt falsch ;) Wer von 0 anfängt der wird Jahre brauchen, je nach der zur Verfügung stehenden Zeit und Lernfähigkeit.
 
Hallo.
Eigentlich habe ich eine simple Frage, wenngleich sie auch nicht ganz hierhin passt. Ich beschäftige mich schon seit einiger Zeit mit Recherche zum Thema Programmieren, weil ich großes Interesse daran zeige. Die Motivation ist auf alle Fälle vorhanden. Die Zeit, da ich in einem gänzlich anderen Berufsfeld tätig bin (noch), leider nicht bzw. nur die, die man Freizeit nennt.

Also meine Recherchen brachten folgende Sprachen als Favoriten hervor: Python, Perl, UNIX, (x)html. Nun, ich fand sehr oft den dringenden Hinweis, falls man programmieren möchte, mit (x)html zu beginnen. Dann erst eine andere Sprache dazu lernen. Was haltet ihr davon? (x)html als Einstieg in diese Szene? Buchvorschläge brauche ich nicht unbedingt, sind aber willkommen, (halte mich gerade an den Gallileo-Verlag, und es ist egal ob ein Buch 20 oder 60 Geld kostet, da der Wille da ist) da ich ein Typ vom alten Schlag bin, der gern etwas in der Hand hält, bevorzuge ich dieses Medium anstatt Workshops auf Youtube oder so ähnlich. Ich komme ja ursprünglich aus der Grafik und weiß den Wert eines Buches zu schätzen.

Vielen Dank für eure Hinweise
Mari0

PS: Vergessen: Vorkenntnisse 0, Motivation hoch, und meine Nr. 1000 :)
PS1: Anwendungsgebiet (noch) unbekannt, sprich, was ich machen möchte. Ich möchte die Dinge verstehen, die im Hintergrund ablaufen, die Dinge verstehen, meine Augen sehen, wenn ich den Finder öffne, eine Website öffne, was dahintersteckt. Interesse ist da, arbeite seit 1997 mit Macs und seit 23 Jahren mit Computern. Bin ich alt geworden. :)
 
Zuletzt bearbeitet:
:eek: zuallererst: UNIX ist eine Familie von Betriebssystemen und definitiv keine Programmiersprache
zuallerzweit: (x)html ist eine Auszeichnungssprache zur Textgestaltung und ebenfalls keine Programmiersprache

Ansonsten sind Programmiersprachen Werkzeuge, sprich man nimmt eine der Sprachen die am besten zum Problem passen. Deine Frage ist nun, womit lerne ich am besten den Einstieg in das Programmieren und damit hast Du eine schöne Streitfrage gestellt :D

Die Idee zunächst nicht mit einer Compilersprache zu beginnen (C,C++ oder Objective-C) halte ich für richtig. Perl kann ich für Anfänger nicht empfehlen. Man kann in Perl so ziemlich alles machen was man möchte und damit sehr gut sehr viele Fehler kombinieren ohne es zu merken. Perl ist, nach meiner Sicht, nichts für den Anfänger!

Mit Python oder Ruby zu beginnen ist schon eine gute Wahl.

Python bietet sich an, weil es simpel strukturiert ist, der Sprachumfang klein ist, die Verbreitung groß ist und man damit sehr schnell Dinge erstellen kann die man im täglichen Umfeld auch gebrauchen kann.

http://www.python.org/

Ruby bietet sich an, weil dessen OO-Ansatz etwa dem von Objective-C entspricht, es weit verbreitet ist und man damit eine sehr fundierte OO-Ausbildung erhalten kann. Auch in Ruby kann man sehr schnell Dinge erstellen die man in täglichen Umfeld nutzen kann. Dier Lernphase dürfte jedoch etwas länger dauern, denn Ruby bringt so einiges an redundanten Mechanismen mit. Dafür ist die Ruby-Community recht aktiv! Auch kann man bei Ruby die ersten Geh-Versuche in einer interaktiven Shell machen, was die ersten Lernschritte erleichtert. Sicher ist Ruby der schwierigere Weg, ich mag aber Ruby deutlich lieber als Python ( das ist rein subjektiv).

http://www.ruby-lang.org/de/

Ein gutes Buch für Ruby kann ich auch empfehlen: click

Verwende von Anfang an einen Editor mit Syntax-Highlighting, das spart Zeit bei der Fehlersuche. IDEs ( wie Eclipse oder Netbeans) zeigen Dir sogar beim Schreiben der Programme bereits mögliche Fehler an. Allerdings muß dafür dann zusätzlich das Verwenden dieser IDEs auch noch lernen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Rul
Danke, ich wusste, ich verwechselte etwas oder zweierlei. Hatte Perl mit Ruby verwechselt. Da ich wirklich schon längere Zeit mit Recherche damit verbringe, werde ich mich diesbezüglich auch daran halten. Also Python und Ruby. Klingt jetzt vielleicht blöd, aber ich freue mich darauf. :)

Eine kleine Empfehlung vielleicht doch noch, denn das fand ich bisweilen noch nicht. Gibt es eine Lektüre, die die Begriffsdefinitionen erklärt, also zum Beispiel so Grundlegendes, wie du geschrieben hast, dass UNIX keine Programmiersprache ist, Auszeichnungssprache, Syntax-Highligting, IDE usw. Sozusagen ein Wörterbuch für's Programmieren. Natürlich in gedruckter Form, möglichst in Deutsch (ja, ich weiß...)

Danke, Mari0

Und danke für die Links, sind schon seit Längerem in den Tabs.
 
So eine Art Nachschlagewerk kenne ich nicht, außer vielleicht Wikipedia, wo auch solche Begriffe erklärt werden.
Ich persönlich würde nur eine in deutsch verfasste Doku oder eine originale englische Doku verwenden, aber keine, die aus dem Englischen ins Deutsche übersetzt wurde. Da habe ich schon Schoten erlebt, die scheinbar von Nichtprogrammierer übersetzt wurden. Da wurden Begriffe der Sprache ins Deutsche übersetzt, die man lieber im Original belassen hätte.

B.
 
Zurück
Oben Unten