Basics für Developer

  • Basics f¸r Developer

    hi,

    was brauche ich an basisinfo und wo und wie finde ich sie um Entwickler zu werden? vielleicht nach den bereichen strukturiert, die ihr bereits vorgegeben habt...

    habe mir o'riley's unix f¸r mac osx gekauft. gut zu lesen und auch f¸r rookies verst‰ndlich. mehr davon.
    wo und wie finde ich weitere anf‰ngerinfo... in deutsch? engl. fachchinesch ist sehr erm¸dend und schreckt ab, selbst wenn man es fliessend spricht.

    Ein Developer Rookies-Forum eben.

    uebrigens, klasse, dass ihr das forum aufzieht. w¸nsche euch viel erfolg und glueck

    Some sun

    Flo
  • Es gibt inzwischen einige B¸cher ¸ber Cocoa - AUCH in Deutsch (zB. Hillegrass). Einfach mal nach "Cocoa" in einem der groflen B¸cherversender suchen.

    Eine sehr gute (englische) Einf¸hrung ist "Vermont Recipes" - das und viele andere gute Sachen finde man unter stepwise.com ...

    Wichtiger Tipp:[B]

    Die Doku von Apple ist Dreck, wenn man was nicht versteht, dann liegt das *NICHT* an einem selber sondern an diesem Mist (dies gilt fast immer).

    Das ist umso schlimmer, da Cocoa f¸r viele neue Konzepte einf¸hrt, die man erst mal "verdauen" mufl. Wenn man das nicht tut, dann arbeitet man gegen Cocoa und das tut richtig weh...
    :D
    Es gibt genau 10 Sorten von Menschen.
    Die eine kennt das binaere Zahlensystem, die andere nicht.
  • RE: Basics f¸r Developer

    Also ich habe mir f¸r den Einstieg auch alle mˆglichen B¸cher gekauft und mich dann einfach vor den Rechner gehockt und losgetippelt. Zusammen mit der Developeranleitung bei Apple und der Hilfe habe ich mich dann reingearbeitet. Vieles ist mir auch heute noch nicht klar, das liegt aber daran, dafl alles so umfangreich ist und das Dictionary auch nicht gerade viel her gibt. Da kˆnnte Apple mit einem Update der DEV Tools nachbessern. Ansonsten gibts eben noch diverse Webseiten, die aber alle in Englisch sind.
  • RE: Basics f¸r Developer

    Hi,

    das englisch ist auch nicht wirklich das kernthema, spreche den halben tag im job englisch und die vokabeln kommen mit der zeit.

    die complexit‰t des themas ist es, die mir zu schaffen macht. ich besch‰ftige mich jetzt 2 jahre mit dem mac und habe aus dem grund keinerlei vorkenntnisse.

    osx aqua gui habe ich jetzt verstanden, jetzt arbeite ich mich langsam unter die oberfl‰che.
    die zusammenh‰nge fehlen mir oft um das licht ins dunkel zu bringen und da es teilweise stunden kostet, bis ich mir den zusammenhang eines absatzes erarbeitet habe.

    da ich nicht hauptberuflich programierer bin, fehlt auch irgendwann die lust, wenn die augen tr‰nen, weil du schon den ganzen tag auf den bildschirm starrst und nur langsam dem ziel n‰her kommst.
    ich bin der festen ¸berzeugung, dass viel mehr applefans sich mit entwerfen und programmieren besch‰ftigen w¸rden, wenn der weg zum licht nicht so steinig w‰re.
    die developer tools sind ein prima anfang und learning by doing bringt viel mehr .
    wenn es aber eine quelle gibt, die dir einen grund¸berblick verschafft, so dass die sucherei wegf‰llt. w‰re der sache sicher gedient.
  • RE: Basics f¸r Developer

    Original von Flo
    Hi,

    das englisch ist auch nicht wirklich das kernthema, spreche den halben tag im job englisch und die vokabeln kommen mit der zeit.


    Dann schau unter stepwise.com nach "Cocoa starting point" und lad dir das "Vermont Recipes" PDF runter. Die wurden ¸brigens von einen Anwalt (afaik) erstellt, der vorher ebenfalls *nix* mit Programmieren am Hut hatte.

    DAMALS.

    Auf jeden Fall ist das sehr leichte Kost und die Konzepte von Cocoa sind sehr gut erkl‰rt. Das wirklich Gute ist, dafl alles Schritt f¸r Schritt erkl‰rt wird und wenn man sich an die Anleitung h‰lt entsteht nebenbei ein Programm, welches st‰ndig erweitert wird. Ich fand es damals wirklich toll, zumal es zu dieser Zeit von Apple nicht mal schlechte Doku gab, sondern schlicht GAR KEINE...
    Es gibt genau 10 Sorten von Menschen.
    Die eine kennt das binaere Zahlensystem, die andere nicht.
  • Hi,

    also ich kann Flo nur zustimmen, irgendwie sind cocoa dokus in englisch schwer zu verstehen, ich f‰nds echt gut wenn jemand mal ein tutorial in deutsch ¸ber OSX Entwicklung schreiben w¸rde.

    Mein Englisch ist gut und auch meine Programmierkenntnisse sind so weit das ich schon weifl was OOP ist aber in cocoa gibt es soviel neues...

    Es gab mal nen Artikel in der ct, aber der Autor hatte sich auch ganz schˆn ins fachchinesisch verloren, so dafl es schwer war da durch zu sehen. Mein Problem ist auch nicht cocoa selbst, sondern die OOP Konzepte, ich steig da nicht so ganz hinter.

    Ich habs wohl soweit verstanden, wenn das richtig ist:

    Jedes Cocoa Programm benˆtigt eine nib Datei.
    Die Oberfl‰che des Interface Builders ist eine nib Datei.
    Die Elemente der Oberfl‰che sind GUI-Objekte.
    Damit die GUI-Objekte auf Ereignisse reagieren benˆtigen wir Target-Action Verbindungen.
    Also bei Mausklick (Action) auf GUI-Objekt (Menu) f¸hre Methode (Target) aus.
    Um eigene Methoden dabei auszuf¸hren benˆtigt man Platzhalter (File's Owners - Standard OSX Methoden z.B. NSApplication) oder Steuerungsobjekte (Controller).
    Steuerungsobjekte sind vom Entwickler definierten Klasse mit entsprechenden Methoden der Art: -(IBAction)meineAktion:(id)objekt;
    Nach der Deklaration wird der Platzhalter im Interface Builder angelegt.
    Dann kann man, ¸ber die (id), die Eigenschaften des GUI-Objektes zur Laufzeit ‰ndern.
    Eine Methode eines anderen GUI-Objektes kann nur aufgerufen werden, wenn eine Outlet Verbindung angelegt wird.
    Outlets erfolgen in der Art: IBOutlet id objekt;


    Doch wo ist der unterschied zwischen File's Owner und Controllern und zwischen Outlets und AT Verbindungen?

    grufl
    IT & Art
    brainyartist

    "I'm a switcher baby, I just want you to know
    I just wanna use Macs, I'll think ya should know!"
  • Ja, im groflen und ganzen ist das richtig, was du da geschrieben hast.
    Was ich nicht so wirklich verstehe sind die "Platzhalter", wie du sie genannt hast. Es gibt Klassen, die haben Methoden und Objekte. So. Du kannst diese Klassen im Interface Builder (IB) erstellen und aber auch von auflen hereinladen. Im IB sind im Prinzip nur die Dinge so dargestellt, dass du die GUI reinh‰ngen kannst. Mehr nicht. Im Project Builder (PB) kannst du diese Methoden dann f¸llen. Doch die Definitonen sind nicht ganz so starr:

    -(IBAction)hallo:(id)sender;

    und

    - (void)hallo:(id)objekt;

    sind absolut das selbe. IBAction ist void. und ob der Parameter nun objekt oder Sender heiflt ist der Sprache scheiflegal. Das selbe gillt f¸r

    IBOutlet id *obj;

    ist absolut das selbe wie

    id *objekt;

    IBOutlet ist einfach nichts. Wird beim compilieren gelˆscht. und ob das objekt nun obj oder objekt heiflt ist nur eine Fragen deines AppDesigns und der Outlet- und Variablen-benennung. Meine, das ist auch nicht unerheblich, aber f¸r die Sache ansich egal.

    Der Controller ist nur iregndweine Klasse, die du ausersehnst, dein Prgramm zu steuern. Du kˆnntest z.B. auch noch eine Klasse Preferences anlegen, um die Preferences zu steuern. Und von Controller aus wird das dann geˆffnet und geschlossen. Der Controller ist sozusagen das zentrale Bindeglied, aber nicht das einzige. Du kannst z.B. alle Aktionen aus deinen Menus an ihn h‰ngen, aber die Einstellungen im Preferences-Fenster m¸ssen nicht an ihm h‰ngen.

    Jedes Programm ist eine Instanz der Klasse NSApplication. Diese ist immer da. An dein Progremm kannst du entweder ¸ber [NSApplication sharedApplication]; oder ¸ber NSApp gelangen. Und wieder: das ist absolut das selbe. Mit diesem Objekt kannst du dann alles mˆgliche anstellen z.B. nach den Hauptfenster fragen, es beenden, es auf ein einziges Fenster konzentrieren usw.

    Ich weis das ist etwas schwer zu verstehen, ich bin auch kein Autor, aber ich hoffe, das das hier dir ein wenig geholfen hat, das ganze zu verstehen.

    grufl
    MAX

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von M.A.X ()

  • Das IBAction (void) ist war klar (aus dem ct-Artikel), das
    -(IBAction)hallo:(id)sender;

    und

    - (void)hallo:(id)objekt;

    sowie

    IBOutlet id *obj;

    das selbe wie

    id *objekt;

    ist doch schon mal aufschlussreich. Der tauscht ja dann zur Laufzeit sowieso alles gegen Zeiger auf. Nun hab ich mal versucht nen Programm zu schreiben, das einfach den Buttontext ‰ndert, wenn man auf ihn klickt, ist mir aber nicht gelungen.

    Ich hab nen Controller erstellt und ein Action Target zum Button gemacht, sowie ein Outlet. Das heist doch nun, das ich wenn ich den Button dr¸cke, die Methode des Controllers ausgef¸hrt wird, so nun m¸sste ich doch aber auch auf die Methoden des Buttons zugreifen kˆnnen (wegen der Target Action Verbindung), wie mach ich das denn? Die Outlet Verbindung brauch ich doch gar net oder? Denn die ist ja nur f¸r die Verbindung zu anderen GUI Objekten notwendig.

    Ach und Platzhalter waren nur die Controller die von OS X selber und nicht die instanzierten Klassen.

    Ich w¸rde das wirklich gerne verstehen, wenn ihr mir helft, dann schreibe ich euch auch ein Tutorial, denn wenn ichs erstmal kapiert habe, kann ich es auch gut erkl‰ren.

    grufl.
    IT & Art
    brainyartist

    "I'm a switcher baby, I just want you to know
    I just wanna use Macs, I'll think ya should know!"
  • Axo.

    Naja, wenn du das gemacht hast, dann brauchst du nur noch das heir schreiben:

    - (IBAction)buttonClick: (id)sender
    {
    [sender setString: @"hallo"];
    }

    falls du das meinst. Und wenn du jetzt noch ein TextField als Outlet hast kannst du das ¸belst dynamisch machen:

    - (IBAction)buttonClick: (id)sender
    {
    [sender setString: [textField stringValue]];
    }

    hth

    grufl
    MAX