1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

gute XCode tutorials oder Bücher

Dieses Thema im Forum "OS X-Developer" wurde erstellt von KaeseGewitter, 10.07.06.

  1. KaeseGewitter

    KaeseGewitter Pferdeapfel

    Dabei seit:
    01.04.06
    Beiträge:
    78
    ich programmiere schon seit mehreren Jahren allerdings bisher nur mithilfe von Microsofts Entwicklungsumgebung. Nun kam mein switch zu Apple und ich möchte wieder anfangen zu programmieren, deshalb bin ich auf der Suche nach einem Tutorial oder einem Buch, welches mir Apples Entwicklerumgebung XCode etwas näher bringt, sodass ich das Potential entdecken kann, welches in ihr steckt. Daher möchte ich gerne wissen, welche Tutorials oder Bücher ihr mir empfehlen kann, sodass ich einen guten einstieg in XCode erhalte
     
  2. Bölzebub

    Bölzebub Querina

    Dabei seit:
    27.05.05
    Beiträge:
    180
    Schau die mal Become an XCoder an. Ich hab zwar nur mal kurz rein geschaut, aber es sah zumindest als Einführung ganz brauchbar aus.
     
    bezierkurve gefällt das.
  3. KaeseGewitter

    KaeseGewitter Pferdeapfel

    Dabei seit:
    01.04.06
    Beiträge:
    78
    das sieht schonmal gut aus, habs mir ausgedruckt und werde es die Tage durcharbeiten. Wenn jemand noch Tutorials hat, soll er sie melden;)
     
  4. Der Jan

    Der Jan Stechapfel

    Dabei seit:
    27.08.04
    Beiträge:
    160
  5. KaeseGewitter

    KaeseGewitter Pferdeapfel

    Dabei seit:
    01.04.06
    Beiträge:
    78
    kann ich eigentlich ein Programm, dass eine Cocoa Oberfläche beinhalten soll, auch in C++ schreiben und nicht in Objective-C (hab in C++ mehr erfahrungen, da es eben für MFC üblich ist)?
     
  6. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Klar geht das, du kannst mit C und C++ in deinem Code herumwerkeln. Um allerdings auf die API zuzugreifen bräuchtest du dann wieder Objective-C, also wirst du nicht darum kommen. Alternativ zu Cocoa gibt es auch Carbon, welches du nur mittels C und C++ benutzen kannst, allerdings wirst du damit kaum Spass haben. Cocoa nimmt dir wirklich sehr viel Arbeit ab, so dass es sich lohnt die nicht schwere Programmiersprache Objective-C zu lernen und sich in die Besonderheiten der API einzulesen.
     
  7. Peter Maurer

    Peter Maurer Carmeliter-Renette

    Dabei seit:
    16.03.04
    Beiträge:
    3.274
    Stimme zu. Und mit etwas Glueck und/oder Verschrobenheit erkennt man sogar die Schoenheit der Objective-C-Syntax. :)

    Deshalb wuerde ich empfehlen, immer von einem Cocoa-Programm-Geruest auszugehen und dort dann Codeschnipsel <provozier>niederer</provozier> Sprachen einzusetzen, wo noetig oder gewuenscht. So mach' ich das jedenfalls immer.

    @squart: Was ist denn nun mit squart.de? Meine 10 Euro setzen langsam Schimmel an... ;)
     
  8. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Evtl. sind folgende Links noch interessant:
    http://www.unsanity.org/archives/000024.php
    http://www.oreillynet.com/cs/user/view/cs_msg/3248

    Oder Kurz: Mit Carbon kannst du mehr machen, (etwas) leichter portieren und wirst auch mit Sicherheit sehr lange von Apple unterstützt werden.
    Mit Cocoa kannst du auch auf Carbon zugreifen, hast aber die volle Bandbreite an Apples zeit- und nervensparenden Technologien (wie CoreData, Bindings,...) sowie eine ziemlich saubere API, welche verglichen mit Carbon schnell gelernt und verstanden ist.
    Carbon sollte man deswegen aber noch lange nicht als veraltet oder überflüssig darstellen.

    Ich denke daran, nur kann ich bis in ~ 4 Wochen nicht an Entspannung denken und erst recht nicht an solch einen Luxus ^^. Grund: Partielle & totale Differenzierbarkeit sowie Taylor-Formeln sind sicher Thema einer schriftlichen, evtl. sogar mündlichen Prüfung - bis dahin muss ich ein Semester Lineare Algebra nachgeholt haben. In dem Sommerferien habe ich aber Zeit, massig Zeit sogar.
     
  9. KaeseGewitter

    KaeseGewitter Pferdeapfel

    Dabei seit:
    01.04.06
    Beiträge:
    78
    Habt ihr denn vielleicht noch ein Carbon Tutorial auf Lager, sodass ich die beiden Varianten vergleichen kann?
     
  10. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    [Hil02] Hillegass, Aaron: Cocoa Programming for MacOS X. Addison-Wesley, Boston, 2002. Es gibt eine Neuauflage, die geht auf die Neuerungen ein (u.a. Xcode), das Buch ist noch für die alte IDE.
    [Koc03] Kochan, Stephen G.: Programming in Objective-C. Sams Publishing, 800 East 96th Street, Indianapolis, Indiana 46240, November 2003.
     
  11. KaeseGewitter

    KaeseGewitter Pferdeapfel

    Dabei seit:
    01.04.06
    Beiträge:
    78
    ich merk schon ihr mögt C++ nicht sonderlich ;) Was ist eigentlich der große Unterschied zwischen den beiden, jetzt mal von der Verbreitung und dem Syntax abgesehen. Ich würd gerne wissen, wo Objective-C seine stärken hat.
     
  12. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    Objective-C orientiert sich stark an SmallTalk, hat aber einige Nachteile gegenüber SmallTalk und C++. Während SmallTalk Bytecode benutzt und schon immer Garbage Collection hatte, kennt dies Objective-C nicht bzw. wird erst noch eingeführt.

    Die Vorteile von Objective-C sind schnell aufgezählt, dynamisches Dispatching der Methoden, Anbindung von C Funktionen (Ist nur ein Vorteil gegenüber SmallTalk, aber selbst darüber kann man streiten. SmallTalk erlaubt auch die Verwendung von C APIs über spezielle Erweiterungen, die dann proprietär je nach SmallTalk Umgebung sind.), geringer Sprachumfang. Die Compilezeiten sind gegenüber C++ geringer.

    Nachteile gegenüber C++:
    Keine Unterstützung von systemnaher Programmierung, hierzu muß man komplett auf C zurückgreifen, keine echten Exceptions, keine Mehrfachvererbung, keine Templates, kein statisches Dispatching von Methoden, keine direkten Methodenaufrufe (daher auch keine Optimierung derselben), keine Objekte auf dem Stack möglich, kein RAII, kein statisches Metaprogramming möglich, kein Overloading von Operatoren/keine eigenen Operatoren, ...

    Das läuft darauf hinaus, daß Objective-C durch die dynamisches Sprachkonstrukture einige wenige Probleme leichter lösen läßt, hier sei nur exemplarisch auf das Chain of Responsibility Pattern verwiesen, aber man erkauft sich das durch größeren Overhead und eine unnötige Verringerung der Stabilität des Programmes. Fehler kann man "dank" des dynamisches Dispatchings vielfach nur während der Laufzeit finden, selbst wenn man auf Grund des Design gar kein dynamisches Dispatching braucht.

    Aus Sicht der Stabilität sollte man in einem Programm nur dann dynamisches Elemente verwenden, wenn es sich nicht vermeiden läßt, da man so möglichst viele Compilezeitfehler im Gegensatz zu Laufzeitfehler bezüglich möglicher Typfehler hat. Da man selbst mit Testcode nicht alle diese Fehler finden kann, verringern Programmiersprachen mit dem SmallTalk Paradigma die Stabilität der Software. Ada bzw. SPARK geht den anderen Weg, in SPARK gibt es KEINERLEI dynamischer Sprachkonstrukte, so daß man mit dem erfolgreichen Compilieren die Übereinstimmung mit der Spezifikation herbeigeführt hat. SmallTalk ist davon das andere Extrem.

    P.S. Auch wenn ich Objective-C für eine der schlechteren Programmiersprachen halte, ist es immer noch der beste Weg mit Cocoa und Objective-C Programme für MacOS X zu schreiben.
     
  13. KaeseGewitter

    KaeseGewitter Pferdeapfel

    Dabei seit:
    01.04.06
    Beiträge:
    78
    Wenn Objective-C solche Nachteile hat, wieso verwendet Apple dies als ihre Hauptprogrammiersprache?
     
  14. Der Jan

    Der Jan Stechapfel

    Dabei seit:
    27.08.04
    Beiträge:
    160
    Weil es DIE perfekte Programmiersprache nicht gibt.

    Die meisten Nachteile existieren mehr oder weniger nur auf dem Papier. Nicht viele Programmierer stoßen auch wirklich an diese Grenzen. Ist halt auch immer eine Frage des Anwendungsbereichs. Die meisten Basic-Derivate haben z.B. noch wesentlich mehr Nachteile, bieten aber durch den begrenzten Funktionsumfang einen schnellen Einstieg auch für nicht Fachleute. So ist Visual Basic z.B. unter BWLer recht beliebt. Der Erfolg einer Software-Plattform hängt eben auch in erster Linie davon ab, ob es ihr gelingt auch Fachleute ohne tiefgehendes IT-Wissen einen Einstieg zu bieten.
    Das war wohl auch die Intention bei Obj-C.
     
  15. KaeseGewitter

    KaeseGewitter Pferdeapfel

    Dabei seit:
    01.04.06
    Beiträge:
    78
    ok, was empfehlt ihr denn, ich möchte mich nach meinem Ausflug über die Anwendungsprogrammierung etwas näher mit der Spieleprogrammierung auf dem Mac beschäftigen. Ist es dann auch sinnvoll noch Objective-C programmieren oder werden alle Spiele in C++ programmiert?
     
  16. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    Das ist historisch bedingt. Als Objective-C entworfen wurde, da war C++ noch nicht auf dem Stand von heute und SmallTalk kämpfte mit den Resourcen damaliger Computer.

    Apple hat die Fusion mit NeXT hinter sich, mit NeXT kam auch OpenStep (Cocoa) zu Apple, welches Apple nun unter MacOS X als wichtiges FrameWork benutzt. OpenStep ist vollständig in Objective-C geschrieben. Auf Grund der Unterschiede zwischen C++ und Objective-C ist es nicht möglich Objective-C durch C++ zu ersetzen.

    Hinzu kommt, daß viele mit Multiparadigmenprogrammiersprachen wie Ada oder C++ schlicht weg überfordert sind, weil die Sprachen einfach zu viele unterschiedliche Konzepte unterstützten, und das die betreffenden Personen nicht lernen wollen oder können.
     
  17. MatzeLoCal

    MatzeLoCal Rheinischer Bohnapfel

    Dabei seit:
    05.01.04
    Beiträge:
    2.421
    Aus meinen "Leiden" der vergangenen Wochen kann ich nur sagen, dass es nix schlimmeres gibt, einer GarbageCollection auf Gedei und Verderb ausgeliefert zu sein.
    Wenn dem Programmierer die Kontrolle genommen wird, dann ist das mal garnichts gutes und ich sehe die GC mittlerweile als Nachteil und nicht als Vorteil.

    Sehe darin keinen Nachteil. Objective-C wird als "Erweiterung von C" verkauft und darum ist das kein Problem.

    C++ kenne ich jetzt dazu zuwenig, aber gibt es die da?

    gibt es z.B. in Java auch nicht.. und Mehrfachverrbung ist nichts schönes.. IMHO!

    Du wirst kaum eine Sprache finden, die das alles bietet.

    Für mich gehört Obj-C zu einer der "durchdachteren" Sprachen. Die Syntax finde ich sehr gut, Eingewöhnungsphase vorausgesetzt. Ausserdem wird dem Entwickler ermöglicht, dass wenn die Möglichkeiten von Obj-C erschöpft sind, er auf C zurückgreifen kann...
     
  18. blutaermer

    blutaermer Ingrid Marie

    Dabei seit:
    31.12.03
    Beiträge:
    273
    buchtipps:
    'programming in objective-c' von kochan ist glaube ich das beste um objective-c richtig kennen zu lernen (ich meine _nicht_ cocoa, dafuer kann es bessere buecher geben).

    um xcode kennen zu lernen hilft eventuell 'step into xcode' von anderson weiter. ein paar kniffe finden sich auf jedenfall da drin.

    problem ist, das xcode viel mehr im wandel ist als objective-c. das letzte buch kann also nach der naechsten wwdc schon partiell veraltet sein.
     
  19. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Da wirst du nur schlecht etwas finden, habe vor längerem danach gesucht und Carbon ist anscheinend nicht mehr so aktuell, dass jemand es für sinnvoll hält eines zu schreiben.

    Somit bist du der Apple Dokumentation (http://developer.apple.com/documentation/Carbon/index.html) ausgeliefert oder aber den etwas älteren Büchern wie:
    http://www.amazon.de/gp/product/0596001614/028-8721157-3034952?v=glance&n=52044011
    http://www.amazon.de/gp/product/0672322676/028-8721157-3034952?v=glance&n=52044011
    http://www.amazon.de/gp/product/3826608410/028-8721157-3034952?v=glance&n=299956&s=gateway&v=glance

    Im Web findest du noch ein paar hilfreiche Artikel unter www.stepwise.com, aber Summa Summarum findest du sehr wenig. Daher ist der Einstieg in Carbon wirklich schwer.

    Blutaermers Buchtipp kannst du trauen, dies "Programming in Objective-C" ist ein wirklich klar strukturiertes Buch und gehört zu meiner Lieblingsfachliteratur.
     
  20. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    Man muß das im Kontext sehen. SmallTalk ist eine Programmiersprache für eine höhere Abstraktionsebene, für Systemprogrammierung bietet SmallTalk keinerlei Unterstützung. Es gibt verschiedene mögliche Implementationen für GC, die neueren haben deterministisches Laufzeitverhalten. In diesem Rahmen ist GC nicht unbedingt schlecht.

    Wenn man systemnah programmieren will, dann ist GC eher hinderlich. Aber in diesem Fall liegt bei persönliche Präferenz eh nicht bei SmallTalk/Objective-C.
    Ada und C++ erlauben es sehr viel besser das Laufzeitverhalten des Programmes zu steuern.
    Das ist ein gravierender Nachteil, da man sehr viel leichter Fehler im Programmcode einbauen kann. C++ bietet hier fast alle Sprachkonstrukte auch bei systemnaher Programmierung, das ist eindeutig besser als C.
    Ja, es gibt vollwertige Exceptions in Objective-C ist das nur rudimentär vorhanden.
    Objective-C ist weder Fisch noch Fleisch, für das Programierem auf hohem Abstraktionsniveau finde ich SmallTalk besser und für systemnahes Programmieren sind Ada und C++ deutlich besser geeignet. Wobei beiden nur dynamisches Dispatching gegenüber SmallTalk fehlt -> Reflection Pattern.
     

Diese Seite empfehlen