2010-07-21 3 views
5

Ich habe für eine ganze Weile entwickelt, aber während ich mich für kompetent (oder besser) mit C++, Java, C# & AS3/Flex in Bereichen von Web-Servern zu Desktop-Anwendungen zu 3D Ich weiß, dass all diese Sprachen ziemlich ähnlich sind. Selbst auf der Seite der Bibliotheken weiß ich, worauf ich achten muss, wenn ich Bibliotheken verwende, die ähnliche Dinge in einer anderen Sprache tun.Wie schwer ist iPhone/iPad Entwicklung

Aber Objective CI verstehen, ein anderer Kessel Fisch zu sein, und die Entwicklung für mobile Geräte hat mich immer als harte Arbeit empfunden, da Sie auf Ihrem PC entwickeln und am eigentlichen Gerät selbst testen müssen - meine Erfahrung entwickelt für PS2 habe mich wegen schlechter Debugger und anderer Tools von solchen Dingen abgehalten.

Was ist die Realität? Ist es ein Paradigmenwechsel, von Web-Servern und Desktop-Apps und Rich-Web-Clients zum iPhone zu wechseln ... oder ist es für einen erfahrenen Entwickler nur eine andere Sprache zu lernen und neue Bibliotheken zu spielen? Gibt es etwas, worüber man sich überhaupt fürchten müsste?

edit: Meine Hauptfrage auf Obj-C war speziell, wenn es eine andere Art der Programmierung ist, als würde es zum Beispiel von Java zu Haskell bewegen. Es klingt, dass dies nicht der Fall ist.

Antwort

4

Für den Anfang ist ObjC ziemlich einfach zu begreifen, solange Sie sich auf die Grundlagen konzentrieren. Mach dir keine Sorgen über die Syntax, da ist nicht viel über C, von dem ich annehme, dass du schon damit vertraut bist. Es gibt ausgezeichnete Bücher da draußen this book ist die endgültige Anleitung, die ich den meisten neuen Benutzern empfehle, hat Erica Sadun auch ein gutes Buch auf iPhone-Entwicklung, empfehle ich beide hoch.

Zweitens sind die Tools nicht schwer zu bedienen, und Sie werden angenehm überrascht sein mit dem Debugger und anderen Werkzeugintegration. Instrumente wurden lange auf den Markt gebracht, aber es ist unverzichtbar, um Dinge wie Speicherlecks, CPU-Zeit und Stromverbrauch zu erfassen.

Aber wirklich, nichts zu fürchten, und wie für eine andere Plattform zu lernen; gut, ja und nein. Es wird immer etwas anderes zu lernen geben, egal ob iPhone oder etwas anderes. Widerstehe nicht. :)

1

Auf einer Skala von 1 bis 10 geht es um ein 6.

1

Apple bietet Objective C verwenden und es ist anders als normal C. So iPhone und iPad Entwicklung schwierig sein kann, wenn man objektiv-nie verwendet haben C vorher. Wenn Sie mit einer Sprache namens SmallTalk überhaupt vertraut sind, dann ist Objective-C für Sie sehr einfach zu erlernen.

Jetzt verwenden andere mobile Geräte wie Android Java. Wenn Sie in Java kompetent sind, dann könnte Android-Entwicklung für Sie einfacher sein.

Einige Geräte verwenden Windows Mobile. Wenn Sie ein .NET-Programmierer sind, können Sie .NET Compact Framework zum Entwickeln von Windows Mobile Apps verwenden.

Nur damit Sie es auch wissen, die meisten mobilen SDKs verfügen über einen Emulator zum Testen Ihrer App. Wenn Sie also zum Beispiel kein iPhone haben, können Sie Ihre App mit dem Emulator testen. Ich verstehe, dass der Emulator 99% so genau sein soll wie ein tatsächliches Gerät.

+1

Der BlackBerry verwendet Windows Mobile überhaupt nicht. Woher hast du diese Idee? Und als Nachahmung emuliert ein Emulator von Natur aus die Hardware so nah wie möglich, das iPhone hat einen Simulator, der nicht versucht, Dinge wie Timing zu emulieren, geschweige denn die Architektur, auf der es läuft. Daher ist es kein Ersatz für ein Gerät und ich würde nicht empfehlen, etwas zu veröffentlichen, ohne es gründlich auf einem Gerät getestet zu haben. – jer

+0

Obligatorischer Nitpick: Es ist "Smalltalk", nicht "SmallTalk", aber ja, jede Art von Smalltalk-Erfahrung wird dir gut tun. –

+0

Blackberry korrigiert. Ich war in der Mitte von 2 Gedanken beim Tippen. Ich dachte eine Sache und tippte etwas anderes. Entschuldigung für die Verwirrung! – Icemanind

0

Ich glaube nicht, dass es etwas gibt, vor dem man Angst haben muss.

Der Simulator ist in Ordnung, auch wenn er einige Dinge nicht bewältigen kann - es ist beispielsweise schwierig, den Beschleunigungssensor zu simulieren!

Sobald Sie über die Hürde der herauszufinden, welche Zertifikate Sie benötigen, und die Einrichtung des iPhone Development-Konto und so einrichten, ist es in Ordnung.

Es ist ein bisschen mühsam, etwas zu schreiben, es auf das Gerät zu laden, es auszuprobieren, etc., aber die Tatsache, dass Sie den Code auf dem Gerät debuggen können, macht es viel besser, als es sein könnte . (Ich musste eine Anwendung für das Nokia 9110 pflegen, und dort musste ich bearbeiten, kompilieren, laden, rennen, blind abstürzen, Code anstarren, erraten, bearbeiten, kompilieren, etc.)

+0

Um fair zu sein, es gibt keinen Grund, Apple könnte den Beschleunigungsmesser nicht simulieren; Sie haben eins in all ihren neuen Maschinen außer dem Mac Pro afaik, was ich denke, der einzige Grund, warum sie es nicht tun. Vielleicht, und die Tatsache, dass sie keine Wiederholung der Star Wars-Lichtschwert-Leute wollen, die ihre Macs von oben über ihre Köpfe schwingen. – jer

+0

Es war genau das, was ich dachte :) Ein Mac mini ist genau die richtige Größe für einen Dreschflegel ... –

0

Wie lange Windows C++/.NET-Entwickler, ich fand es nicht sehr schwierig, mit der Entwicklung in Objective C zu beginnen.

Es gibt einige Syntaxunterschiede, die gewöhnungsbedürftig sind, aber im Allgemeinen ist es ähnlich genug, um C/C++ nicht zu fühlen wie eine völlig neue Sprache.

Das Erlernen des Bibliothekscodes und was man leicht machen kann und kann, scheint mir die größere Herausforderung zu sein, die mit jeder neuen Plattform eine Herausforderung sein wird.

+0

Jedes Camp hat ihre Feinheiten, und Sie haben Recht, von .NET kommt die Lernkurve ein wenig steiler. Allerdings nicht zu schwierig, wenn Sie sich gut organisieren. Haben Sie keine Angst, Notizen über alberne Dinge zu machen, auch wenn Sie daran denken, beim Erstellen eines NSArray mit der Methode arrayWithObjects: class oder ähnlich einen Nil einzufügen. – jer

0

Ich schreibe ein Anfängerbuch namens Hallo! iPhone, und ich habe eine Mailing-Liste mit Tipps für Anfänger erstellt, um den Einstieg zu erleichtern. Nach einer Woche oder so Tipps, werden Sie viel mehr ausgestattet, um andere Bücher zu überprüfen und verstehen die Grundlagen ein bisschen besser zu beurteilen.

http://loufranco.com/beginner-iphone-programming-tips/

Es wird Sie nehmen durch Hallo, Welt und einige andere einfache Sachen (Outlets und Aktionen, grundlegende Speicherverwaltung usw.).

2

Ziel C ist anders, aber nicht weit entfernt von normalen OO-Methoden. Die Syntax war die größere Barriere für mich.

Das Problem, das ich sah, war/ist, lernen Sie ObjC für iPhone, und Sie können nicht die Fähigkeit (ObjC Wissen) außerhalb der Applesphere wirklich nehmen. Ich habe keinen Nutzen dafür gesehen. Ich habe eine Handvoll Bücher, die ich durchgegangen bin, um meine Füße nass zu bekommen. Einige von ihnen, die Apress-Bücher, enthielten Fehler in den Code-Walkthroughs, die mich dazu veranlassten, die Buch-Errata unzählige Male zu googeln. Also sei vorsichtig, wenn du so lernst.

Auch wenn sich dies nicht geändert hat, können Sie nur unter OSX mit den SDK-Tools entwickeln, da meines Wissens keine Windows-Version existiert.

Damit müssen Sie auch nach Apples Entwicklungsregeln spielen, um im AppStore veröffentlicht zu werden, der seinen Anteil an dev Horrorgeschichten hatte.

Das heißt, eine funktionierende App ist am Ende Spaß und schön.

+0

Genauso wie Sie .NET nicht wirklich aus der Microsoft-Sphäre nehmen können. – jer

+0

Ich habe .NET nicht viel benutzt, aber ich kann sehen, wo das wahrscheinlich ist. Ich dachte eher an PHP/Ruby/etc. – Kevin

+0

.NET ist auf den meisten Desktop-PCs und Laptops verwendbar, aber auch auf Server-Apps und Webservern (ganz zu schweigen von Silverlight) - es kann an Windows gebunden sein, aber es ist ein viel breiteres Feld, sogar Mono-Rabatt –

4

Es ist auf jeden Fall ein „Paradigmenwechsel“ (igitt, buzzwords):

  • Sie haben nicht den gesamten Speicher in der Welt (und es gibt auch kein swap)
  • Sie haben nicht alle die CPU-Zeit in der Welt
  • Sie wahrscheinlich nicht eine binäre größer als etwa 20 MB (die Größe, die über das Mobilfunknetz heruntergeladen werden kann)
  • Sie können nicht einfach das Server-Backend ändern, um die Dinge richtig zu machen .
  • Grafikdesign ist wichtig, wenn Sie erfolgreich sein wollen (aber Sie wollen nicht Ihr App aufblasen)
  • Webanfragen eine Weile dauern (eine Website mit Umleitungen fühlt wirklich langsam im Vergleich zum Desktop daneben) .
  • JavaScript-Animationen sind schmerzhaft langsam (jemals versucht, die Google Maps-Website auf einem iPhone?)
  • UI-Design ist stark durch die Größe des Fingers des Benutzers eingeschränkt (obwohl das iPhone 4 einen vergleichsweise großen Bildschirm hat).
  • UI-Design ist wirklich langweilig.
  • Der Benutzer kann mehr als nur klicken und tippen.

Ich finde, dass der größte Unterschied in der Benutzeroberfläche ist, nicht in der Sprache. Sprachen sind einfach. Bibliotheken erfordern ein wenig Lesen/Suchen/Fragen, aber dann sind sie einfach. UI-Design und UI-Programmierung sind sehr schwierig, gut zu tun.

Verwandte Themen