Entwicklung

Software Development für das iPhone

Christian Lassmann   //   Oktober 14, 2009   //   0 Kommentare

Über 10.000 Programme können Sie schon über den App Store von Apple herunterladen - täglich kommen Dutzende hinzu. Mit unserem Artikel räumen wir die größten Hürden auf dem Weg zum ersten iPhone-Spiel aus dem Weg.

Was macht das iPhone von Apple so besonders, dass wir ihm einen eigenen Artikel widmen? Einfache Antwort: Der durchschlagende Erfolg des multimedialen Alleskönners. Bereits ab Werk stattet Apple das iPhone mit cleveren Programmen wie Wettervorhersagen, Aktienkursen oder Taschenrechner aus. Über den von Apple bereitgestellten AppStore laden Sie mit zwei Klicks auf dem Touchscreen des Telefons zusätzliche Spiele und Anwendungen herunter -- viele kosten Geld, andere gibt es umsonst. Noch nie war es so einfach sein Telefon auf die eigenen Bedürfnisse anzupassen.

Erfolgsgeschichte AppStore

Aber warum sollte man für ein Telefon Software entwickeln? Nun, seit dem Start des AppStore im Juli 2008 haben Benutzer über 500 Millionen Programme und Spiele heruntergeladen -- das entspricht etwa 2,5 Millionen Downloads pro Tag (Stand Januar 2009). Mittlerweile tummeln sich mehr als 15.000 verschiedene Anwendungen in Apples Online-Laden. Eine der vielen Erfolgsgeschichten schrieb im Dezember iFart -- eine Spaß-Anwendung die auf Knopfdruck verschiedene Arten von Darmwinden erklingen lässt. Mitte Dezember veröffentlichte der Entwickler das kleine Programm für 0,79 Euro und es schlug ein wie eine Bombe. Innerhalb von zwei Wochen kauften über 110.000 Nutzer iFart, laut Entwickler alleine am 25.12.2008 fast 39.000. Damit verdiente er -- trotz der 30-prozentigen Marge, die jeder Entwickler an Apple abtritt -- allein am 25.12.2008 über 20.000 Euro.

Das günstige und in den meisten Fällen völlig ausreichende Standard-Programm unterscheidet sich kaum von der deutlich teureren Enterprise-Version.

Wie entwickelt man für das iPhone?

Warum warten, dass jemand das perfekte Spiel oder Programm entwickelt, wenn Sie es auch selber können? Zuerst registrieren Sie sich beim iPhone-Developer-Programm von Apple und entscheiden sich für ein Programm-Paket: das 99 Dollar teure Standard-Programm oder das Enterprise-Programm für 299 Dollar. Im Rahmen dieses Developer Programs werden alle für die iPhone-Entwicklung notwendigen Komponenten zur Verfügung gestellt.
Zum teureren Enterprise-Programm müssen Sie nur greifen, wenn Sie für ein Unternehmen mit mehr als 500 Mitarbeitern arbeiten und proprietäre Software entwerfen wollen -- rund 90% aller Software können Sie aber mit dem günstigeren Standard-Programm entwickeln.. Neben dem Software Development Kit (SDK) umfasst es den Zugriff in den Entwicklungsbereich sowie die Möglichkeit, entwickelte Programme in den AppStore zu übermitteln.
Im Entwicklungsbereich finden Sie alle benötigten Tools mit einer Vielzahl an Beispielen, die den Einstieg in Objective C (der Programmiersprache für das iPhone ) zu vereinfachen und Ihnen die Features des Telefons nahe bringen. Von einfachen Aufgaben wie: »Wie zeichne ich einen einfachen Button?« bis hin zur Integration von Videos, der Nutzung des integrierten Beschleunigungssensors oder dem Zugriff auf das GPS-Modul (nur im iPhone 3G) finden Sie im Entwicklungsbereich zahlreiche praktische Anwendungsbeispiele. Einziges Manko: Die Dokumentation gibt es nur auf der Apple Developer Webseite und liegt nicht als externes Dokument bei, was die Suche nach bestimmten Funktionen teils erschwert.
Zusätzlich zur Apple-Software benötigen Sie die Entwicklungsumgebung Xcode, die ebenfalls heruntergeladen werden kann. Darin wird der eigentliche Programmcode erstellt, dessen Ergebnis sich auf einem in Xcode integrierten iPhone-Emulator direkt auf dem Mac betrachten lässt.
Größtes Manko bei der Programmierung für das iPhone: Ohne einen Mac läuft nichts. Die Mac-eigene Programmiersprache Objective C läuft nicht auf Windows-PCs und setzt zwingend das aktuelle MacOS Leopard (Version 10.5.5.) voraus. Wenn Sie Ihr Programm nicht nur auf dem Mac simulieren wollen, kommen Sie um ein iPhone nicht herum -- oder Sie verwenden einen deutlich günstigeren, aber nahezu baugleichen iPod Touch. Vom iPhone unterscheidet es sich vor allem in der nicht vorhandenen Fähigkeit zur Telefonie, dem fehlenden GPS-Empfänger sowie einer Kamera. Die grundlegende Systemarchitektur ist jedoch identisch, so dass Sie den iPod Touch als günstiges Testgerät für erstellte Programme durchaus verwenden können.

Änderungen präsentiert Ihnen Unity3D in Echtzeit.

Unity3D als Erstellungswerkzeug

Wenn Sie sich nicht mit allen Befehlen von Objective C und deren Benutzung für das iPhone auseinander setzen wollen, bietet sich das Entwicklungstool Unity3D an. Neben Programmen oder Spielen für Windows, Mac und das Web unterstützt die neueste Version des Multiplattform-SDKs Unity3D auch die Wii und das iPhone. Dabei wird über die verschiedenen Lizenzmodelle entschieden, was als Zielplattform zur Verfügung steht. In der Indie-Version, die sich vor allem für kleine »Garagen«-Entwickler und Einzelpersonen eignet, können Sie lediglich Programme für den Mac veröffentlichen -- in der Pro-Version kommt Windows als weitere Plattform hinzu.
Um für das iPhone zu entwickeln, benötigen Sie die iPhone-Erweiterung. Auch die gibt es in zwei Varianten: Basic und Advanced.  Dabei unterstützt nur die Advanced Version »Branding«, die automatische Optimierung der Codegröße sowie Netzwerk- und Web-Funktionalitäten. Weitere Unterschiede und die Details zu den iPhone-spezifischen Unity3D-Versionen finden Sie auf der Website von Unity3D: http://unity3d.com/unity/licenses#iphone

   
Was bietet mir Unity3D?

Unity3D ist ein umfangreicher Baukasten zur Erstellung von Echtzeitwelten. Ein großer Umfang an integrierten Tools und Wizards erleichtern die Arbeit mit den einzelnen Bereichen wie Animationen, Partikel-Effekten, Beleuchtung, Physik und den Umgang mit Materialien. Szenen verwalten Sie übersichtlich in einer Baumhierarchie, einzelne Assets platzieren Sie per Drag & Drop in der Szene. So genannte Viewports geben Ihnen direktes, grafisches Feedbacks zu Ihren Ergebnissen und lassen sich zur Laufzeit anpassen. Unity3D kommt mit den meisten Sound, Grafik oder 3D-Formaten problemlos zurecht, auch wenn es einige Formate zuerst konvertieren muss. Neben seinem Bedienkomfort verbucht Unity3D auch eine hohe Performance auf der Haben-Seite.
Sämtliche Code-Änderungen in Unity können Sie direkt auf dem iPhone testen.
Zur Erstellung der Programmlogiken bieten sich innerhalb von Unity3D drei verschiedenen Skriptsprachen an: Javascript, C# und Boo -- alle laufen innerhalb der freien .Net-Umgebung Mono. Dabei stehen fast dieselben Bibliotheksfunktionen wie in der .Net-Umgebung von Microsoft zur Verfügung. Da die Skripte nicht zur Laufzeit interpretiert, sondern vorkompiliert und zu nativem Maschinencode übersetzt werden, verlieren Sie hier kaum an Geschwindigkeit.

Eines von rund 20 mit Unity entwickelten Spielen, MonkeyDiving.

Wie entwickelt man mit Unity3D für das iPhone?

Die Entwicklung innerhalb von Unity3D für das iPhone unterscheidet sich kaum von der für den PC oder Mac. Sie können bereits geschriebene Skripte und Logiken wieder verwenden und gemachte Erfahrungen anwenden. Einen kleinen Unterschied gibt es jedoch: Da keine eigenständige Mono-Laufzeitumgebung auf dem iPhone läuft, muss der geschriebene Code am Ende in C++-Code übersetzt werden. Dies bringt zwar Geschwindigkeitsvorteile, führt jedoch zu Einschränkungen innerhalb der Skriptsprache, denn noch wird nicht alles eins zu eins übersetzt. Zurzeit stehen nur die Funktionalitäten der Mono-Version 1.1 zu Verfügung, die Unity-Entwickler arbeiten allerdings mit Hochdruck daran, diese Lücke zu schließen.
Entwickeln Sie iPhone-Software mit Unity3D, können Sie das aktuelle Projekt direkt auf dem iPhone testen und debuggen -- ein nicht zu unterschätzender Vorteil. Die eigentliche Anwendung wird dabei auf dem Mac ausgeführt und schickt nur die grafische Ausgabe über eine Wi-Fi-Verbindung an eine Remote-Anwendung auf dem iPhone, welche die ankommenden Bilder anzeigt. Parallel dazu sehen Sie die Anwendung auch im Unity-Editor auf dem Mac. Über die gleiche Wi-Fi-Verbindung werden Benutzereingaben wie z.B. Berührungen des Displays oder Beschleunigungen an den Mac übertragen und direkt von der in Unity laufenden Anwendung verarbeitet. Änderungen an Parametern können mit diesem System sofort auf dem iPhone getestet werden und so die Anwendung »live« debuggt und editiert werden. Wollen Sie Ihre Anwendung nicht nur auf dem iPhone simulieren, sondern sie direkt auf dem Endgerät testen, sollten Sie folgendermaßen vorgehen: Erstellen Sie über den Unity-Editor ein fertiges Xcode-Projekt und installieren Sie die Anwendung darüber auf das Gerät. Mit einer One-Click-Methode namens »Build and Run« wird das Xcode-Projekt von Unity erstellt, gestartet, kompiliert und anschließend auf das angeschlossene Gerät installiert. Sie können aber auch nur das Xcode Project erstellen, um anschließend die übrigen Schritte selber zu erledigen. Die erstellte Anwendung taucht als Icon auf dem iPhone oder iPod Touch auf und kann wie gewohnt per Fingerklick gestartet werden.

Fazit

Auch wenn Unity3D noch nicht alle Features des iPhones wie etwa GPS Erkennung oder Media Texturen unterstützt, können Sie mit UnityiPhone erfolgreich für den App Store entwickeln - was die stetig wachsende Liste bereits erschienener Titel deutlich zeigt.

Christian Lassmann

zum Autoren: Der Diplom Informatiker (FH) Christian Lassmann betreut zur Zeit die Programmierung von Mobile Devices bei weltenbauer. In diesem Zusammenhang implementiert er Projekte für Nintendo DS und iPhone.

Kommentare

Einen Kommentar hinterlassen

Um einen Kommentar hinterlassen zu können, müssen Sie sich zuerst anmelden oder registrieren.

» zur Anmeldung
» zur Registrierung