Große Freue meinerseits:
Heute hat Apple unsere erste iPhone-Anwendung im App Store veröffentlicht und zwar nach gerade mal 3 Tagen Wartezeit.
Die Anwendung heißt “Wordbock” und wir haben sie für einen Kunden aus der Kältetechnologie entwickelt, es handelt sich um eine mehrsprachige Übersetzungsanwendung, in der entsprechende Fachbegriffe nachgeschaut werden können und die dazugehörigen Übersetzungen in mehreren Sprachen dann angezeigt werden.
Wordbock im App Store kostenlos downloaden

Es war aus technischer Sicht sehr spannend für mich: Ich hatte bisher noch nichts mit iPhone-Entwicklung am Hut gehabt. Da die Anwendung so ähnlich schon als Webanwendung existiert, und ich zurzeit keine Erfahrung mit Objective C hatte, wollte ich nach Alternativen suchen, die mir eine schnelle Entwicklungszeit bringen und zu Anwendungen führen, die gut bedienbar und natürlich dann auch von Apple für den App Store genehmigt werden.
Als Lösung fand ich für mich MonoTouch. Kurz gesagt ist MonoTouch ein kommerzielles Produkt, das es mir ermöglicht in C# und mit .NET-Funktionen Programme für iPhone und iPad zu entwickeln.
Dies schafft MonoTouch dadurch, dass es den C# Code intern zu nativen iPhone-Programmen kompiliert und eine Laufzeitbibliothek mitbringt, die die entsprechenden Funktionen bereitstellt. Nachteil ist, dass die Programme um ca. 3-4 MB größer werden (wegen der Laufzeitumgebung), Vorteile sind aus meiner Sicht mannigfaltig und beinhalten z.B.:
- Vertraute Programmiersprache C#
- Viele vertraute Konstrukte aus dem .NET Framework
- Wiederverwendung von Windows-.NET-Code
- Schöne Entwicklungsumgebung MonoDevelop, angelehnt an Visual Studio .NET
Zum Entwerfen von GUIs setzt auch MonoTouch auf den Interface Builder von Xcode (Apples IDE für native Entwicklung) und kommuniziert damit. Das hat nach einigem Einarbeiten gut funktioniert.
Da ich im Laufe der Entwicklung immer wieder auf Fragen gestoßen bin, die auch Nicht-MonoTouch-Entwickler (also Objective-C-Entwickler) hatten, habe ich mich auch zum Teil mit Objective C beschäftigen müssen.
Apple soll ja die besten Ingenieure der Welt haben; mir kommt es so vor, dass sie dafür als Ausgleich die schlechtesten API-Designer und Entwicklungs-Werkzeuge-Planer haben. Interface Builder war für mich die größte Hürde zum Reinkommen (Stichwort “Outlets”). Und die Syntax von Objective C ist eine Katastrophe für mich gewesen zum Verstehen. Fast glaube ich, dass Apple das so gemacht hat einfach um anders zu sein, nicht um besser zu sein.
Trotzdem habe ich alles hinbekommen, und es waren einige Stufen:
- Einarbeitung in iPhone-Konzepte, GUI-Design usw. Auch anhand vieler Beispiele existierender Apps.
- Beschaffung eines Developer Accounts.
- Einarbeitung in MonoTouch.
- Nutzung von Datenbank SQLite mit MonoTouch und iOS.
- Einarbeitung in Interface Builder.
- Erstellen von MVC-Klassen (für meinen Geschmack sind immer noch zu viele unnötige Hilfsklassen vorhanden).
- Erstellen von Icons und Bildern und der Mehrfachhinterlegung für Retina-Display (“@2x”).
- Internationalisierung von Texten und Bildern (Mehrsprachigkeit).
- Testen der Anwendung auf iPhone-Simulator.
- Erstellen von ad-hoc-Deployment für interne Beta-Tests.
- Sicherstellen, dass alle Apple-Guidlines eingehalten werden (hat gleich beim 1. Mal geklappt).
- Erstellen von Provisioning Profile und anderen Zertifikaten.
- Einreichen bei iTunes Connect zur Review und zum Veröffentlichen.
Wie gesagt, meine App wurde nach nur ganz wenigen Tagen freigeschaltet und ging ohne Beanstandungen durch.
Gestern kam iOS 5 heraus, die Anwendung läuft auf iPhone 3GS und iOS 5 sehr gut.
Als nächstes werden wir dann Android in Angriff nehmen, mal schauen ob wir den Kunden überzeugen können, die App auch für Android heraus zu bringen. Es gibt analog zu MonoTouch auch MonoDroid um entsprechend in C# zu entwickeln, ich bin mir jedoch unsicher, ob ich das machen will oder schlicht auf den Java-Zug aufspringe, der ist ja deutlich näher an C# als es das Objective C für iOS ist.
Stay tuned…

Endlich mal wieder die Jara im Körbchen, wie schön!