Mac/iPhone programmieren schwieriger als auf Windows?

tide

tide

Aktives Mitglied
Thread Starter
Dabei seit
14.01.2007
Beiträge
202
Reaktionspunkte
3
Hallo Community,

ich habe ein wenig Erfahrung in der Programmierung (PHP/MySQL, VB, C#.net/ASP.net) und wollte mich eigentlich an die iPhone-Programmierung rantasten und simple Programme erstellen. Dachte mit meinen Grundvorraussetzungen schaffe ich das.

Habe jetzt mit dem Tutorial angefangen aber nach ein paar Seiten auch wieder aufgehört.

Ehrlich gesagt bin ich wohl "verwöhnt" von C#.net, weil da alles so leicht geht. Oder gibt es einfachere, leichtere Tutorials? Kann ja nicht sein dass ich für ein "HelloWorld"-App zig Seiten lesen und ein paar Stunden verschwenden muss.

Würde mich über Hilfe bzw. Tipps freuen.

EDIT: Sorry, falls ich das falsche Forum erwischt hab. Meine Frage richtet sich direkt auf iPhone-Entwicklung. Also falls es das falsche Forum ist, bitte verschieben.

mfg
tide
 
Ich bin selber gerade dabei mich in die Objective-C Programmierung einzuarbeiten. Habe selbst 3 Jahre C++,PHP,MySQL & Actionscript hinter mir und fand Objective-C am Anfang auch etwas verwirrend. Habe mir jetzt das Buch Cocoa: Programmierung für Mac OS Xvon Aaron Hillegas geholt und lerne nun mehr und mehr Objective-C zu schätzen. Und einfache Hello-World Applikationen lassen sich damit auch schon nach ein paar Seiten erstellen.

Empfehle hierfür auch das Unterforum.
 
Also Cocoa programmierung ist schon etwas anders als c#. schwerer würde ich aber nicht sagen.
Du musst dich einfach mal durch ein paar Tutorials durchbeißen: aller anfang ist schwer.
 
Die Größte Hürde dürften zunächst Objective-C und das Grundverständnis der in Cocoa verwendeten Prinzipien darstellen. Danach ist die iPhone- und Mac-Programmierung alles andere als schwer.
 
Ich finds ein bisschen nervig, dass man native Programme mit GUI eigentlich nur mit Objective-C schreiben kann wegen dem Cocoa Interface. Unter Windows kann man da halt eigentlich alle .Net Sprachen nehmen.
 
Also ich kenne nur MFC/ATL/Win32 APIs, und im Vergleich zu Cocoa ist das Die Hölle™.

Zu .Net und C# kann ich nichts sagen.

Alex
 
Crea schrieb:

es handelt sich um ein Framework und das ist in Objective-C geschrieben ;)

Dabei werden in Objective-c Methoden der objektorientierten Programmierung verwendet die einer bestimmten Ausprägung von OO zugehören. Es handelt sich dabei um den sog. Smalltalk-Zweig der OO-Sprachen. Dem wohnen gewisse Mechanismen inne, die etwa C++ oder Java so nicht kennen.

Das erfordert zum einen ein Umlernen, bringt aber ein weit mächtigeren Sprachumfang mit hervor der es ermöglicht Dinge eleganter zu lösen.

Das Apple sich entschieden hat auf dem iPhone native Programme zu verwenden bedeutet zum einen das man mit den Programmen für die Desktop-PCs ein Framework teilen kann ( zumindest Komponenten davon) und das man den vorhandenen Programmierern für OS X den Umstieg erleichert.

Es bedeutet aber umgekehrt, das man allen Quereinsteigern zunächsteinmal die gleichen Lern-Aufgaben stellt wie bei der Desktop-Programmierung auch.

Ob man den Aufwand gehen möchte und ob man sich der Gefahr aussetzen will die App dann doch nicht vertreiben zu können ( Apple hat mit dem App-Shop ein Monopol darauf) muß jeder selbst entscheiden.
 
Zu .Net und C# kann ich nichts sagen.
C# = C++ mit Speicherverwaltung.

Ich finds ein bisschen nervig, dass man native Programme mit GUI eigentlich nur mit Objective-C schreiben kann wegen dem Cocoa Interface. Unter Windows kann man da halt eigentlich alle .Net Sprachen nehmen.
Das stimmt so nicht. Programmiersprachen unter Windows, wie die auf der CLR basierenden greifen entweder direkt auf die nativen C-APIs zu oder nehmen ebenfalls den Umweg über die C++-/MFC/ATL. Und sowas gibt es unter Mac OS auch, z. B. für Ruby und Python. Diese nutzen mehr oder minder direkt Cocoa; man ist also keineswegs auf Objective-C beschränkt.
 
es handelt sich um ein Framework und das ist in Objective-C geschrieben ;)

Das ist mir schon klar, ich meinte mit "Cocoa Interface" auch die Benutzeroberfläche.

Das es möglich ist, andere Sprachen als Objective-C zum Programmieren eines Programms mit Cocoa Oberfläche zu benutzen ist mir schon klar.
Aber bei Windows wird mir das zumindest mal einfacher gemacht, da kann ich zwischen C/C++, C# und Visual Basic frei wählen, mit jeder kann ich .Net vollwertig nutzen. Zusätzlich zu diesen Sprachen kann ich über Umwege auch noch andere benutzen.

Zumindest kommt es mir unter Mac OS so vor als würde einem da Objective-C aufgezwungen.

Zur Versöhnung soll gesagt sein, dass ich bei Mac OS nicht viel Programmiererfahrung habe, sondern mehr bei Windows.
 
Zumindest kommt es mir unter Mac OS so vor als würde einem da Objective-C aufgezwungen.

Das mag schon sein. Apples Attitüde ist durchaus: "WIR wissen, was gut für Dich ist".

Alex

EDIT: Aber es ist ohnehin das Framework, das den grossen Lernaufwand erfordert. Alles, was man erstmal in ObjC braucht lernt man an einem Tag (wenn man Java, C++ kann)

Alex
 
Crea schrieb:
da kann ich zwischen C/C++, C# und Visual Basic frei wählen

JEIN!
Das letzte mal als ich freiwillig ein 1-Frame Anwendung zu Fuß in C auf Windows gemacht habe war etwa zu Win98 Zeiten. Das hat da schon keinen Spaß mehr gemacht. Es mag möglich sein das in C zu tun, aber wer macht das!?

Wenn man frei von externen Abhängigkeiten sein will bleibt halt nur C++ - das ist bei Mac OS nunmal Objective-C! Wie below schon erwähnt hat ist der Umstieg relativ schnell gelernt ( wiewohl ich da mit üben und verstehen deutlich mehr als einen Tag ansetzen würde).

Das OS X keine Windows-Frameworks verwendet empfinde ich eher als Begrüßenswert und ein Umlernen ist somit für Dich zwangsläufig nötig! Das hat mal mit der Sprache nichts zu tun.

In der Tat ist die Zahl der Bytecode-Sprachen unter Windows größer ( eben mit dem .net-Bereich). So etwas gibt es für OS X (leider) nicht. Auch wer die Ruby/Cocoa oder Python/Cocoa-Lösungen mal ausprobiert merkt IMHO schnell das er da gleich besser pures Objective-C nehmen kann. Der Ansatz ist also klar zentralistischer, dafür coexisteiren auch nicht 7 Ansätze für eine Framework in neun Versionen. Es hat halt alles seine Vor- und Nachteile.

Ob also jemand Cocoa/Objective-C für ein Handy lernen will das ca. 3% MArktanteil hat und wo der Hersteller den Finger darauf hat ob die Appliaktion hinterher vertrieben werden darf oder nicht muß jeder selbst entscheiden. Für *mich* stünden da Kosten/Nutzen derzeit noch nicht in Relation.
 
…, oder ist es jetzt sogar Die Hölle™ 2.0?
Sogar Die Hölle™ 3.5. ;)

Ob also jemand Cocoa/Objective-C für ein Handy lernen will das ca. 3% MArktanteil hat und wo der Hersteller den Finger darauf hat ob die Appliaktion hinterher vertrieben werden darf oder nicht muß jeder selbst entscheiden. Für *mich* stünden da Kosten/Nutzen derzeit noch nicht in Relation.
Das sehe ich auch so. Allerdings sind Programmierer ohne Mac-OS-Erfahrung wohl nicht nur auf Grund des mangelnden Objective-C-/Cocoa-Kenntnisse ein Nachteil: Sie müssen noch lernen, ein Programm von oben nach unten (von der Benutzeroberfläche zum Modell) zu entwickeln. Sondern wird das iPhone-Programm eh der letzte Schrott. Ich denke, daß viele Mac-OS-Entwickler dieses Umdenken schon hinter sich haben.
 
Das es möglich ist, andere Sprachen als Objective-C zum Programmieren eines Programms mit Cocoa Oberfläche zu benutzen ist mir schon klar.
Aber bei Windows wird mir das zumindest mal einfacher gemacht, da kann ich zwischen C/C++, C# und Visual Basic frei wählen, mit jeder kann ich .Net vollwertig nutzen. Zusätzlich zu diesen Sprachen kann ich über Umwege auch noch andere benutzen.
Na aber C, C++, Objective-C, Ruby und Python (und ich glaub sogar JavaScript) sollten doch reichen. Ich hatte noch nie das Bedürfnis ein Windows GUI Programm in Brainfuck zu schreiben...
Warum soll man allerdings was anderes nehmen als Apple selbst (Objective-C)
 
Ich würde den Einsteigern in diesem Zusammenhang echt Ruby empfehlen. Man kan die Sprache auch in vielen nicht-Cocoa-Zusammenhängen benutzen, sie ist leicht zu erlernen und sehr schön strukturiert.
 
Also Cocoa programmierung ist schon etwas anders als c#. schwerer würde ich aber nicht sagen.
Du musst dich einfach mal durch ein paar Tutorials durchbeißen: aller anfang ist schwer.

unterschreib ich... ich beiß mich auch grad durch die anfänge - mag sein, dass es an den tutorials liegt (kann sogar gut sein!), aber ich finde manchmal wenn dann eher obj c einfacher und einleutender als C#. zudem lernt man in den Wikibooks über Cocoa (ok, cocoa, nicht obj c) gleich ein Programm schreiben und verwendet nicht Jahre mit if und else (ich muss zugeben, dass ich dies einfach schon kann und deshalb nicht sehr motivieren finde, wenn man das erneut durchkauen muss) - zu .NET mit C# (welches mich durchaus auch interessiert) habe ich leider noch kein praxisbezogenes Tutorial gefunden...

naja, ok, nur meine Meinung.
 
Es gab auch mal einen schönen Blog eines Switchers. Der bekam sich bei den Delegates gar nicht mehr ein.
 
Also sind die APIs immer noch Die Hölle™, oder ist es jetzt sogar Die Hölle™ 2.0?

C# ist ein Cocktail (oder Frankenstein, je nach Sichtweise) aus hauptsächlich Java, ein tick C++ und hier und da etwas von Delphi. Wobei der Delphi-Flare wohl eher am .Net-Framework liegt, als an C# (ist auch kein Wunder: http://de.wikipedia.org/wiki/Anders_Hejlsberg).

OOP ist in C# wie in Java. Abstrakte Klassen, Interfaces, alles wie gehabt.
Man kann jedoch noch einiges mehr.
Z.B. kann man sich eigene einfache Datentypen deklarieren, also die Pendants zu int, double, char, usw., Properties (get- und set-Methoden als eigenes Sprach-Konstrukt), Namespaces, Operator-Überladung, Generics, Enums und sogar Pointer.

IMHO alles was sich das Programmiererherz wünscht.


Gruß Fabian
 
Zurück
Oben Unten