Einsteigerbuch für Fortgeschrittene? Oder Forgeschrittenenbuch für Einsteiger?

falkgottschalk

Aktives Mitglied
Thread Starter
Dabei seit
22.08.2005
Beiträge
24.076
Reaktionspunkte
1.619
Nachdem der heutige Sonntag mit schönem Wetter angefangen hat, wurde mein angeborenes Misstrauen entsprechend geweckt und ich habe mich innerlich auf die erste wochenendübliche Regenschauer eingestellt. Die Wartezeit wollte ich mir dadurch verkürzen, dass ich mich etwas tiefer in die Programmierung meines Mac mit XCODE vertiere. Ich habe also daraufhin den heutigen Sonntag mehr oder weniger damit verbracht, mich durch die Doku von Apple und das Internet zu kämpfen und gleichzeitig Dauerversuche zu unternehmen, wie viele Crashreports ein G5 denn so pro Stunde schafft. (Das ist übrigens ganze Menge...)
Zwischendurch wühlte ich mich durch die beiden (nach Titel zumindest) passenden Bücher von Amazon zu dem Thema. Dank der zu 100% aus Anglizismen bestehenden Literatur konnte ich meine Englisch-Kenntnisse deutlich verbessern.

Das "Mehr oder Weniger" wurde dann ein "Mehr und weniger": ich habe mehr gelesen/gesurft und dafür weniger über die Dinge erfahren, die mir auf den Nägeln brennen.

Vielleicht sollte ich an dieser Stelle erwähnen, dass ich unter anderen Betriebsystemen / Umgebungen schon recht lange vor mich hinprogrammiere. Und Programmieren ist irgendwie wie Autofahren: wenn man es erst mal raus hat, dann spielt es keine große Rolle mehr, ob man am Flughafen einen BMW,Audi oder Opel bekommt. Jedenfalls dachte ich das bis heute Morgen. Am Vormittag kamen mir so leichte Zweifel - das war etwa der Moment, als ich entdeckte, dass Apple mit seinem Cocoa - im übertragenen Sinn - das Zündschloss in die Reserverad-Mulde verlegt hat.
Also das ist irgendwie alles anders.

Was ich Euch damit sagen will:
Wo zum Henker bekomme ich sinnvolle Dokus zum Thema Programmierung mit Cocoa, die quasi die Lücke zwischen Einsteiger-Basics und fertigen Programmen schließen - und das in der Form, dass die Sachen, die jeder braucht, als PDF und Codeschnipsel greifbar sind?
Eine Doku für Leute, die schon programmieren können und das, was sie können und wissen, nur mit XCode nachbauen wollen (die Pascal- Delphi - ABAP-Programmierer wie mich z.B.)? So Step-by-Step-Anleitungen?

Ich brauche so essentielle Sachen wie:
- Speichern von Dateien. Die beliebte Adressverwaltung zum Üben ist ja mit dem InterfaceBuilder schnell gemalt, der Mumpitz mit den Outlets ist auch ganz nett (zumindest kann man sich das merken, auch die Connections) - aber wie bekomme ich die Daten auf die Platte?
- Was mache ich mit vielen Daten? Hat OSX so etwas wie eine Datenbank / indizierte Zugriffe / Bayer-Bäumchen eingebaut oder muss ich mir die sonstwo organisieren? Oder gar selber zusammenpointern?
- wie zum Henker bekomme ich ein modales Fenster hin?
- eine einfache Popup-Meldung am Bildschirm?
- Deutsche Standard-Menüs?
- wie komme ich an Daten, die in einer lokalen / entfernten mySql-Datenbank drin sind?
- wie schicke ich ein Formuar auf den Drucker, so z.B. eine Rechnung mit Kästchen und Rähmchen und so?
- Was wollen mir die 178 Fenster sagen, die beim "Build" bzw. "Debuggen" auftauchen? Wo fange ich an zu graben, wenn es kracht und ich nur ein "Exception raised" zu sehen bekomme?

Wahrscheinlich hat Apple das alles irgendwo in seinem 900-GB-Rundum-Sorglos-Paket vergraben (natürlich auf 3.456 PDF verteilt) - aber ich finde da keinen Punkt zum Anfassen.
Es ist leichter, einen Pudding an die Wand zu nageln, als bei der Mac-Programmierng einen Einstieg zu finden.

Die Literatur, die ich nun in Form von Büchern, PDfs, Ausdrucken und Referenz-Library um mich herum aufgetürmt habe, kann ich leicht in zwei Stapel aufteilen: den einen, der bei Adam und Eva anfängt und in etwa beschreibt, wie herum man ein Auto auf die Strasse stellen muss. Der andere Stapel beschreibt dagegen, wie man mit Jordies Hilfe die Phasenverschiebung des Heisenberg-Kompensators im Maschinenraum der Enterprise neu kalibrieren kann ohne den Antimaterie-Fluss zu unterbrechen. (Das wollte ich zwar immer schon mal wissen, aber mir fehlen da noch einige Basics im Vorfeld. Ausserdem habe ich Angst vorm Beamen...)

Durch das entsprechende Forum bin ich natürlich auch durch - da kam ich leider nicht weiter.

Also: wer hat hier einen hilfreichen Tip, wie ich diesen gordischen Knoten knacken kann?
 
  • Gefällt mir
Reaktionen: LarsAC
Ich kann dir leider nicht helfen aber ein Kompliment für deinen sehr unterhaltsamen Beitrag!
 
Wahrscheinlich hat Apple das alles irgendwo in seinem 900-GB-Rundum-Sorglos-Paket vergraben (natürlich auf 3.456 PDF verteilt) - aber ich finde da keinen Punkt zum Anfassen.

Das hast Du richtig erkannt ;)

Aber mal zum Thema. Das Buch, das Du suchst gibt es wahrscheinlich nicht.

Was Du machen kannst, ist die Cocoa Guides Seite bei Apple mal von oben bis unten anzusehen: http://developer.apple.com/documentation/Cocoa/index.html

Und dann muss man sagen, dass sich der Cocoa Profi nur dadurch vom Anfänger unterscheidet, dass er weiss, wo er mit dem Suchen anfangen muss.

Leider kann ich Dir nur die Empfehlung geben, ein Anfängerbuch von Anfang an zu lesen. Ich habe mir das auch wieder angewöhnt, Programmierbücher von Anfang bis zum Ende zu lesen -- man wundert sich manchmal: Da steht auf den ersten fünf Seiten eines Anfängerbuchs die Antwort auf eine Frage, die man schon lange gesucht hat.

Wenn Dein Abstraktionsvermögen hoch ist, dann möchte ich Dir durchaus ein veraltetes Buch ans Herz legen: "Building Cocoa Applications" von Mahoney & Garfinkel. Gegen Porto leihe ich Dir das auch gerne mal aus.
Es hat den Nachteil, dass es ziemlich veraltet ist was die APIs und Werkzeuge angeht.
Es hat aber einen Vorteil, dass es Programmieren für den Mac ziemlich grundsätzlich angeht.

Sonst gebe ich die Standardempfehlung:
http://bignerdranch.com/products/cocoa1.shtml

Und da ich ja die Konkurrenz persönlich gut leiden kann, auch der Hinweis auf: http://www.cocoading.de/Buch/cocoading-Buch.html

Dann aber kurz zu Deinen Fragen:

* Speichern:
Viele Cocoa Klassen können das selber, z.B. NSData writeToFile. Das verwirrt viele Leute. NSString und andere können das auch.
Klassisch gibt es natürlich NSFileHandle, aber niemand haut Dich, wenn Du in einem Cocoa Programm einfach POSIX IO nimmst

* Integrierte Datenbank?
Aber ja, das Zauberwort heisst CoreData

* Modals Fenster / Popup Meldung
http://developer.apple.com/documentation/Cocoa/Conceptual/Sheets/index.html

* Was meinst Du mit "Deutschen Standard Menüs"?

* SQL
Googlen: Cocoa SQL

* Drucker:
Hillegass

* 178 Fenster
Preferences und Workspace Einstellungen in Xcode

Sorry das ich mich da kurz gefasst habe, aber es sollten ja nur Pointer sein

Alex
 
Auch wenns nicht weiter das Thema behandelt: Ein sehr guter Beitrag, der meinen Ärger über den unqualifizierten Komentar davor ("Ich kann dir leider nicht helfen aber ein Kompliment für deinen sehr unterhaltsamen Beitrag!") schnell wieder vergessen lässt... Ich frage mich echt, warum Leute, die zu einem Thema nicht weiterhelfen können und nichts sinnvolles zu sagen haben, das immer wieder dokumentieren müssen.
 
Das hast Du richtig erkannt ;)

Aber mal zum Thema. Das Buch, das Du suchst gibt es wahrscheinlich nicht.

Na ganz toll. Warum denn nicht?


Was Du machen kannst, ist die Cocoa Guides Seite bei Apple mal von oben bis unten anzusehen: http://developer.apple.com/documentation/Cocoa/index.html
Sorry das ich mich da kurz gefasst habe, aber es sollten ja nur Pointer sein Alex


Danke für die detaillierten Hinweise, da werde ich mal weiter herumgraben.
In der Doku von Apple steht natürlich alles drin - aber dennoch habe ich z.B. unendlich lange gebraucht um gestern beispielsweise ein NSTableview mit Inhalt in meiner "Anwendung" zu füllen. Es gibt eine 75-seitige Klassenreferenz, aber nirgendwo ein "Beispiel am Stück".
Und genau das nervt.
Es wäre so viel einfacher, wenn die 5-6 notwendigen Schritte da erklärt wären.

Naja, dann werde ich wohl die beiden Stapel (siehe oben) doch noch einmal mischen und komplett durchackern.

Danke!
 
Auch wenns nicht weiter das Thema behandelt: Ein sehr guter Beitrag, der meinen Ärger über den unqualifizierten Komentar davor ("Ich kann dir leider nicht helfen aber ein Kompliment für deinen sehr unterhaltsamen Beitrag!") schnell wieder vergessen lässt... Ich frage mich echt, warum Leute, die zu einem Thema nicht weiterhelfen können und nichts sinnvolles zu sagen haben, das immer wieder dokumentieren müssen.

Och, so schlimm war das aber nicht. Ich fand das OK dass man wenigstens meine Mühe fürs Tippen honoriert hat.
Vielleicht verlege ich mich, wenn das mit Cocoa nichts wird, aufs Schreiben von Kolumnen?
 
Na ganz toll. Warum denn nicht?

Weil deine Situation mir zu spezifisch erscheint, als dass man dazu ein Buch schreiben könnte

aber dennoch habe ich z.B. unendlich lange gebraucht um gestern beispielsweise ein NSTableview mit Inhalt in meiner "Anwendung" zu füllen. Es gibt eine 75-seitige Klassenreferenz, aber nirgendwo ein "Beispiel am Stück".
Und genau das nervt.
Es wäre so viel einfacher, wenn die 5-6 notwendigen Schritte da erklärt wären.

So, dann gehen wir mal zur NSTableView Reference:

Ganz weit oben steht da "Companion guides Table View Programming Guide"

Und der Link führt Dich zu einem solchen "Step By Step" Tutorial.
Was da allerdings nicht steht (glaube ich) sind Cocoa Bindings.

Als ich mit Cocoa Angefangen habe habe ich auch ein Anfängerbuch von Anfang an gelesen -- und zu dem Zeitpunkt habe ich schon "ein bischen" Erfahrung mit anderen Systemen gesammelt.
Das ist so, da musst auch Du durch.

Alex
 
…So, dann gehen wir mal zur NSTableView Reference:

Ganz weit oben steht da "Companion guides Table View Programming Guide"

Und der Link führt Dich zu einem solchen "Step By Step" Tutorial.


Erst mal danke, diese Referenz-Library ist auch noch einen Abstecher wert.
Die ging mir doch gestern glatt durch die Lappen, ich hatte mich auf die 1.400 PDF im Doku-Ordner gestürzt und die Companion-Links sind da natürlich nicht drin...
So richtig step-by-step ist das zwar auch nicht, aber die Richtung ist gut - das könnte sich zu dem "Griff zum Anfassen" entpuppen.

Vielen Dank dafür!
 
WIE WÄR'S WENN DU DIR EINFACH MAL DAS TUTORIAL AUF DEVELOPER.APPLE.COM ANKUCKST?
:motz:

Alex
 
Ich vertrete da einen anderen Ansatz:
Schau Dir REALBASIC an. http://www.realsoftware.com/download/
Download includes:
Latest versions of
- REALbasic 2007
- Documentation
- Example projects
- Plugins and utilities
Ich habe das mal angetestet, hat den "Look & Feel" von MS Visual Studio (ja, haut mich, aber ich halte das für intuitiv und RAD-geeignet).
Die Community ist auch übersichtlicher:
http://www.realsoftware.com/community/resources/

Auf meinem G4 damals habe ich RealBasic verwendet - wirklich angenehm. Ich persönlich konnte mich beispielsweise in XCODE schon nicht damit anfreunden, eine GUI zu malen und warum zum Teufel muss ich dann herumsch... um einem Button seinen "Clicked"-Event zu coden? Ich schweife ab. :)
 
WIE WÄR'S WENN DU DIR EINFACH MAL DAS TUTORIAL AUF DEVELOPER.APPLE.COM ANKUCKST?
:motz:

Alex

Jaja, motz mich an!:cool:

Danke für den Hinweis - die Beispiele sind da aber auch wirklich gut versteckt.
Jetzt mal ehrlich: wenn man schon 900 MB Doku runterladen muss um überhaupt etwas an Doku zu haben - warum sind da z.B. bei der Klassen-Referenz nicht wenigstens LINKS zu Beispielen drin???

Aber gut, wenigstens geht die Suche nach examples auf DEVELOPER.APPLE.COM.

Merci!
 
Ich vertrete da einen anderen Ansatz:
Schau Dir REALBASIC an. http://www.realsoftware.com/download/

Hmmm; Basic ... tja ... also wenn ich ehrlich sein soll ...
:sick:
Damit habe ich zwar "damals" mal jahrelang beruflich gearbeitet (doch, das geht, sogar auf einer DEC-VAX) aber so richtig toll fand ich das nicht.
Wenn mich OS X restlos aus der Bahn geworfen hat, komme ich darauf vielleicht wieder zurück.
Auf jeden Fall danke für den Tip.
 
Jaja, motz mich an!:cool:

Ich reagiere allergisch, wenn in jemand rumschreit (ALLES IN CAPS) ;)

Alex

P.S.: Habe heute "Objective-C und Cocoa" von Rodewig/Negm bekommen. Das setzt ziemlich tief an, ich kann mir vorstellen, dass das etwas für Dich ist.

Alex
 
Und easypeasy - wenige Zeilen Code und schon hat man ne vollständige relationale Datenbankanwendung.
Nein, weil Core Data keine relationale Datenbank ist.

Apple schreibt dazu unter "Core Data Basics"
"Core Data is not a database. Core Data provides an infrastructure for change management and for saving objects to and retrieving them from persistent storage. It is not in and of itself a database."

Ich schreibe dazu in "Objective-C und Cocoa/Core Data und Data Modelling" auf Seite 574:
"Core Data ist zu allererst keine Datenbank."

Auf den folgenden Seiten wird das wiederholt und erläutert. Im Entwicklerforum gibt es dazu auch einige Threads. Ich bin inzwischen müde geworden, das immer und immer wieder zu wiederholen. Daher die Kurzfassung:
Es war flachs, es ist flachs und es wird mutmaßlich flachs bleiben.

Ich glaube, ich schreibe dazu mal etwas im Blog.

Ich weiß nicht, wer damit angefangen hat, Core Data eine relationale Datenbank zu nennen. Es müssen aber Leute gewesen sein, die offenkundig bei der Doku nicht einmal zu dem Abschnitt "Core Data Basics" gelangt sind.

CoreData ist ultrageil aber arschlahm
Nein, ist es nich. Es ist arschlahm, wenn man es als relationale Datenbank vergewaltigt. Dann ist es arschlahm. Dann behandelt man es aber auch so, als ob man es bei der Doku nicht einmal zu den "Core Data Bascs" gebracht hat. (Sorry, nichts für ungut. Aber das Thema nervt langsam.)

Wie man übrigens am besten Core Data mittels "Dat ess doch ne relationale Datenbank" kaputt bekommt, und zwar so richtig, beschreiben die FAQs. Der Klassiker der Abfrage einer relationalen Datenbank, nämlich einen fetch-Zyklus, behandelt Apple in etwa so in der Doku:
"How do I fetch the instances of Entity B related to a given instance of Entity A?
You don’t. "
Aha! Kein fetch? Warum nicht?

a) Core Data ist zu allererst keine Datenbank.
b) It is not in and of itself a database.
c) Wenn du jedes Laufzeitverhalten zielsicher in die Knie zwingen willst, wäre das eine ausgesprochen taugliche Methode. Man muss sich nämlich nur überlegen, was Core Data dann macht.

Sorry, noch einmal, aber ich kann es echt nicht mehr hören.
 
  • Gefällt mir
Reaktionen: SilentCry
Zurück
Oben Unten