Momentan arbeiten Tobias und ich an einem ganz besonderen Lehrlingsprojekt. Wir dürfen uns mit dem Thema iPhone-Applikationsentwicklung auseinandersetzen. Für uns stellt dies eine interessante Aufgabe dar, da es derzeit einen riesen Hype um Apples Mobiltelefon gibt. Wir möchten auf dieser Welle mit schwimmen und wagen es, selber eine Applikation für das iPhone zu schreiben, die später vielleicht über den AppStore vertrieben werden kann. Natürlich stellten auch wir uns anfangs die Frage, was wir überhaupt alles benötigen, um eine Applikation zu programmieren.
1. Hard- und Softwarevoraussetzungen
Die erste Voraussetzung für einen werdenden iPhone-Entwickler ist ein Intel-Mac mit OS X Leopard 10.5.7 oder höher. Warum gerade ein Intel-Mac? Grund dafür ist die iPhone SDK, welche eine Intel CPU voraussetzt. Die Programmierung mit einem Windows PC ist nicht möglich. Die SDK kann man über das Dev-Center von Apple kostenlos herunterladen. Allerdings ist eine kostenlose Registrierung nötig. Falls ihr schon einen Account bei Apple (z.B. für iTunes) besitzt könnt ihr euch mit eurem Login anmelden und müsst nur noch eure persönlichen Daten bestätigen. In der iPhone SDK findet ihr unteranderem auch die Entwicklungsumgebung Xcode, den Interface Builder mit welchem ihr das Design des Benutzerinterface gestalten könnt, sowie einen iPhone Simulator, welcher dazu dient eure Programme auf einem virtuellen iPhone zu testen.
2. Die Programmiersprache
Nun sind wir beim wohl schwierigsten Thema der iPhone-Entwicklung angelangt. Derzeit gibt es nur eine Programmiersprache um iPhone-Applikationen zu entwickeln: Objectiv-C, kurz ObjC. Objective-C ist eine auf C basierende Sprache. Trotz enormen Umfangs ist C nicht objektorientiert. Diese Erweiterung bringt, wie schon der Name sagt, Objective-C mit sich. ObjC ist, was die Syntax der Befehle betrifft, sehr gewöhnungsbedürftig und man kann davon ausgehen das man die Sprache weder in 24 Stunden noch in 24 Tagen erlernen kann.
Für alle, die gegenüber Objective-C vollkommen abgeneigt sind, gibt es noch eine Alternative, nämlich das MonoTouch-Framework. Dies ermöglicht einem Entwickler seine Applikationen in C# und .NET zu schreiben. Der Haken an der Sache ist, das sich das Ganze noch in der Entwicklung bzw. Betaphase befindet. Offizieller Release des Frameworks soll in den ersten beiden Septemberwochen sein. Zudem wird das Framework kostenpflichtig sein. Wie viel es kosten wird steht aber noch in den Sternen. Zusätzlich lässt sich Xcode nicht als Debugger verwenden und somit muss man zur Fehlersuche auf das Kommandozeilenwerkzeug gdb des GNU-Projekts zurückgreifen.
3. Das iPhone Development Program
Wenn ihr nun euer erstes App geschrieben habt und es bereit zur Veröffentlichung ist, müsst ihr dem iPhone Developer Program beitreten. Die Mitgliedschaft kostet pro Jahr 99 $. Bei kommerziellen Apps nimmt Apple zusätzlich 30% des Umsatzes für die Bereitstellung der Infrastruktur. Für Firmen gibt es zum gleichen Preis eine Firmenmitgliedschaft. Der einzige Unterschied zur Standard-Mitgliedschaft besteht darin, dass die Entwickler-Zertifikate und in Folge dessen auch der Autor im AppStore keine Einzelperson sondern dem Firmennamen entsprechen.
Eine weitere Möglichkeit ist die Enterprise Program Mitgliedschaft, welche 299 $ jährlich kostet. Apple richtet für diese Mitgliedschaft einen eigenen AppStore ein, ähnlich den iTunesU-Stores für Universitäten.
4. Mein persönlicher Buch-Tipp
Das Buch „Beginning iPhone 3 Development“ des Apress Verlags habe ich mir gekauft, da es bereits auf die SDK 3.0 eingeht. Das Buch umfasst knapp 600 Seiten, die sich mit der Entwicklung des iPhones und der Handhabung des Interface Builders befassen. Zu jedem Kapitel gibt es ein kleines Programm, welche ich empfehle selber zu schreiben statt die heruntergeladenen Projekte nur auszuprobieren. Die Autoren gehen wirklich auf jede Zeile Code genauestens ein und liefern eine detaillierte Erklärung, warum, weshalb oder wieso dies so gemacht wird. Was auch noch sehr Lobenswert ist, ist das die Autoren zusätzlich jede Eigenschaft/Funktion des Interface Builders beschreiben - und davon gibt es wirklich jede Menge. Wer schon einmal einen Blick auf die Source Codes werfen möchte, kann diese hier runterladen.