Frage

Ich programmiere seit vielen Jahren in C, C++, C# und einigen anderen Sprachen, hauptsächlich für Windows und Linux, aber auch für eingebettete Plattformen.Ich habe vor Kurzem begonnen, als Nebenprojekt einige iPhone-Programmierungen durchzuführen, sodass ich zum ersten Mal seit meinen Apple-II-Tagen Apple-Plattformen verwende.Ich frage mich, was andere Entwickler denken, die zu Mac OSX, Xcode und dem iPhone SDK wechseln.Hier meine bisherigen Eindrücke:

  • Mac OS X:Sehr verwirrend, ich habe oft zu viele offene Fenster und weiß nicht, was wo ist.Zum Glück gibt es die Vogelperspektive, ohne die wäre ich verloren.Zumindest bei der Shell sind alle bekannten Dinge vorhanden, das hilft mir sehr.

  • Xcode:fühlt sich nicht so gut an wie VisualStudio oder Eclipse, die beiden Umgebungen, mit denen ich vertraut bin.Ich denke, ich könnte mich daran gewöhnen, aber ich frage mich, ob Apple mit Eclipse nicht besser dran wäre.Bevor ich die Einstellung fand, bei der alle Fenster zusammenkleben, hasste ich sie, jetzt kann ich sie tolerieren.

  • iPhone SDK:tatsächlich seltsam.Ich verstehe den Wunsch von Apple, seine Umgebung zu kontrollieren, aber in der heutigen Zeit scheint es einfach ein wenig schäbig zu sein und sie verpassen so viel, indem sie den guten Willen der Entwickler zerstören.

  • Ziel c:Ich weiß schon seit Jahren davon, habe es mir aber noch nie angeschaut.Die Syntax ist abstoßend, aber die Sprache fasziniert mich tatsächlich sehr.Ich denke, es ist ein interessanter dritter Zweig zwischen C++ und C#, die mir beide sehr gefallen.Besteht aufgrund der steigenden Beliebtheit der Apple-Technologie eine Chance, dass Obj-C aus der Mac-Sandbox ausbricht?

Bin neugierig, deine Gedanken zu lesen,

Andreas

War es hilfreich?

Lösung

Ich sitze (einigermaßen) im selben Boot wie du.Ich entwickle seit 7 Jahren in C#, seit .NET 1.0.In den letzten Wochen habe ich mir Cocoa und Objective-C selbst beigebracht.Hier sind meine Eindrücke (Note für Note mit Ihren)

  • Ich bin mir einig, dass Unordnung ein Problem sein kann.Ich neige dazu, bei der Entwicklung in XCode häufig Leerzeichen zu verwenden (platziere XCode in einem Leerzeichen, Interface Builder in einem anderen Leerzeichen, Instrumente in einem dritten Leerzeichen).Wenn Sie Leopard nicht haben (und daher keine Leerzeichen), verwenden Sie Befehl-H, um Ihr aktives Fenster auszublenden.Wenn Sie dies verwenden, werden die Dinge in der Regel ziemlich aufgeräumt (es wäre jedoch schön, wenn Sie beim Wechseln mit der Befehls-Tabulatortaste zu einer anderen App automatisch das aktuelle Fenster aufrufen könnten).

  • XCode gefällt mir immer mehr.Ich hasse Visual Studio – ich finde es instabil, langsam und einfach eine ziemlich beschissene IDE.Im Vergleich dazu habe ich festgestellt, dass XCode schnell und stabil ist und mir gefällt, wie es Ihre Dateien organisiert und filtert.Ich bin mit meinen XCode-Verknüpfungen noch nicht so vertraut, hoffe aber, dass es eine Möglichkeit gibt, schnell von einer Klasse zur anderen zu wechseln (ähnlich der Tastenkombination Strg + N in ReSharper).Intellisense könnte hinsichtlich der Darstellung für den Benutzer besser sein, aber mir gefällt wirklich, wie es im Wesentlichen eine Vorlage erstellt und Sie Strg + / drücken können, um zum nächsten Argument in einer Nachricht zu springen.

  • Ich hasse die Dokumentation in XCode.Das Hilfesystem ist scheiße, und aus welchem ​​Grund auch immer niemals findet, wonach ich suche.Am Ende google ich einfach nach allem, was ich wissen muss ...Ich hoffe, dass sie die Dokumentation verbessern.Das ist momentan mein größtes Problem.

  • Noch bin ich nicht ganz am Ziel, da ich gerade das vollständige Cocoa-Framework für Mac-Desktops durchgehe.Bisher gefällt mir wirklich sehr, was ich sehe.Eines möchte ich sagen: Es wäre schön, wenn das iPhone SDK die Speicherbereinigung ermöglichen würde ...

  • Objective-C – Ich habe es noch nie verwendet, dies ist mein erster Ausflug darin.Zuerst war ich von der Syntax und den eckigen Klammern für die Nachrichtenübermittlung etwas verwirrt, aber es gefällt mir wirklich gut.Es ist so schnell, eine Methode zu überfliegen und die Nachrichtenaufrufe dieser Methode zu sehen.Je öfter ich es verwende, desto angenehmer fühlt sich Objective-C an ...Vorlagen/Generika wären jedoch eine willkommene Ergänzung der Sprache.

Alles in allem hat mein Ausflug in die Mac-Entwicklung Spaß gemacht und ich freue mich darauf, mit der Arbeit zu beginnen (heute!yay!) an einigen echten Mac/iPhone-Projekten.

Andere Tipps

Ich stimme mit Ihren Gefühlen. Von Microsoft-Entwicklungstools (und Eclipse) zu XCode ist ein bisschen hart. XCode fühlt sich einfach ... unfertig in mancher Hinsicht. Es ist sicherlich nicht die Politur, die ich komme aus VS und Eclipse erwarten.

Das SDK ist ähnlich, viel davon schlecht dokumentiert, und es gibt eine Menge Löcher, wo man etwas wissen sollte, aber es ist einfach nicht. Der Versuch, sorgfältig Audio / Video-Datei zu steuern, die Wiedergabe ist ein Beispiel.

Objective-C ist jedoch groß. Ich mag die Sprache, trotz seiner Macken und Eigenheiten (Nachrichten zu null ist keine Laufzeitausnahme? Wirklich?) Sobald Ihre C ++ Augen auf die Syntax gewöhnen, losen typisierte anonyme Email endet eigentlich wirklich cool war, bis zu spielen mit (wenn auch etwas gefährlich und anfällig für RTEs.)

Ich möchte wirklich an springen und zu entwickeln beginnen iPhone und Apps. Ich habe ein bisschen von Motorola, Blackberry und Windows Mobile Entwicklung gemacht, die alle kühlen und Osten waren, um in mit einer guten Dokumentation, leicht zugänglich und SDKs zu installieren. Bis jetzt, ich fühle mich von Apple ein bisschen elitär in der Tatsache ist, dass es ihre Entwicklungsumgebung scheint nur auf einem Mac verfügbar ist. Ich bin auch nicht ganz ihre Lizenzkonzepte mögen. Wenn Sie tatsächlich in der Lage sein wollen, Apps zu veröffentlichen, müssen Sie durch sie gehen, und sie haben das letzte Wort darüber, ob Sie können oder nicht, oder ob Sie Ihre App als akzeptabel erachtet wird auf ihre überlegenes Produkt laufen. Es ist meine Überzeugung, dass sie es schwieriger für die Open-Source-Community machen Anwendungen zu erhalten und zu produzieren oder für das iPhone neophite, wie ich, um auch Anwendungen für die Produkte zu schreiben beginnen. Es gibt eine Menge schlechter Dinge gesagt über Microsoft, aber ich muss sagen, dass sie ihre APIs und SDKs bekommen da draußen, lange bevor ihre Produkte auf den Markt kommen und wirklich ermutigen Programmierer von allen Ebenen zu graben und Beteiligten schriftlich Apps für ihre Rahmenbedingungen zu erhalten und Betriebssysteme.

Ich habe auf ein paar kleine iPhone-Anwendungen gearbeitet, und ich bin nur erstaunt, dass sie nicht die Komponenten des Frameworks enthalten waren, die es Entwicklern ermöglichen, auf einfache Weise SOAP Web Services zuzugreifen. Wer sonst in einem Unternehmen IT-Umgebung arbeiten, um den Schmerz zu empfinden?

Ich persönlich denke, dass die Dokumentation an dieser Stelle sehr gut. An jedem Objective C-Klasse können Sie die Option Doubleclick bringen Sie die Dokumentation für diesen Begriff, und wenn es irgendwelche Beispiel Projekte, die bestimmte Klasse verwendet, die (zumindest für viele iPhone-spezifische Klassen) aufgeführt wird.

Schauen Sie auch auf Forschungs-Assistent in drehen, wenn Sie zuerst anfangen, und schalten Sie Code Sense (nicht denke, es ist standardmäßig aktiviert). Die Kombination von XCode + Interface Builder ist sehr mächtig, wenn Sie sich daran gewöhnen, und ehrlich gesagt, in einigen Jahrzehnten habe ich nie einen besseren Interface Builder in Bezug darauf, wie die Integration Code funktioniert oder die Fähigkeit, Schnittstellen zu entwerfen, die auf intelligente Weise der Größe ohne eine Tonne zusätzlicher Arbeit.

Ich bin neu auf iPhone-Programmierung und XCode auch nach vielen Jahren der Programmierung für viele Plattformen und mein Eindruck ist ziemlich nahe bei Ihnen (mit einigen Unterschieden):

  • Mac OSX: Ich Windows ca. 2 Jahre eingeschaltet vor (als Experiment) und ich habe :) - Ich glaube nicht, dass ich wieder wechseln werde. eine Unix-Grundlage zu haben, ist sehr cool und ich liebe die auffällige GUI + Ich mag die grundlegende Einfachheit der Schnittstelle. Es dauerte ca. 2 Monate zu gewöhnen, aber ich kann nicht zurück vorstellen. Ich hasse das MacBook-Tastatur-Layout und einige OSX sind allerdings Tastatur Einschränkung. Es ist schon komisch, wie ein Unternehmen, das so stolz auf seine Nutzbarkeit Erkenntnisse ist, kann mit einer solchen miesen Reihe von Entscheidungen kommen. Vielleicht sind die besten Beispiele sind nicht ein Kontextmenü (rechte Maustaste) Tastaturkürzel und die Tatsache mit, dass Sie zwei Schlüssel müssen Aufgaben wie Home zu erreichen, End, PgUp usw. Meine beste Rat ist, die Zeit zu verbringen, wie viele Tastatur lernen Abkürzungen wie möglich. Ich empfehle auch die Installation und Verwendung der folgenden 3rd-Party-Anwendungen, die im Wesentlichen meiner Mac Erfahrung verbessert: Quecksilber , Path Finder , 1Password , Things , Textmate , Text Wrangler & Transmit .

  • Xcode: Ich bin völlig mit Ihnen einverstanden. Ich denke, XCode ist eher primitiv . Ich vergleiche es mit IntelliJ IDEA, die ich mit viel Arbeit und es fühlt sich an wie Apple mindestens 7 Jahre in der Vergangenheit stecken geblieben ist:

    • Code-Navigation ist so primitiv, mit zu vielen Fenstern prallen
    • Sie haben die Maus zu verwenden, die ganze Zeit
    • Templat sehr begrenzt ist und mit keinem Verhältnis zu dem inhaltlichen oder Scoping
    • auf naiven Makro Konzepten
    • Refactoring beschränkt sich auf nur ein paar einfache Aktionen
    • Sie können nicht einmal leicht erreichen trivial Aufgaben wie Überschreiben einer Methode
    • Code Sense ist schön, hätte aber viel besser, wenn es die Eingabe verstanden ...

    Die große Ironie ist, dass ernsthafte Mac-Entwickler haben nicht einmal verstehen, dass sie ein Problem haben ... Sie werden dem Chaos so verwendet sie damit umgehen können sie nicht vorstellen, bessere Welt ... Anstatt zu helfen, XCode hält in die Quere. Ich kann mit Dutzenden von Beispielen kommen, wie diese Umgebung ansaugt, wenn im Vergleich zu modernen Java IDEs (Eclipse IntelliJ), aber ich glaube, es ist eine Verschwendung von Zeit - es scheint, wie Apple zu stolz ist, von anderen zu lernen ... der ist lustig, wenn man die Tatsache, dass die Erfinder von Java nicht schüchtern waren betrachten lernen von Objective-C . Mein einziger Rat (ich auch) ist einen tiefen Atemzug zu nehmen, wenn Sie offen XCode und lernen Sie so viel wie möglich von den Experten , die in diesem Umfeld mehr verwendet werden.

  • iPhone SDK: es ist noch schlimmer als das - wir unsere mobile App auf das iPhone vor ein paar Monaten, aber beschlossen, nicht zu stören, weil wir besorgt waren, dass Apple es aus dem App Store ablehnen könnte, und Sie können nicht im Voraus wissen (sie haben hier auf Stackoverflow )

Ich kam aus einem C # Hintergrund so gut und habe mit dem iPhone SDK seit Beta 2 gearbeitet Ich bin vollkommen einverstanden mit Cranley über VS ein bisschen klobig im Vergleich zu Xcode zu sein. Xcode ist WAY anders und völlig fremd, wenn Sie es benutzen. So war VS am Tag allerdings zurück. Sobald Sie durch die Lernkurve erhalten, ist es eine wunderbare Erfahrung. Die Apps Ich entwickle Verwendung C # Server-Seite (Web-Service) und ich absolut hasse VS zu wechseln den Web-Service-Code von Xcode zu schreiben. Obj-C ist auch ziemlich Spaß zu benutzen, wenn Sie lernen, wie man es am besten funktioniert. Delegierte (ganz anders als .NET-Teilnehmer), Nachrichten, Kategorien und alle anderen Seltsamkeiten vorhanden

habe ich einige Java und Flex zu .NET vorherigen Programmierung und ich hasste immer die .NET-docs im Vergleich zu Java-Dokumentation. Sie schneiden einfach nicht. Ich habe persönlich Xcodes docs und Suchsystem zu sein, wirklich sehr erstaunlich gefunden. Es gibt unzählige PDF-Handbücher aus der Dokumentation verknüpft, die Tonnen von Beispielcode haben. Denken Sie daran: der iPhone SDK wurde nun für ca. 2 Monate von Beta-out. Die Dokumente zeigen einen Reifegrad von vielen Jahren. Und ja, es liegt daran, Obj-C um mehr als ein Jahr gewesen ist und die Rahmenbedingungen sind ähnlich.

Insgesamt ist das größte Problem, das ich gefunden habe, ist, dass es eine Menge von .NET-Entwicklern ist auf dem iPhone fahrenden Zug aufspringen und versuchen, Obj-C zu verwenden, als ob es C # oder VB war. Sie scheitern die grundlegenden Obj-C-Dokumente zu lesen, allein die iPhone docs lassen und dann bekommen sie sehr frustriert und scheitern schließlich. Die Diskussionsforen sind voll von diesem Szenario. iPhone-Programmierung ist nicht einfach. eine neue Sprache zu lernen ist nicht leicht. Es braucht Zeit und viele try.fail.try. Es ist ja nicht so, dass die .NET-Mentalität verlieren, noch bevor Sie beginnen und die Dinge werden wunderbar sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top