Analyse der Entwicklungsumgebung für das iPAD
Aus Winfwiki
|
Fallstudienarbeit | |
| Hochschule: | Hochschule für Oekonomie & Management |
| Standort: | Duisburg |
| Studiengang: | Bachelor Wirtschaftsinformatik |
| Veranstaltung: | Fallstudie / Wissenschaftliches Arbeiten |
| Betreuer: | Dipl-Inf._(FH)_Christian_Schäfer |
| Typ: | Fallstudienarbeit |
| Themengebiet: | Tablet Computing |
| Autor(en): | Matthias Plenge, Andreas Erfurt, Christoph Baral, Florian Garding |
| Studienzeitmodell: | Abendstudium |
| Semesterbezeichnung: | |
| Studiensemester: | 2 |
| Bearbeitungsstatus: | begutachtet |
| Prüfungstermin: | |
| Abgabetermin: | |
1 Abkürzungsverzeichnis
| Abkürzung | Bedeutung |
|---|---|
| SDK | Software Development Kit |
| IDE | Integrated Development Environment |
| GNU | GNU is not Unix |
| API | Application Programming Interface |
| RAM | Random-Access Memory, Arbeitsspeicher |
| GB | Gigabyte, Maßeinheit für eine Datenmenge |
| USB | Universal Serial Bus |
2 Abbildungsverzeichnis
| Abb.-Nr. | Abbildung | Quelle |
|---|---|---|
| 4.2 | iTunes App Details | Eigene Herstellung |
| 4.3 | iPad | Apple.com: http://www.apple.com/de/ipad/specs/ |
| 4.3.1.2 | iPad Display | Apple.com: http://www.apple.com/de/ipad/specs/ |
| 4.4 | iPhone | Apple.com: http://www.apple.com/de/iphone/specs.html |
| 4.5.2 | iPad SDK | Apple.com: http://www.apple.com/de/ipad/sdk/ |
| 4.6.1 | NetBeans IDE | NetBeans.org: http://netbeans.org/kb/docs/java/quickstart.html |
| 4.6.2 | KDevelop IDE | Linuxfans.org: http://www.linuxfans.org/bbs/thread-163699-1-1.html |
| 4.6.3 | Eclipse IDE | Eclipse.org: http://help.eclipse.org/galileo/index.jsp |
| 4.6.4 | Visual Studio IDE | Traum-Projekt.com: http://www.traum-projekt.com/forum/11-einfach-so/80203-php-mit-visual-studio-2005-a.html |
| 5.2 | Installationsassistent | MobileDev.de: http://mobiledev.de/aufstellen-einer-entwicklungsumgebung-fuer-das-iphone.html |
| 5.4 | iPhone SDK Logo | Apple.com: http://developer.apple.com/technologies/iphone/whats-new.html |
| 5.4.1 | Xcode Logo | Apple.com: http://developer.apple.com/technologies/xcode.html |
| 5.4.1 2 | Die Xcode-Programmieroberfläche | Eigene Herstellung |
| 5.4.3 | Instruments | Eigene Herstellung |
| 5.4.5 | Der iPad-Simulator | Eigene Herstellung |
| 5.4.5 2 | Inoffizieller iPad Simulator | Eigene Herstellung |
| 5.8.2 | Mac OS X Dock Leiste mit einer Xcode Verknüpfung | Eigene Herstellung |
| 6.1.1 | Hardware Systeme | Eigene Herstellung mit Bildern von Apple.com |
| 6.1.1 2 | Hardware Kosten | Eigenes Diagramm mit Daten von Apple.com |
3 Einleitung
Am 03.04.2010 erfolgte der Verkaufsstart des Apple iPad in den USA. Seitdem wurde es weltweit über 2 Millionen Mal verkauft. Die Zahl, der für das iPad verfügbaren Anwendungen, im Verlauf häufig Apps genannt, hat sich seitdem ebenfalls stark erhöht. Alle Apps wurden mit einer Entwicklungsumgebung aus dem Hause Apple entwickelt.
In dieser wissenschaftlichen Arbeit wird diese Entwicklungsumgebung des iPad analysiert.
Obwohl die Entwicklungsumgebung und das iPhone SDK für das iPad, das iPhone, den iPod Touch, sowie für mögliche, noch nicht veröffentlichte Plattformen von Apple vorgesehen ist, verweist diese wissenschaftliche Arbeit in den meisten Fällen nur auf das iPad[1].
4 Grundlagen
Im Verlauf der gesamten Fallstudie werden Begriffe wie App, iPad oder SDK häufig verwendet. Um dem Leser einen Überblick über diese grundlegenden Begriffe zu verschaffen, werden diese und andere im Folgenden erklärt.
4.1 App
Das Magazin Gründerszene beschreibt eine App wie folgt:
"Eine App ist ein Programm, wie zum Beispiel ein Textprogramm oder ein Spiel, das einen Benutzer in einem bestimmten Bereich unterstützt. Apps sind Anwendungsprogramme, sie unterscheiden sich also dadurch zum Beispiel von Systemprogrammen, dass durch die Benutzung ein direkter Wert für den User entsteht.
Es kann lokal auf eine App zugegriffen werden, indem die Software auf den eigenen Rechner installiert wird, dabei handelt es sich um eine Desktop-Anwendung. Apps, auf die über einen Server zugegriffen wird, heißen Webanwendung.
Apps sind im weiteren Sinne immer auch Applications/Applikationen, mit dem feinen Unterschied, dass ihr Funktionsumfang begrenzter ist. Eine Application ist etwa Microsoft Word, eine App hingegen ein Notiztool auf dem Handy.
Dadurch, dass der Begriff etwas smarter ist, tritt er als gebräuchliches Modewort für Online-Applications vor allem im Zusammenhang mit dem iPhone oder Facebook auf. [...]"[2]
Apps für das iPad können mit dem iPhone SDK entwickelt werden. Dies wird im weiteren Verlauf der wissenschaftlichen Arbeit ausführlich erklärt. Nach der Fertigstellung können Apps im App Store von Apple veröffentlicht werden.
4.2 App Store
Der App Store ist eine Software der Firma Apple. Diese ist bereits bei einem iPad und einem iPhone vorinstalliert. Sie ermöglicht das Herunterladen von Apps aus dem Apple iTunes Store.
Dort werden die Apps nach iPhone und iPad Apps unterteilt. Da es eine unübersichtliche Anzahl von Apps gibt, werden dem Benutzer verschiedenste Kategorien angeboten um ihm bei der Auswahl einer, für ihn geeigneten, App zu unterstützen. Top-Charts, Apps für Kinder, App der Woche und Apps aus dem iPad Werbe-Spots sind nur einige Beispiele für solche Kategorien.
Wenn sich der Benutzer für eine App interessiert, kann er sich eine Seite mit Detailinformationen über eine App anzeigen lassen. Auf dieser Seite findet man unter anderem eine genaue Beschreibung, den Preis, die Programmgröße, die Applikationssprache, das Erscheinungsdatum und den Namen des Entwicklers dieser App. Ebenfalls findet man dort Kundenrezensionen zu der App. Diese können Käufer nach Erwerb im iTunes Store verfassen. Sie können ein Rating (0 bis 5 Sterne) abgeben, sowie einen eigenen Text veröffentlichen.
Sollte man die App kaufen wollen, so kann man dies durch Drücken des Buttons "App kaufen" tun. Dafür benötigt man einen Apple Account mit dem man zum Zeitpunkt des Erwerbs angemeldet sein muss. Über den Account wird ebenfalls die Bezahlung geregelt. Mögliche Zahlungsarten sind hierbei das Zahlen mit einer Kreditkarte (Visa, MasterCard, American Express) oder die Nutzung von "ClickandBuy".
Sollte man eine App gekauft haben, wird diese heruntergeladen und steht dem Benutzer danach zur Verfügung.
4.3 iPad
Das iPad ist ein Tablet-PC der amerikanischen Firma Apple. Es wurde am 27. Januar 2010 von Apple-Chef Steve Jobs unter großem Medienandrang in San Francisco vorgestellt. Der Marktstart in den USA war am 3. April 2010. Am 28. Mai 2010 erfolgte der Verkaufsstart in Australien, Frankreich, Großbritannien, Japan, Italien, Kanada, Schweiz, Spanien und Deutschland. Im Juli ist der Start in weiteren neun Ländern geplant, bis Jahresende folgen zusätzliche Staaten. 60 Tage nach dem Verkaufsstart waren laut Apple weltweit über 2 Millionen iPads verkauft worden[3].
Es schließt, in der Produktpalette von Apple, die Lücke zwischen iPhone und iMac, also zwischen Smartphone und Computer[4]. Es bietet eine Vielzahl von Funktionen an[5]. Diese lassen sich per Multi-Touch mit intuitiven Gesten bedienen. Dazu zählt der Browser Safari, der es mit dem iPad ermöglicht ganze Internetseiten im Hoch- oder Querformat anzuzeigen. Das Schreiben von E-Mails wird durch eine App und eine Onscreen-Tastatur bereitgestellt. Videos können durch eine spezielle YouTube App angeschaut werden. Zum hören von Musik und zum Lesen von iBooks (virtuelle Bücher von Apple) stehen ebenfalls Apps bereit.
Im App Store können weit mehr als tausend weitere Apps für das iPad gekauft werden. So kann das iPad viele weitere Funktionen erhalten. Spiele können ebenfalls im App Store erworben werden. Mangels eines ausreichenden Grafikchip sind und werden vollwertige PC-Spiele aber nicht für das iPad erhältlich sein.
Apps, die für das iPhone entwickelt wurden, können ebenfalls für das iPad verwendet werden. Diese können in ihrer Originalgröße oder skaliert dargestellt werden. Da diese Programme auch verwendet werden können, erhöht dies die Bandbreite der verfügbaren Programme für das iPad um ein Vielfaches.
4.3.1 Technische Daten
Im Folgenden sind offizielle Technische Daten des Herstellers Apple aufgelistet[6].
4.3.1.1 Abmessungen und Gewicht
| Höhe: | 242,8 mm |
| Breite: | 189,7 mm |
| Tiefe: | 13,4 mm |
| Gewicht: | 0,68 kg (Wi-Fi Modell) |
| 0,73 kg (Wi-Fi + 3G Modell) |
4.3.1.2 Display
- 9,7" Multi-Touch-Widescreen-Display mit LED-Hintergrundbeleuchtung, Hochglanzanzeige und IPS-Technologie (24,63 cm Diagonale)
- Auflösung von 1024 x 768 Pixeln bei 132 ppi
- Fettabweisende Beschichtung
- Unterstützung für die Anzeige mehrerer Sprachen und Zeichen gleichzeitig
4.3.1.3 Kapazität
- 16 GB, 32 GB oder 64 GB Flash-Laufwerk
4.3.1.4 Prozessor
- Speziell entwickelter, hochleistungsfähiger 1 GHz Apple A4 SOC-Chip (System-on-a-Chip) mit niedrigem Stromverbrauch
4.3.1.5 Batterie und Stromversorgung
- Integrierte wiederaufladbare Lithium-Polymer-Batterie (25 Wattstunden)
- Bis zu 10 Stunden Surfen im Web mit Wi-Fi, Video- oder Musikwiedergabe
- Aufladen über das Netzteil oder einen USB-Anschluss am Computer
4.3.1.6 Drahtlostechnologie und Funknetz
Wi-Fi Modell
- Wi-Fi (802.11 a/b/g/n)
- Bluetooth 2.1 + EDR
Wi-Fi + 3G Modell
- UMTS/HSDPA (850, 1900, 2100 MHz)
- GSM/EDGE (850, 900, 1800, 1900 MHz)
- Nur Datentransfer2
- Wi-Fi (802.11 a/b/g/n)
- Bluetooth 2.1 + EDR
4.3.1.7 TV und Video
- Unterstützung für 1024 x 768 Pixel mit dem Dock Connector-zu-VGA-Adapter; 576p und 480p mit dem Apple AV-Kabel (Komponentenvideo); 576i und 480i mit dem Apple AV-Kabel (Composite-Video)
- H.264 Video mit bis zu 720p und 30 Bildern pro Sekunde, Main Profile Level 3.1 mit AAC-LC Audio mit bis zu 160 KBit/Sek., 48 kHz, Stereo-Audio in den Formaten .m4v, .mp4 und .mov; MPEG-4 Video mit bis zu 2,5 MBit/Sek., 640 x 480 Pixel, 30 Bilder pro Sekunde, Simple Profile mit AAC-LC Audio mit bis zu 160 KBit/Sek., 48 kHz, Stereo-Audio in den Formaten .m4v, .mp4 und .mov; Motion JPEG (M-JPEG) mit bis zu 35 MBit/Sek., 1280 x 720 Pixel, 30 Bilder pro Sekunde, Audio im ulaw-Format, PCM-Stereo-Audio im .avi-Format
4.3.1.8 Audiowiedergabe
- Im Frequenzbereich von 20 bis 20.000 Hz
- Unterstützte Audioformate sind HE-AAC (V1), AAC (16 bis 320 KBit/Sek.), Protected AAC (aus dem iTunes Store), MP3 (16 bis 320 KBit/Sek.), MP3 VBR, Audible (Formate 2, 3 und 4), Apple Lossless, AIFF und WAV
- Die maximale Lautstärke ist vom Benutzer festlegbar
4.3.1.9 Ein- und Ausgänge
- 30-poliger Dock-Anschluss
- Stereo-Kopfhöreranschluss (3,5 mm)
- Integrierter Lautsprecher
- Mikrofon
- Slot für Micro-SIM-Karte (nur beim Wi-Fi + 3G Modell)
4.3.2 Preis
Das iPad ist im Apple Store Deutschland, für einen Preis ab 499 €, zu erwerben. Dieser kann sich, je nach Hardware Ausstattung und Spezifikation, auf 799 € erhöhen. Spezielles Zubehör für das iPad ist ebenfalls im Apple Store verfügbar. So kann man zum Beispiel eine Keyboard Dockingstation (kombiniert ein Dock zum Laden des iPads mit einer Tastatur in voller Größe) für 69 € erwerben[7].
4.4 iPhone
Ein iPhone ist ein, von der amerikanischen Firma Appel verkauftes, Smartphone. Es kombiniert die Funktionen eines Mobiltelefons, eines iPod und eines Internet Kommunikationsgeräts. Das bedeutet, dass man mit dem iPhone z.B. Telefonieren, Musik hören, Bücher lesen, ins Internet gehen oder E-Mails schreiben kann. Die Steuerung erfolgt über eine Multi-Touch-Oberfläche mit den Fingern [8]. Wie schon beim iPad erwähnt, können auch dem iPhone durch Apps aus dem App Store weitere Funktionen hinzugefügt werden. Die Anzahl der verfügbaren Apps liegt beim iPhone aber deutlich höher als beim iPad. Laut Angaben des Herstellers Apple sind es momentan mehr als hunderttausend. Diese können dort gegen Bezahlung erworben werden[9]. Dies liegt daran, dass das iPhone, im Gegensatz zum iPad, schon länger auf dem Markt verfügbar ist. Laut Apple wird ab dem 24. Juni 2010 eine weitere neue Version, das iPhone 4, auf dem deutschen Markt erhältlich sein.
4.4.1 Technische Daten
Im Folgenden sind offizielle Technische Daten des Herstellers Apple aufgelistet[10].
4.4.1.1 Abmessungen und Gewicht
| Höhe: | 115,2 mm |
| Breite: | 58,6 mm |
| Tiefe: | 9,3 mm |
| Gewicht: | 137 g |
4.4.1.2 Display
- Retina Display
- 3,5" Multi-Touch-Widescreen-Display (8,89 cm Diagonale)
- 960 x 640 Pixel bei 326 ppi
- Typisches Kontrastverhältnis: 800:1
- Fettabweisende Beschichtung an der Vorder- und Rückseite
- Unterstützung für die Anzeige mehrerer Sprachen und Zeichen gleichzeitig
4.4.1.3 Kapazität
- 16 GB oder 32 GB Flash-Drive
4.5 Software Development Kit (SDK)
4.5.1 Allgemein
Ein Software Development Kit (SDK) ist eine Sammlung von Software-Werkzeugen und Anwendungen für die Programmierung für ein bestimmtes Gerät oder Betriebssystem.
SDKs beinhalten typischerweise eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE, siehe 6.5 Integrated Development Environment), die als zentrale Schnittstelle der Programmierung dient. Die IDE kann einen Editor für das Schreiben vom Quellcode, einen Debugger für die Festsetzung von Programmfehlern sowie einen visuellen Editor beinhalten, der es den Entwicklern ermöglicht die grafische Benutzeroberfläche (Graphical User Interface, GUI) zu erstellen oder zu bearbeiten. IDEs beinhalten aber auch einen Compiler, der aus den Dateien und dem Quellcode Anwendungen erstellt.[11]
Die meisten SDKs enthalten Beispielcode, es werden fertige Beispielprogramme und Bibliotheken zur Verfügung gestellt um den Entwickler zu unterstützen. Diese Beispiele helfen Entwicklern zu verstehen wie man grundlegende Programme mit der SDK erstellt oder ermöglichen, es schließlich auch komplexere Anwendungen zu entwickeln. SDKs bieten zudem meist eine technische Dokumentation, sowie Einleitungen (Tutorials) oder auch Frequently Asked Questions (FAQ, häufig gestellte Fragen). Einige SDKs beinhalten auch Beispielgrafiken, wie Schaltflächen (Buttons) und Symbole (Icons), die in Anwendungen integriert werden können.
Da die meisten Unternehmen Entwickler ermutigen wollen Anwendungen für Ihre Plattform zu erstellen, werden die SDKs in der Regel kostenlos zur Verfügung gestellt. Entwickler können direkt von der Unternehmens-Website die SDK downloaden und sofort mit der Programmierung beginnen. Da aber jedes Software Development Kit anders ist, kann es eine Weile dauern, bis die Entwickler lernen, wie man ein neues SDK verwendet. Deshalb sind in den meisten modernen SDKs eine umfangreiche Dokumentation und eine intuitive Programmierschnittstelle integriert, die Anreize schafft mit der Programmentwicklung zu beginnen.
Beispiele für SDKs sind zum Beispiel das Java SDK (JDK), das Mac OS X SDK oder auch das iPhone SDK, welches in dieser wissenschaftlichen Arbeit näher erläutert wird.
4.5.2 iPad SDK
Das iPad SDK "an sich" gibt es eigentlich nicht, Apple hat mit dem iPhone SDK 3.2 (siehe 7.4 iPhone SDK) ein Software Development Kit herausgebracht, welches alle Werkzeuge, inklusive der Entwicklungsumgebung Xcode beinhaltet, die für die Entwicklung und Optimierung von iPhone OS Programmen für das iPad benötigt werden. Für die Entwicklung von iPad-Applikationen nutzt man das gleiche SDK, das auch für die iPhone-Entwicklung notwendig ist. Somit stehen einige der neuen Funktionen, die mit der Einführung des iPads ins Framework gekommen sind, auch für Apples kleinere mobile Geräte zur Verfügung. Als Programmiersprache ist Objective-C (siehe Objective-C) vorgegeben. Diese nachrichtenorientierte Sprache basiert auf der Programmiersprache C und verlangt vom Entwickler somit, allein durch Header-Dateien und Speicherverwaltung mehr Arbeit als bei der Programmierung mit anderen Programmiersprachen wie z.B. Java für Android-Anwendungen. Bei einem Touch-Gerät, wie dem iPad, steht die grafische Oberfläche der Apps im Fokus. Daher hat sich im neuen SDK viel bei den Views getan, aus denen die grafischen Oberflächen bestehen.[12]
Es beinhaltet zudem auch den iPad Simulator, mit dem sich iPad Programme auf dem Mac erstellen und ausführen lassen. So kann die Benutzeroberfläche auf das größere Display ausgelegt, die Speichernutzung der App getestet und der Debugging-Aufwand im Designprozess reduziert werden.
4.6 Integrated Development Environment (IDE)
Da Software-Programmierung sehr kompliziert und zeitaufwendig ist, strebt man bei Softwareentwicklungsprogrammen danach, den Entwicklungsprozess so sehr zu vereinfachen wie möglich.
„Integrierte Entwicklungsumgebungen“ (IDE-Programme) beinhalten einen Programmcode-Editor, Quelltextformatierungsfunktionen, Compiler bzw. Interpreter und meist einen Debugger, damit alle Komponenten bei der Herstellung von Programmen reibungslos miteinander zusammenarbeiten.
Umfangreichere integrierte Entwicklungsumgebungen enthalten oft weitere hilfreiche Komponenten wie Versionsverwaltung, Projektmanagement, UML-Modellierung oder die Möglichkeit der einfachen Erstellung von grafischen Benutzeroberflächen (auch GUI genannt). Meist wird nur eine Programmiersprache unterstützt. Es gibt aber auch Anwendungen, die mehrere spezielle IDEs unter einer gemeinsamen Benutzeroberfläche zusammenfassen.[13]
Das IDE verfolgt alle projektbezogenen Dateien und stellt diese in einer zentralen Schnittstelle zur Bearbeitung des Quellcodes, Verlinkung aller Dateien und zum Debuggen der Software bereit.
IDE-Softwareentwicklungsprogramme beinhalten meist zusätzlich noch ein >>Runtime Environment<< Laufzeitumgebung (RTE), mit der sich die Software direkt testen lässt. Wenn ein Programm in der RTE ausgeführt wird, kann die Software jede Funktion oder jedes Ereignis, welche in der Applikation erfolgt, getestet werden. Dies kann ein unschätzbares Werkzeug für das Debuggen des Programms sein.
Da die IDE-Software eine zentrale Schnittstelle für das Schreiben von Code und das Testen des Programms darstellt, ist es sehr einfach, schnelle Änderungen am Code vorzunehmen, es zu kompilieren und erneut auszuführen.
Die Programmierung ist immer noch harte Arbeit, aber die Softwareentwicklungsprogramme helfen dabei, die Prozesse ein wenig störungsfreier und einfacher zu gestalten.[14]
IDEs gibt es für nahezu alle Programmiersprachen und Plattformen. Wobei man zwischen freien, also kostenlosen IDEs und kommerziellen IDEs unterscheiden muss. Zu den freien Entwicklungsumgebungen zählen zum Beispiel KDevelop für KDE, Dev-C++ für Windows, C# Express Edition für Windows, NetBeans sowie Eclipse, die beide jeweils plattformunabhängig sind. Zu der Gruppe der kommerziellen IDEs gehören zum Beispiel die Produkte von Borland, als Beispiel der "JBuilder" für Java, von Microsoft "Visual Studio" für quasi alle gängigen bzw. aktuellen Programmiersprachen oder auch der "Power Builder" von Sybase für Powerscript.
4.7 Sonstige Begrifflichkeiten
4.7.1 Compiler
Ein Compiler ist ein Programm zum Übersetzen, eines in einer höheren Programmiersprache verfassten Quellcodes, in die Maschinensprache. Es wird der komplette Quellcode von „oben“ nach „unten“ übersetzt, nicht wie beim Interpreter Zeile für Zeile. Der entstandene Programmcode wird auch Objektcode genannt, er muss mit den entsprechenden Bibliotheken verbunden, sowie mit Hilfe eines Linkers gelinkt werden. Bei modernen Compilern wird dieser Linkvorgang automatisch ausgeführt. Der wesentliche Vorteil eines Compiler ist die hohe Ablaufgeschwindigkeit des generierten Programms. Der Compiler ist zum Betrieb des Programms nicht notwendig, wie es beim Interpreter der Fall ist. Moderne Compiler benötigen nur noch einige Sekunden für die Kompilierung, wohingegen man früher mehrere Minuten warten musste, bis die Kompilierung beendet war.[15]
4.7.2 Debugger (wörtlich "Entwanzer")
Ein Debugger ist ein Computerprogramm, mit dem man sein Programm laufen lassen und Zeile für Zeile testen kann. Man kann die Werte in den Variablen auslesen, in Funktionen oder Prozeduren springen und so alle möglichen Zustände oder Werte testen, warum ein Programm einen bestimmten Wert liefert oder Fehler meldet. Compiler können beispielsweise so konfiguriert werden, dass Sie Debugg-Informationen generieren bzw. in eine Datei oder Infobox schreiben. Dieser Code wird vom Debugger verwendet und teilweise sogar erzeugt, man sieht nur den Quellcode, aber nicht den Maschinencode.
4.7.3 Editor
Ein Editor ist meist nicht mehr als eine Textverarbeitungssoftware, in der man den Quellcode eingeben kann. Gute Editoren bieten erweiterte Funktionen, wie zum Beispiel Syntaxhighlighting (farbliche Hervorhebung von Schlüsselwörtern), Textformatierungsunterstützung (Fontformatierung: Wörter fett oder kursiv darstellen), Syntaxcheck (grobe Überprüfung des Textes, zum Beispiel ob alle Schlüsselwörter richtig geschrieben und auch in der richtigen Reihenfolge stehen, etc.) oder auch direkte Unterstützung bei der Programmierung durch die Anbindung an Bibliotheken. Beispiele für kostenlosen Editoren sind der WYSIWYG-Editor („What You See Is What You Get“, wird bei der Erstellung und Bearbeitung von Internetseiten häufig verwendet), Notepad++ (Syntaxhervorhebung von mehr als 20 Programmiersprachen), SciTE (Scintilla Text Editor, Syntaxunterstützung von mehr als 70 Programmiersprachen, Autovervollständigung von ausgewählten Programmiersprachen), jEdit (unterstützt Syntaxhervorhebung für über 150 Programmiersprachen, Erweiterung durch Plug-ins oder Makros möglich). Natürlich gibt es in dieser Sparte auch kostenpflichtige Editoren, diese sind aber meist in den Entwicklungsumgebungen schon integriert und müssen deshalb nicht zusätzlich gekauft oder bezahlt werden. Nicht integrierte Editoren sind zum Beispiel „UltraEdit“ (Syntaxhervorhebung, Wörterbücher, FTP-Client, Code-Verwaltung, etc.) oder auch „Phase 5“ (HTML-Editor mit erweiterten Funktionen, wie Syntaxhighlighting, Dubugger/Linktester, automatische Codevervollständigung, Vorschau, etc.).
4.7.4 FAQ (Frequently Asked Questions)
Unter diesem „Punkt“ werden häufig gestellte Fragen und deren dazugehörige Antworten zusammengefasst. In manchen Fällen wird man aber auch noch auf „ähnliche“ Fragestellungen und deren Antworten verwiesen. FAQs dienen meist zur Entlastung der Foren oder Kontaktpersonen, die sonst für Hilfestellungen in Frage kommen würden.
4.7.5 Quellcode/Sourcecode
Der Quellcode ist ein für Menschen lesbarer ANSII-Text, der anschließend vom, in der IDE integrierten, Kompiler in Maschinensprache übersetzt wird. Hinter diesem Code verbirgt sich im Grunde alles, was eine Funktion, eine Prozedur, eine Applikation (Programm) oder ein System ausmacht.
5 Die Entwicklungsumgebung
5.1 Voraussetzungen
Um die iPad-Entwicklungsumgebung benutzen zu können und somit mit der App-Programmierung für das iPad zu beginnen, werden laut "Das iPhone Entwicklerbuch - Rezepte für Anwendungsprogrammierung mit dem iPhone SDK" von Erica Sadun folgende Grundlagen benötigt[16]:
- Das iPhone SDK:
Eine Kopie von der iPhone SDK kann man von dem iPhone Developer Center herunterladen. Um Zugriff auf die Downloads zu erhalten, wird eine kostenlose Mitgliedschaft in dem Entwicklerprogramm von Apple benötigt. - Eine Apple-Entwicklerlizenz:
Sobald man die entwickelte Software auf einem iPad testen oder nach der Fertigstellung im App Store veröffentlichen möchte, wird eine kostenpflichtige (siehe Kosten & Vertriebsmöglichkeiten) Lizenz von Apple benötigt. Diese Lizenz kann im Apple Entwicklerprogramm erworben werden. Lizensierte Mitglieder erhalten ein Zertifikat, mit dem die erstellten Programme gekennzeichnet und zu Testzwecken auf die Geräte geladen werden können. - Leopard auf einem Intel-Macintosh:
Damit das iPhone SDK ordnungsgemäß ausgeführt wird, wird ein Macintosh benötigt, der mit einem Intel-Prozessor ausgestattet ist und im 32-Bit Modus ausgeführt wird. Außerdem erfordert das SDK als Betriebssystem Leopard OS X 10.5.5 oder höher. Dazu schreibt Michael Kain in seinem Buch "iPhone - Anwendungsentwicklung für Einsteiger", dass unter Windows und anderen Betriebssystemen keine iPhone-Programmierung möglich ist[17]. Laut Erica Sadun funktionieren viele Features auf einem Power-PC-Mac (PPC-Mac) oder im 64-Bit Modus nicht. Es werden ca. 4,4 GB Festplattenspeicher benötigt (variiert bei verschiedenen Plugins) sowie mindestens 1 GB RAM. - Ein iPad:
Um die entwickelte Software, außerhalb vom Simulator, auf einer "echten" Hardware zu testen, wird ein iPad benötigt. Die Software wird dann direkt per USB-Kabel auf das Gerät übertragen und installiert. Das Testen auf einem Gerät ist laut Michael Kain unumgänglich, da Funktionen wie beispielsweise die Kamerafunktion und Multi-Touch-Gesten von dem Simulator noch nicht richtig unterstützt werden[18].
"Entwicklungsgeräte [...] müssen bei Apple registriert sein und über Xcode versorgt werden. Wenn man dem Developer Program erfolgreich beigetreten ist und die Zugangsgebühr bezahlt hat, kann man das Programmportal von Apple nutzen, um Zertifikate zu erhalten und das Entwicklungsgerät zu registrieren". Ein Entwicklungsgerät, wie ein iPad, muss exklusiv der Entwicklung gewidmet werden. Durch den Anschluss an den Computer werden interne Änderungen an dem Gerät vorgenommen, was bedeutet, dass es möglicherweise im normalen Einsatz nicht mehr richtig funktioniert[19]. - USB 2.0 Anschluss oder höher:
Über diese Schnittstelle wird die Software auf das Gerät übertragen. Der Anschluss eines iPads kann nur über eine USB 2.0 oder höhere Schnittstelle erfolgen. - Internetverbindung:
Je nach Art der entwickelten Software wird eine Internetverbindung benötigt, um sie testen zu können. Sollte die Software Funktionen beinhalten, die eine laufende Internetverbindung voraussetzen, muss eine Internetverbindung verfügbar und hergestellt sein.
5.2 Installation der Entwicklungsumgebung
Xcode bzw. das iPhone SDK liegt bereits jeder Mac OS X Version ab Leopard OS X 10.5.5 auf der System-CD/DVD bei und kann direkt von dieser installiert werden. Da Apple teilweise wöchentlich Updates herausgibt, sollte nach Abschluss der Installation nach Software Updates auf der Apple Webseite gesucht werden. Alternativ kann die automatische Softwareupdate-Funktion in den OS X Systemeinstellungen genutzt werden. Sollte keine System CD/DVD vorhanden sein, kann auch direkt eine aktuelle Version von Apple.com bezogen werden.
Um Zugriff auf den Downloadbereich im iPhone-Develeper-Center zu bekommen, ist es notwendig, registriert und eingeloggt (angemeldet) zu sein.
5.3 Einrichten der Entwicklungsumgebung
Die Einrichtung wird komplett automatisch von dem iPhone SDK Installationsassistenten übernommen. Wenn die Installation abgeschlossen wurde und eine Mitgliedschaft im kostenlosen Entwicklerprogramm von Apple besteht, kann mit dem Programmieren begonnen werden.
5.4 Das iPhone SDK
Das iPhone SDK beinhaltet sämtliche Komponenten, die für die Entwicklung von iPad Anwendungen benötigt werden. Das iPhone SDK wurde im März 2010 von Apple veröffentlicht und steht mittlerweile in der Version 3.2 Entwicklern zur Verfügung[20]. Folgende Komponenten werden durch das iPhone SDK bereit gestellt:
5.4.1 Xcode
"Apple definiert Xcode als eine Suite von Entwicklungswerkzeugen, um Anwendungen für den Macintosh oder das iPhone zu erstellen. Es besteht aus verschiedenen Unteranwendungen, Kommandozeilen-Werkzeugen, Frameworks und Bibliotheken."[21]
Version 1.0 wurde am 24. Oktober 2003 mit der Version OS X 10.3 (Panther) veröffentlicht. Davor war Xcode unter dem Namen "Project Builder" bekannt.
Die Xcode IDE liegt seit April 2010 in der Version 3.2.2 vor und ist bis jetzt nur in englischer Sprache verfügbar[22]. Die Version 4.0 ist laut Apple bereits in Entwicklung und liegt in einer geschlossenen Testversion (Betaversion) ausschließlich den Besuchern der Worldwide Developers Conference (WWDC), die einmal jährlich von Apple veranstaltet wird, vor.
In ihrem Buch "Das iPhone Entwicklerbuch - Rezepte für Anwendungsprogrammierung mit dem iPhone SDK" schreibt Erica Sadun, dass die Xcode IDE das wichtigste Werkzeug für die iPad Entwicklung ist. Xcode bietet eine umfassende Projektentwicklungs- und Projektverwaltungsumgebung, einen Editor für die Quellcodeerstellung und Bearbeitung, eine umfassende Dokumentation und einen grafischen Debugger. Programmgrundlagen sind mehrere Open-Source-GNU Werkzeuge wie z.b. die GNU Compiler Collection (gcc) und The GNU Project Debugger (gdb)[23].
Die GNU Compiler Collection beinhaltet Compiler für die Programmiersprachen C, C++, Objective-C, Fortran, Java, Ada sowie viele weitere Sprachen und ist daher auch für die Programmierung von Anwendungen geeignet, die nicht auf dem iPad ausgeführt werden sollen (Anwendungen, die nicht auf der Programmiersprache Objective-C basieren)[24].
Mit Hilfe des The GNU Project Debuggers, welcher die Basis für den in Xcode enthaltenen Debugger ist, ist es möglich das Vorgehen im Inneren des ausgeführten Programmes zu visualisieren bzw. Fehler im Programmcode zu finden. Mit dem Debugger ist es ebenfalls möglich, Teile des Quellcodes, sowie Variablen, wärend der Laufzeit zu verändern und den Quellcode schrittweise ausführen zu lassen, um fehlerhafte Stellen zu lokalisieren[25].
Der erwähnte, in Xcode enthaltene, Editor bietet verschiedene nützliche Funktionen wie z.B. Quellcodevervollständigung, Syntax Highlighting (Durch farbiges Hervor- und Abheben von bestimmten Codestellen wird das Lesen und Bearbeiten des Codes deutlich erleichtert), Quellcode-Faltung (sog. Code-Blöcke, also zusammenhängende Abschnitte im Quellcode, werden gruppiert und können ausgeblendet bzw. eingeblendet werden) sowie Fehlerfindung in Echtzeit[22]. Eine weitere nützliche Funktion ist der Dokumentationsassistent. Mit Hilfe dieses Assistenten ist es möglich, seinen kompletten Quellcode mit einem Klick komplett automatisch dokumentieren zu lassen. Dies ist besonders hilfreich, wenn Programmierer zusammen im Team arbeiten und so stets sehen können, welcher Quellcodeabschnitt welchen Dienst erfüllt. Um noch besser im Team arbeiten zu können, gibt es in Apples Entwicklungsumgebung eine Subversion Funktion. Subversion ist eine Funktion zur Versionsverwaltung. So kann leicht eingesehen werden, welches Teammitglied welche Stelle im Quellcode zu welcher Zeit verändert hat. Außerdem kann bei Problemen in der Anwendung leicht zu einer älteren Revision (Ausgabe bzw. Version) der Anwendung zurück gesprungen werden.
5.4.2 Interface Builder
Der Interface Builder ist ein grafischer Editor für die Erstellung von Benutzeroberflächen[26]. Mit ihm ist es möglich, schnell und komfortabel User-Interface-Elemente (z.b. Knöpfe, Schieberegler und Textfelder) zu erstellen und grafisch per Drag&Drop (mit der Maus anklicken und auf die Oberfläche ziehen) anzuordnen. Außerdem werden die Elemente automatisch mit dem Xcode-Quellcode verknüpft[22].
5.4.3 Instruments
Mit dem Instruments-Werkzeug ist es möglich, Auslastungs- und Ressourcen-Profile von iPad-Anwendungen zu erstellen. "Es prüft die Speicherauslastung und überwacht die Leistung"[27]. So haben Programmierer die Möglichkeit, problematische Bereiche in ihren Anwendungen zu finden und ihre Funktionsfähigkeit zu verbessern.
"Instruments bietet grafische Darstellungen zur Leistungsfähigkeit, die anzeigen, an welcher Stelle ihrer Anwendungen die meisten Ressourcen (z.b. Speicher und Rechenaufwand) benötigt werden" und "spielt eine wichtige Rolle dabei, Speicherlecks ausfindig zu machen und sicherzustellen, dass die Anwendungen auf der iPad-Plattform effizient ausgeführt wird"[27].
5.4.4 Dashcode
Mit dem Dashcode-Werkzeug können Anwendungsentwickler eigenständige webbasierte Anwendungen, sog. Dashcode-Widgets, erstellen, die außerhalb des normalen iPad-Webbrowsers ausgeführt werden können und somit wie richtige iPad-Anwendungen funktionieren. Dashcode für das iPad kann mit der Dashcode Version für Desktop-Macintoshs verglichen werden. Wie die Desktop-Variante, arbeitet auch die iPad-Variante vollständig mit Layout- und Debugging-Werkzeugen. Wie zuvor erwähnt, arbeitet Dashcode mit einem webbasierten Entwicklungsansatz statt mit der üblichen Kompilierung von Anwendungen. Anwendungsentwicklern stehen von Anfang an eine Vielzahl von Programmiervorlagen, wie z.B. für Stadtkarten, Messgeräte oder ein Nachrichtendienst frei zur Verfügung. Dashcode kann als eigenständige Entwicklungsumgebung betrachtet werden, die in einer anderen integriert wurde und ist ab Mac OS X 10.5 (Leopard) Bestandteil von Xcode[28][27].
5.4.5 iPad-Simulator
Der iPad Simulator wird auf dem Macintosh selbst ausgeführt und ermöglicht dem Programmierer seine Anwendungen direkt auf diesem zu starten und zu testen, ohne sie zuvor auf ein externes Gerät wie ein iPad übertragen zu müssen. Erica Sadun schreibt in ihrem Buch, dass der Simulator dieselbe API zur Verfügung stellt, die auch auf dem iPad verwendet wird. Dadurch kann der Simulator eine sehr genaue Vorschau darauf bieten, wie die Anwendung aussehen wird.
Allerdings gibt es einige Besonderheiten, die man bei der Arbeit mit dem Simulator beachten muss. Die Einschränkungen, die bedingt durch die Hardware des iPads gegeben sind, werden bei der Simulation nicht beachtet. Es gibt keinen limitierten Speicherplatz und auch der Arbeitspeicher, in dem zur Laufzeit der Anwendung Daten abgelegt werden, ist bei einem Desktop-Macintosh mit großer Wahrscheinlichkeit auch nicht so gering bemessen wie bei einem kleineren Gerät. Noch hinzu kommt, dass sich die Bedienung der Anwendung im Simulator deutlich von der Bedienung am iPad unterscheidet. In dem Simulator können im Gegensatz zu einem realen Gerät die Anwendungen nur mit der Computer-Maus gesteuert werden, was ebenfalls erhebliche Einschränkungen beim Testen bedeutet. Es sind zwar mit bestimmten Tastenkombinationen (mit der alt und shift Taste) Multi-Touch Gesten möglich[29], aber trotzem unterscheidet sich die Steuerung am Computer von der Steuerung am iPad. Ein weiterer wichtiger Punkt ist die Energieeinschränkung. Programmierer für mobile Plattformen dürfen die Energieeinschränkungen nicht ignorieren, die durch die komplexe Bauform und die dadurch immer kleiner werdenden Akkus bedingt sind. Sehr rechenintensive Anwendungen verbrauchen mehr Akku-Leistung als normale Programme. Dieser Sachverhalt fällt bei der Arbeit mit dem iPad-Simulator nicht auf, da dieser keinen Akku besitzt. Erst im späteren Betrieb auf einem realen iPad wird klar, wie schnell oder langsam sich der Akku entlädt.
Abgesehen von dem iPad-Simulator, der in dem iPhone SDK enthalten ist, gibt es noch einen weiteren, eher unbekannten Simulator, welcher dafür geschaffen wurde, Webseiten auf dem iPad zu testen und so anzupassen, dass sie auf dem iPad komfortabel genutzt werden können. Dieser Simulator wurde von freien Entwicklern entworfen und programmiert und steht in keinem Bezug zu der Firma Apple. Zu finden ist der iPad-Simulator für Webseiten unter http://ipadpeek.com. Der Vorteil bei dem Simulatior von iPadGeek.com ist, dass er nicht unbedingt unter Mac OS X ausgeführt werden muss, sondern auch unter Windows, Linux etc. läuffähig ist. Allerdings gibt es einen Nachteil bei der Benutzung des nicht offiziellen Simulators: Der Simulator benutzt nicht die gleiche API wie das iPad und deswegen ist es nicht gewährleistet, dass die angezeigten Webseiten gleich aufgebaut wirderden bzw. gleich aussehen.
5.4.6 Cocoa Touch
Cocoa Touch ist der Name der Bibliothek der Klassen, die für die Programmierung von iPad Anwendungen benötigt werden und die von Apple für eine schnelle und erleichterte Entwicklung von iPad Anwendungen bereitgestellt wurden. "Diese Bibliothek, die die Form einer Vielzahl von Framework-Bibliotheken annimmt, ermöglicht das Erstellen grafischer, Ereignis gesteuerter Anwendungen unter Verwendung von Elementen der Benutzerschnittstelle wie Fenstern, Texten, Tabellen, Buttons oder Eingabefeldern"[27]. Cocoa Touch für die iPad Programmierung ist das Gegenstück zur Programm-Bibliothek "AppKit" mit der für den Macintosh programmiert wird und "unterstützt den Aufbau leistungsfähiger, wiederverwendbarer Komponenten" auf dem iPad[27].
5.4.7 Weitere Komponenten/Bestandteile des SDK
In der SDK sind außerdem noch einige Beispielcodes für das iPad und andere Plattformen enthalten. Die bereitgestellten Beispiele sollen den Programmierern Anregungen und Hilfe bei der Entwicklung innovativer Universalprogramme (sowohl auf dem iPad, als auch auf dem iPhone oder dem iPod Touch nutzbar) geben. Die einzelnen Beispiele können kompiliert und ausgeführt werden und zeigen dem Programmierer, wie eine Aufgabe für eine bestimmte Technologie gelöst wird.
5.5 Neue Funktionen für das iPad
Das iPad bietet neue Möglichkeiten für die Entwicklung von iPhone OS Multi-Touch-Programmen auf einem noch größeren Display. Im iPad Programming Guide (iPPG) finden sich neue Funktionen für das iPad, sowie Informationen zu der Implementierung dieser Funktionen in den Programmen. Programmierer die bereits eine iPhone-Anwendung geschrieben haben, werden sich schnell im iPPG zurechtfinden und vertraut fühlen. Die meisten der grundlegenden Eigenschaften und Verhaltensweisen sind die gleichen wie beim iPhone. Allerdings enthält das iPhone OS 3.2 spezielle Besonderheiten (Features) für iPad Geräte, die man in seinen Anwendungen verwenden kann.
Beispiele hierfür sind die komplett nutzbaren 1024 x 768 Pixel, die die Bildschirmgröße eines iPad Gerätes misst, womit sich Möglichkeiten ergeben, wie z.B. "Geteilte Ansichten", ein Weg, um zwei verschiedene Ansichten nebeneinander darzustellen.
Die Modally Presented Controllers unterstützen jetzt einen konfigurierbaren Darstellungsstil, der festlegt, ob alles oder nur ein Teil des Fensters von der Applikation abgedeckt werden soll. Toolbars können nun am oberen und unteren Rand einer Applikation positioniert werden. Die erhöhte Bildschirmgröße macht es zudem möglich, auch weitere bzw. mehr Elemente auf einer Symbolleiste unterzubringen.
Die iPad Human Interface Guidelines bieten Anregungen für die Gestaltung einmaliger Benutzeroberflächen mit hohem Benutzerkomfort für iPad Programme. Sie zeigen, wie der neue, größere Bildschirm die Steuerungen und Darstellungsoptionen effektiv genutzt werden können, um beeindruckende Programme zu entwickeln.
Außerdem kommt noch eine erweiterte Unterstützung für die Texteingabe und das Display, Support für externe Displays und Projektoren, sowie eine formalisierte Unterstützung für die Handhabung von Dokumenten und Dateien hinzu.
5.6 Einschränkungen der Entwicklungsumgebung und der Plattform
Aufgrund von Einschränkungen der Programmiersprache Objective-C und seitens Apple, wird das Erstellen von iPad Anwendungen teilweise sehr erschwert.
- Garbage Collector:
Bei der Programmierung mit Objective-C und dem iPhone SDK für das iPad fällt auf, dass es keinen Garbage Collector gibt. Ein Garbage Collector (zu deutsch: Müllabführ, Müllsammler) ist ein Bestandteil von modernen Programmiersprachen, der für die Bereinigung des Arbeitsspeicherers zuständig ist. Programme legen permanent, vom Programmierer gewollt sowie ungewollt, Daten in den Arbeitsspeicher und um zu verhindern, dass der Speicher überfüllt und dadurch der gesamte Computer ausgebremst wird, muss der Programmierer dafür sorgen, dass die nicht mehr gebrauchten Daten aus dem Speicher entfernt werden. Dies geschieht entweder gezielt durch den Programmierer oder automatisch durch den Garbage Collector.
"Apple-Insider vermuten, dass die Plattformbeschränkungen [...] keine Garbage Collection auf vernünftige und nützliche Art erlauben."[30]
- Fehlende und unzureichende Bibliotheken:
Aufgrund von fehlenden oder nur provisorisch implementierten Bibliotheken ist der Programmierer gezwungen, diese Problematik durch Alternativen zu umgehen oder sich mit einem Fehlerbericht an den Apple-Support zu wenden, um Hilfe zu erhalten.
Teilweise verhindert Apple allerdings auch absichtlich den Zugriff auf proprietäre Klassen[30].
Erica Sadun schreibt in ihrem Buch (wie einige andere Quellen), dass bei mobilen Plattformen wie das iPad oder das iPhone immer wieder Bedenken bezüglich der Speicher- Interaktions und Batteriebeschränkungen usw. auftreten. Wie zuvor beschrieben (siehe iPad-Simulator) können die kleinen mobilen Geräte nicht dieselbe Festplatten und Arbeitsspeichergröße "wie ihr Gegenstück auf dem Schreibtisch" anbieten.
- Speicherbeschränkung:
Obwohl die Speicherkapazität des iPads im Gegensatz zu seinen Vorgängermodellen bereits um einiges größer ist (bis zu 64 GB), ist sie immernoch deutlich kleiner als bei gängigen Desktop Computern. Daher sind die möglichen speicherbaren Anwendungen bzw. Apps beschränkt. Entwickler müssen darauf achten, dass ihre Anwendungen nicht zu groß sind und wenn diese Inhalte, wie z.B. Filme, Bilder oder Musik, aus dem Internet nachladen, dass diese ebenfalls nicht zu viel Speicherplatz in Anspruch nehmen[31].
- Energieeinschränkungen:
Bei mobilen Plattformen dürfen Programmierer den Energieaspekt nicht ignorieren. Durch die immer leistungsfähigeren Prozessoren, die größeren und helleren Bildschirme sowie die schnelleren Netzwerkanbindungen (3G, Wlan, UMTS usw.) ist der Energieverbauch und damit die Anforderungen an die eingebauten Akkus deutlich angestiegen. Programmierer haben nun die neue Aufgabe ihre Anwendungen so zu entwerfen, dass sie schonend mit den begrenzten Ressourcen umgehen. Allerdings werden Programmierer bei der ressourcenschonenden Programmierung von den Einschränkungen der Plattform und der Entwicklungsumgebung "unterstützt"[32].
- Einschränkungen der Eingabemöglichkeiten:
Das iPad besitzt keine physikalische Tastatur und abgesehen von einem Homescreen-Knopf und dem Multi-Touch fähigen Bildschirm keine weiteren Eingabemöglichkeiten. Programmierer müssen darauf achten, dass ihre Anwendungen und Apps mit den gegebenen Eingabemöglichkeiten auskommen. Außer den beiden Eingabemöglichkeiten, besitzt das iPad noch eine Reihe von Sensoren die der Anwender zwar nicht sofort erkennen, aber für die Steuerung des iPads intuitiv benutzen kann. Unter anderen gibt es einen Beschleunigungs- und einen Neigungssensor den der Anwender durch Bewegen des iPads ansprechen kann.[32]
5.7 Objective-C
iPad Anwendungen werden in der Programmiersprache "Objective-C 2.0" (ObjC) geschrieben. Das ist, wie der Name schon vermuten lässt, eine objekt- sowie nachrichtenorientierte Programmiersprache die aus einer Mischung von "C" und "Smalltalk" bereits in den frühen 80er Jahren von Brad Cox für die Firma Stepstone entwickelt wurde[33][34]. Im Gegensatz zu anderen objektorientierten Sprachen wie z.B. Java oder C++ ist Objective-C in Programmiererkreisen nur sporadisch vertreten und noch eher unbekannt. Obwohl Objective-C aus der Sprache C entwickelt wurde und komplett darauf basiert und sogar C-Programme mit dem Objective-C Compiler kompiliert werden können, können diese beiden Sprachen nicht miteinander verglichen werden, da sie grundlegend anders funktionieren. Objective-C ist nicht nur die primäre Programmiersprache für iPad Anwendungen, sondern auch von Cocoa, also Mac OS X[35].
5.8 Entwicklung von Apps
5.8.1 Komponenten von Apps
iPad Apps bestehen genau wie iPhone Apps und die Anwendungen für Macintosh OS X aus sog. Anwendungsbundles (Anwendungspaketen) in denen alles enthalten ist, was die Anwendung benötigt. Diese Pakete sind einfache Ordner mit der bestimmten Erweiterung ".app". In diesen Ordnern befindet sich der Inhalt der Anwendung sowie Grafiken, Medien (Videos, Musik etc.) und weitere Informationen einschließlich der kompilierten ausführbaren Datei[35].
In den Anwendungsbundels herrscht, nicht wie bei den Macintosh OS X Anwendungen, standardmäßig keine Ordnerhierarchie durch die die Komponenten logisch unterteilt sind. Alle Elemente der Anwendung liegen innerhalb des Bundles auf oberster Ordnerebene. Allerdings ist es dem Programmierer überlassen, ob er von dem Standard abweichend, seine Anwendung doch mit Unterordnern z.B. für die Medien wie Musik und Videos oder für verschiedene Sprachdateien unterteilt[35].
Der Quellcode besteht in der Regel mindestens aus folgenden Methoden (bzw. Funktionen)[36]:
- Die main() Methode:
Die main() Methode ist die Methode die immer beim Starten einer Anwendung ausgeführt wird. Sie ist zwingend notwendig. - Die applicationDidFinishLaunching() Methode:
Diese Methode wird ausgeführt sobald die Anwendung komplett geladen wurde und verfügbar ist. Sie ist der Ausgangspunkt für alle weiteren Funktionen und ist ebenfalls eine Pflichtmethode. - Die applicationWillTerminate() Methode:
Sobald der Anwender oder das iPad eine Anwendung beenden will, wird diese Methode ausgeführt. Programmierer können die applicationWillTerminate() Methode verwenden um z.B. Einstellungen zu speichern bevor die Anwendung geschlossen wird. - Die loadView() Methode:
Um den Bildschirm einzurichten und die Ansichten anzuordnen wird die loadView() Methode verwendet. diese Methode ist notwendig, damit die Anwendung ordnungsgemäß ausgeführt wird. - Die shouldAutorotateToInterfaceOrientation() Methode:
Sie ist keine Pflichtmethode aber für den Programmierer und später für den Anwender sehr nützlich. Diese Methode sorgt dafür, dass die Ansicht der Anwendung automatisch gedreht wird, sobald das iPad auf die Seite gekippt wird.
5.8.2 Hello World, die erste App
Wenn alle nötigen Voraussetzungen erfüllt wurden, sind es nur noch wenige Schritte bis zur ersten lauffähigen App. Als erstes muss Xcode gestartet werden. Dazu kann man entweder den sog. Finder benutzen oder falls das Xcode-Symbol in Leiste am unteren Bildschirmrand (Mac OS X Dock Leiste) erscheint, kann man auch auf dieses Symbol klicken.
Anschließend, nachdem sich Xcode geöffnet hat, klickt man in der oberen Leiste auf File -> New Project. Im sich nun öffnenden Fenster, kann man auswählen für welchen Bereich die Anwendung sein soll und welche Art von Anwendung man programmieren möchte. Dort wählt man im linken Bereich unter iPhone OS Application und danach auf der rechten Seite Window-Based Application aus. Nach dem Bestätigen mit dem Button Choose öffnet sich ein Speicherdialogfenster, in dem es möglich ist, den Namen sowie den Speicherort des Projektes festzulegen. Nach dem erneuten Bestätigen mit dem Button Save öffnet sich das eigentliche Projekt Fenster in dem der Programmierer eine Übersicht über alle Dateien und Komponenten seiner Anwendung bekommt.
Nun ist es bereits möglich, die Anwendung zu Kompilieren und im iPad Simluator zu starten. Dazu reicht ein Klick auf Build and Run im oberen Bereich des Fensters. Allerdings würde man, außer einen weißem Bildschirm, nichts sehen.
Um die Anwendung verändern zu können, kann man die Datei HelloWorldAppDelegate.m (der Name kann je nach Name des Projektes variieren) mit einem Klick öffnen und im unteren Bereich bearbeiten.
Ersetzt man den Quellcode (Quellcode Nr. 1, weitere Anhänge) mit dem Quellcode Nr. 2 (weitere Anhänge), dann sollte nach dem Starten der Anwendung ein "Hello World" am oberen Bildschirmrand zu sehen sein.
Nach dem Beenden der Anwendung sieht man, dass sich ein neues Symbol auf dem Homescreen (der Bildschirm, der aktiv ist, wenn keine weitere Anwendung im Vordergrund läuft) befindet. Die Anwendung hat sich automatisch auf dem iPad installiert.
5.8.3 Die App veröffentlichen
Es gibt mehrere Möglichkeiten eine App zu veröffentlichen. Zu Unterscheiden ist hierbei, welchem Publikum das App zur Verfügung gestellt werden soll.
- Jedem iPad, iPhone und iPod Touch Anwender:
Um die App jedem zur Verfügung zu stellen, muss sie in den sog. App Store (siehe App Store) eingereicht werden. Diese Art der Verteilung erfordert allerdings eine spezielle Vorbereitung seitens des Programmierers. Seine App muss speziell für den App Store, statt für die Entwicklungsumgebung, kompiliert werden. "Man spricht dabei von dem sogenannten Distribution Build" (~Vertriebs Version)[37]. Um eine solche Version zu erstellen, benötigt der Programmierer, wie zuvor in dieser wissenschaftlichen Arbeit schon erwähnt, ein Zertifikat aus dem iPhone-Programmportal. Die fertige Version der App muss zum Schluss als Archiv im Zip-Format komprimiert an den App Store übertragen werden.
Sollte der Programmierer im Programmierprozess keine Fehler gemacht haben und sich an die Nutzungsbestimmungen bzw. an die Lizenzverträge gehalten haben, dann sollte auch die App im App Store veröffentlicht werden. Falls er doch einen Fehler gemacht haben sollte, so wird die App entweder gar nicht erst in den App Store geladen oder zu einem späteren Zeitpunkt meist kommentarlos aus diesem entfernt.
- Einem bestimmten Publikum:
Wenn der Programmierer seine App nur einem bestimmten Publikum, z.B. zu Testzwecken oder wenn die App sensible Daten beinhaltet, zur Verfügung stellen will, dann kommt die sog. Ad-Hoc-Verteilung ins Spiel. Mit dieser Methode der Verteilung ist es möglich, eine App an bis zu 100 registrierte Geräte zu verschicken ohne sie zuvor in den App Store übertragen zu müssen. Auch hierfür muss die App einen speziellen Kompiliermodus durchlaufen durch den die App auf die maximal 100 Geräte beschränkt wird.
5.9 Alternativen
Offiziell gibt es keine Alternative für die Entwicklungsumgebung von Apple um für das iPad Anwendungen zu schreiben. Es gibt einige Ansätze, mit denen es möglich ist, außerhalb Apples Entwicklungsumgebung, ohne das iPhone SDK und ohne Xcode, zu programmieren. Allerdings sind diese Ansätze noch nicht ausgereift genug und Apple sortiert Apps, die nicht mit ihrer Software programmiert wurden, aus und veröffentlicht diese nicht im AppStore. Eine solche Alternative ist z.B. Toolchain. Xcode und die enthaltenen Unterprogramme basieren teilweise selber auf Toolchain und deshalb ist es möglich, mit diesem Programm ebenfalls iPad Apps zu programmieren.
Wenn sich Programmierer komplett von der iPad Programmierung loslösen möchten, gibt es eine große Anzahl von alternativen Plattformen, denen sie sich annehmen können. Eine Möglichkeit wäre die Android-Plattform, die in den letzten Monaten einen deutlichen Zuwachs am Markt verzeichnen konnte[38]. Die Entwicklungsumgebung der Android-Plattform ist, wie die Entwicklungsumgebung des iPads, mittlerweile sehr ausgereift und komfortabel und bekommt in Programmiererkreisen mehr und mehr Anhänger.
6 Kosten & Vertriebsmöglichkeiten
6.1 Kosten vor der Entwicklung
Um eine App für das iPad (oder sonstige Apple Produkte) zu entwickeln, benötigt man neben der Idee für eine App auch die entsprechende Hardware (siehe Kosten für Hardware) sowie die Software (siehe Kosten für Software). Wenn man keine eigene Idee hat, könnte man diese von einem Dienstleister entwickeln lassen. Allerdings würde dies den eigenen Verdienst stark einschränken und wäre Aufgrund des zur Zeit sehr niedrigen Preisniveaus im App Store nicht sinnvoll.
6.1.1 Kosten für Hardware
Um eine App zu programmieren benötigt man, wie bereits unter 5.1 Voraussetzungen geschrieben, einen Macintosh mit Intel Prozessor und mindestens Mac OS X 10.5 (Snow Leopard). Es ist nicht zwingend ein teurer Macintosh (z.B. Mac Pro) notwendig, ein günstiger Mac mini ist bereits ausreichend. Um aber auch grafisch anspruchsvollere Arbeiten erstellen zu können, ist ein leistungsstarkes Macbook oder ein günstiger Mac Pro empfehlenswert.
Der Mac mini ist ein, im Vergleich zu anderen PC- oder Apple Computern, ein kleiner Würfel, der Platz sparend ist und leicht vom einen zum einen anderen Ort transportiert werden kann. Weiterhin benötigt man einen Bildschirm und die entsprechenden Eingabegeräte. Der Nachteil am Mac mini ist jedoch, dass er sehr leistungsschwach ist und dass man den Mac mini im Nachhinein hardwaretechnisch nicht mehr, oder nur schwer und kostenaufwendig aufrüsten kann, um z.B. mehr Prozessorleistung oder Arbeitsspeicher zu erhalten.
Um unterwegs z.B. während Zugfahrten oder in Cafés an der App arbeiten zu können, bietet Apple als tragbare Macintoshs sog. Macbooks an. Macbooks gibt es in diversen Ausführungen und Leistungsstärken und es bleibt dem Programmierer überlassen, zu entscheiden, wie leistungsstark sein Macbook sein soll. Das Macbook gibt es als Standard Version, als Macbook Air und Macbook Pro. Diese Modelle unterscheiden sich vor allem in Rechnerleistung und Bildschirmgröße.
Eine andere Möglichkeit bietet der iMac. Der iMac ist ein Mac, in dem alles im Monitor integriert ist und lediglich eine Maus und eine Tastatur angeschlossen werden müssen. Auch hier stellt sich, wie beim Mac mini, ein Aufrüsten als schwierig dar.
Die Oberklasse von Apple ist der Mac Pro. Hier erhält man einen sehr leistungsstarken Rechner, der aus einem eigenen Tower besteht und deshalb auch beliebig nachgerüstet werden kann. Allerdings unterscheidet sich ein Mac Pro nicht nur durch die bessere Ausstattung, sondern auch durch den höheren Preis.
Einen Apple Monitor bekommt man für 850 € als 24" Version oder für 1.750 € als 30" Version. Das Anschließen eines Monitors einer anderen Firma ist ebenfalls möglich, die Apple Monitore bieten jedoch Vorteile im Bereich der Auflösung und Farbechtheit. Eine Maus und eine Tastatur von Apple liegen bei jedem System bei. Nachfolgend eine Aufstellung der Systeme und Kosten:
| Mac mini: | 809 – 1.050 € + Kosten für einen Monitor |
| MacBook: | 1.015 – 1.315 € |
| iMac: | 1.150 – 1.780 € |
| Mac Pro: | 2.300 – 2.990 € + Kosten für einen Monitor |
Da sich zwischen Apples Mac mini und Apples High-End-Variante Mac Pro eine deutliche Preisspanne ergibt, sollte sich der Programmierer im Vorfeld darüber im Klaren sein, für welchen Zweck er den Macintosh benötigt. Hat er vor, nur kleine Apps ohne aufwendige Grafiken zu erstellen, so reicht mit großer Wahrscheinlichkeit ein Mac mini vollkommen aus. Sollte er sich jedoch dazu entschließen, seine App mit aufwendigen Grafiken auszustatten, so ist es evtl. sinnvoll, auf einen besseren Macintosh zurückzugreifen. Die Kaufentscheidung sollte zuvor gut überlegt sein.[39]
6.1.2 Kosten für Software
Die Kosten für die Software teilen sich in verschiedene Bereiche auf.
Das Betriebssystem für einen Mac liegt bei jedem gekauften System bei und ist im Normalfall auch vorinstalliert. Benötigt man eine aktuellere Version, würde z.B. die aktuelle Mac OS X Version 10.6 Snow Leopard ca. 130 € kosten.
Die Programme, mit denen man eine App programmieren kann, sind alle kostenlos erhältlich bzw. liegen ebenfalls auf der System CD/DVD bei.
Man kann sich bei Apple als Entwickler registrieren und an dem Entwickler Programm teilnehmen, wodurch man Zugriff auf ein vollständiges und integriertes Verfahren zur Entwicklung und Verteilung von Anwendungen für iPad, iPhone und iPod Touch erhält. Die Mitgliedschaft kostet für Einzelpersonen (private Entwickler) 99 USD und für Firmen 299 USD.
Zusätzliche Entwicklertools, wie z.B. ein Programmcodeeditor oder andere kleine nützliche Werkzeuge, sind oft als Freeware erhältlich. Weitere Software wird zur Entwicklung einer App nicht benötigt.[40]
6.2 Werbung für die App
Damit die entwickelte App auch aus dem App Store heruntergeladen (als Freeware mit Werbung) oder gekauft (kostenpflichtige Version) wird, ist es möglich, Werbung für die App zu machen. Dies kann auf verschiedene Arten geschehen, wobei man darauf achten sollte, dass man die richtige Zielgruppe anspricht. Ebenfalls sollte man darauf achten, dass die Werbekosten nicht zu hoch werden.
Eine Low-Cost Variante der Werbung bieten soziale Netzwerke. Durch Gruppen, in der viele Leute registriert sind, kann man viele User auf einmal auf seine App aufmerksam machen. Ebenso kann man Internet Blogs nutzen, um seine App bekannt zu machen. Eine der vielzähligen Review Seiten ist eine weiter Möglichkeit Werbung zu machen. Man erreicht so aber nur einen kleinen Teil der potentiellen User. Einen anderen Weg bieten die vielen Internetforen, in denen man sich mit Apps beschäftigt. Durch gezieltes in Szene setzen werden viele User dadurch auf die App aufmerksam.
Mit einer guten App hat man natürlich auch die Chance, in einer Fachzeitschrift erwähnt zu werden. Dadurch spricht man eine weitere Zielgruppe an. Die potentiellen Nutzer erhalten dadurch direkt einen guten Eindruck von der App. Daher ist es sinnvoll seine App an Fachzeitschriften zu senden, damit die Redakteure diese App in Ihrer Zeitschrift erwähnen. So kann man ohne große Kosten eine große Aufmerksamkeit für seine App bekommen.
Auf kostenintensive Werbung wie TV-Werbung oder Anzeigen in Magazinen sollte man verzichten, da man nicht immer davon ausgehen kann, das man einen Verkaufsschlager kreiert hat. Somit könnten im schlimmsten Fall die Werbekosten höher als die Verkaufs- oder Werbeeinnahmen sein. Selbst wenn dies nicht der Fall ist und man nur wenig Gewinn erzielt, ist das nicht wirklich erstrebenswert. Man sollte also darauf achten, dass man billige, aber gute und zielgruppenorientierte Werbung macht.
Ergänzend dazu ist noch zu erwähnen, dass das momentane Preisniveau im App-Store noch sehr tief ist, sodass es kaum möglich ist, allein durch Anzeigen wie z.B. bei Google, Freemail, Gmx etc. genügend Exemplare zu verkaufen, um die Werbemaßnahmen zu finanzieren und gleichzeitig hohe Gewinne zu erzielen.[41] [42]
6.3 Verdienstmöglichkeiten
Hat der Entwickler seine App fertig entwickelt und diese im App Store veröffentlicht, so gibt es 2 Möglichkeiten mit ihr Geld zu verdienen. Entweder verkauft er die App im App Store und erhält die Verkaufserlöse oder er stellt seine App kostenlos im App Store zur Verfügung und bindet Werbung in die App ein. Der Umfang der App, d.h. Programmmöglichkeiten und Programmtiefe sollten bei der Entscheidung, ob die App durch Verkaufs- oder Werbeerlöse finanziert wird, mit berücksichtigt werden. Apps mit großem Programmumfang lassen sich besser Verkaufen. Kleine Apps mit kleinen nützlichen Tools sollten eher kostenlos mit Werbung angeboten werden.
6.3.1 Verkauf des Apps
Eine Möglichkeit um mit der App einen Erlös zu erziehlen, ist der Verkauf der App im App Store. Es ist dem Entwickler überlassen, welchen Preis er für die App festlegt. Der Preis sollte allerdings der App angemessen sein. Ist der Preis zu hoch, schreckt das potenzielle Kunden ab, ist der Preis zu niedrig, ist der Verdienst evtl. nich groß genug um die laufenden Kosten zu decken.
Beispiel: Der Preis pro App wird auf 2 € festgelegt. Dadurch werden 10.000 Apps verkauft, der Erlös beträgt 20.000 €.
Der Preis pro App wird auf 5 € festgelegt. Dadurch werden nur 3.000 Apps verkauft, der Erlös beträgt 15.000 €.
An den verkauften App verdient nicht nur der Entwickler, sondern auch Apple. Apple verlangt eine Provision von 30 % auf die Einnahmen die durch im App Store verkaufte Apps entstanden sind. Von der verbleibenden Summe werden zusätzlich noch Steuern abgezogen. Sollte ein Entwickler hauptberuflich Apps Entwickeln, so muss er einige Tausend Apps pro Monat verkaufen, um davon auch Leben zu können. In diesem Fall ist es sinnvoll mehrere Apps zum Verkauf im App Store anzubieten, da man nie davon ausgehen kann, dass sich eine App wie erhofft verkauft.[43]
6.3.2 Werbung im App
Abgesehen von der Möglichkeit für den Programmierer seine App im App Store zu verkaufen, hat er noch die Möglichkeit seine App kostenfrei im App Store zur Verfügung zu stellen und seine entstandenen Kosten durch den Einsatz von Werbung innerhalb der App zu decken. Bisher war es dem Programmierer überlassen, zu entscheiden, welchen Werbeanbieter er für seine App einsetzen möchte. Allerdings wurde dies durch eine Änderung in Apples Lizenzbedingungen größtenteils unterbunden. Apple schließt durch die neuen Lizenzbedingungen z.B. den größten Werbeanbieter Google aus den Apps aus[44] und zwingt damit die Programmierer, das Werbeprogramm iAd, welches direkt von Apple stammt, oder einen weniger bekannten Anbieter zu benutzen.
Das iAd Programm von Apple startet am 1. Juli 2010. Interessierte Firmen kaufen bei Apple Werbeplatz für eingeblendete Anzeigen (Views) und aufgerufene Anzeigen (Klicks). Für eine nur eingeblendete Anzeige müssen die Unternehmen weniger zahlen als dafür, wenn der Benutzer die Anzeige auch anklickt und damit auf die Webseite des Unternehmens (des Produkts, der Marke etc.) gelangt. Der Erlös für ein View Beträgt 0,01 USD, der Erlös für ein Klick 2 USD. Apple erhält etwa 40 % der Erlöse als provision, der Rest wird nach Erreichen einer bestimmten Summe dem Programmierer ausgezahlt. Obwohl das iAd Programm erst im Juli 2010 startet, hat Apple Zusagen in Höhe von insgesamt über 60 Millionen USD. Dies macht beinahe 50 Prozent der insgesamt vorhergesagten amerikanischen mobilen Werbeausgaben für die zweite Hälfte des Jahres 2010 aus.[45]
6.4 Gewinn- & Kostenkalkulation
Nachfolgend wird eine grobe Übersicht gegeben, welche Kosten entstehen können, wenn sich ein Programmierer dazu entschließt eine App zu programmieren und welche Verkaufszahlen erziehlt werden müssen, um die Kosten decken zu können.
Es entstehen folgende Kosten:
- Mac mini -- 809 €
- Mitgliedschaft im Apple Entwickler Programm -- ~80 €/Jahr für Einzelpersonen (Dollar-Euro Kurs vom 20.06.2010)
- Man betreibt nur kostenlose Werbung mit oben genannten Möglichkeiten -- 0 €
Es entstehen Gesamtkosten von etwa 889 € / 1131,70 USD (Dollar-Euro Kurs vom 20.06.2010)
Um die Kosten durch Erlöse auszugleichen, muss die App verkauft oder mit Werbung finanziert werden.
Legt man den Preis pro App auf 2 € fest, hat man einen Reinerlös, nach Abzug der Apple Provision, von 1,40 €. Ohne Abzug von Steuern muss man also ca. 635 Apps verkaufen, um die Kosten decken zu können.
Finanziert man die App mit Werbung, liegt der Reinerlös beim iAd Programm bei 0,006 USD pro View und 1,20 USD pro Klick. Geht man bei einem optimalen Verlauf von 1 Klick auf 20 Views aus benötigt man ca. 943 Clicks oder 188.816 Views um die Kosten zu decken.
Sollte sich bereits ein Macintosh im Besitz des Programmierers befinden, so senken sich die Kosten drastisch und es wird um ein Vielfaches einfacher, die enstandenen Kosten für das Apple Entwicklerprogramm, die einmalig pro Jahr entstehen, zu decken.
7 Kritik
Eine Hauptkritik an Apple und seinen Systemen ist, dass Apple einige fremde Softwareanbieter von seinen Systemen ausschließt. So wurden zum Beispiel die Lizenzbedingungen der Entwicklungsumgebung wie folgt verändert:
"[...] Ohne Apples vorherige schriftliche Erlaubnis ist es untersagt, Analysesoftware von Drittanbietern in den eigenen Applikationen einzusetzen, um Daten zu sammeln und Gerätedaten an Dritte zur Aggregation, Verarbeitung und Analyse zu übersenden [...]"[44].
Mit dieser Änderung wurde z.B. die Einbindung von Google-Werbung (Google Adsense) und weiteren Google Diensten verhindert. Adobes Flash wurde ebenfalls der Zugang zu Apples Systemen untersagt. Die Begründung von Apple dazu ist die, dass Flash-Anwendungen hohe Anforderungen an die Ressourcen haben und dass die Ressourcen des Systems geschützt werden sollen.
Die Nutzungsbedingungen für das iPhone SDK schreiben Entwicklern vor, welche Programmiersprachen sie zur Erstellung von iPhone-Applikationen nutzen dürfen[46]. Dies lässt das freie Entwickeln von Apps nicht im vollen Umfang zu.
Das Wall Street Journal berichtet, dass die US-Wettbewerbsaufsichtsbehörde Federal Trade Commission (FTC) deshalb gegen Apple ermittelt. Die FTC will prüfen, ob Apples Geschäftspraktiken bei der Software für mobile Endgeräte wettbewerbsschädigend sind[47].
Eine weiterer oft genannter Kritikpunkt ist der, dass Apple in der Lage ist, Apps einfach aus dem App Store zu entfernen. Meistens ohne eine Begründung für den Entwickler. So wurden in der letzten Zeit häufig Apps gelöscht, die auf einen sexuellen Inhalt hinwiesen. So flog Stern.de zum Beispiel kurzfristig aus dem App Store, weil eine Bilderstrecke zu "Erotik Art" Apple zu schlüpfrig erschien. Auch Bild.de muss die relevanten Partien seiner halbnackten Seite-eins-Mädchen schon seit Jahresbeginn mit weißen Blitzen unkenntlich machen.
Laut der Internetseite Golem.de war das iPad wohl der Grund für diese Aufräumaktion. Apple machte sich fit für den Start dieses Gerätes. Denn mit diesem Tablet-Gerät zielt Apple auf den Massenmarkt, das heißt, auch auf Familien und Kinder. Und diesen möchte man sexuelle Inhalte im App Store ersparen[48].
8 Schlussbetrachtung und Fazit
Apple bietet mit seiner Entwicklungsumgebung eine fertige Lösung an, um Apps zu entwickeln. Positiv dabei zu erwähnen ist, dass diese, abgesehen von der Entwicklerlizenz, eine kostenlose ist.
Für Einsteiger in die Programmierung ist diese Entwicklungsumgebung allerdings nicht ideal geeignet. Dafür empfehlen sich andere Systeme und Entwicklungsumgebungen. Für Profis bietet sie allerdings eine schnelle Möglichkeit Applikationen zu entwickeln und schnell zu verkaufen. Durch den App Store wird diese, auf dem Markt einzigartige Lösung, gleich mitgeliefert.
Ebenfalls positiv zu erwähnen ist, dass Apps für mehrere Systeme ausgelegt werden können. So hat man die Möglichkeit eine Anwendung gleichzeitig für Smartphones, Tablet-Pcs und Musikplayer zu entwickeln. Dies gibt es bei keinem anderen Anbieter weltweit.
Negativ ist allerdings, dass Apps eine Insellösung sind. Sie können nur auf Apple Produkten laufen. So ist deren Benutzerkreis doch stark eingeschränkt. Ebenfalls negativ ist, dass Lizenzmodel für den Vertrieb von Apps. Es ist dort keine klare Geschäftspolitik von Apple zu erkennen. Man kann jederzeit die Berechtigung verlieren, seine Apps zu verkaufen.
Abschließend kann man sagen, dass, bezogen auf den momentanen Markterfolg von Apple und deren innovativer Produktpolitik, das Entwickeln von Apps für die Zukunft noch interessanter und wichtiger werden könnte.
9 Anhänge
9.1 Literatur- und Quellenverzeichnis
9.2 Weitere Anhänge
Quellcode Nr. 1[49]
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after app launch
[window makeKeyAndVisible];
}
Quellcode Nr. 2[49]
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after app launch
// die Navigationsleiste
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:
CGRectMake( 0.0f, 20.0f, window.frame.size.width, 48.0f)];
// Darstellung der Navigationsleiste
[navBar setBarStyle: 0];
// Titel
UINavigationItem *title = [[UINavigationItem alloc] initWithTitle:@"Hello World"];
// Titel zu der Navigationsleiste hinzugefügt
[navBar pushNavigationItem:title animated:true];
// Navigationsleiste zu dem sichtbaren Bereich hinzufügen und sichtbar machen
[window addSubview:navBar];
[window makeKeyAndVisible];
// Speicher freigeben
[title release];
[navBar release];
}
10 Fußnoten
- ↑ Formulierung, vgl. Erica Sadun, S. 20
- ↑ vgl. Gründerszene, App
- ↑ vgl. Golem, 2 Millionen iPads verkauft
- ↑ vgl. eTest Hardware, iPad vorgestellt
- ↑ vgl. Apple, iPad Leistungsmerkmale
- ↑ vgl. Apple, Technische Daten des iPad
- ↑ vgl. Apple, iPad Shop
- ↑ vgl. Apple, iPhone
- ↑ vgl. Apple, App Store
- ↑ vgl. Apple, Technische Daten des iPhone
- ↑ vgl. Definition SDK
- ↑ vgl. iPad SDK
- ↑ vgl. Weitere IDE Komponenten
- ↑ vgl. Integrierte Entwicklungsumgebung
- ↑ vgl. Compiler
- ↑ vgl. Erica Sadun, S. 19f
- ↑ vgl. Michael Kain, S. 17
- ↑ vgl. Michael Kain, S. 18
- ↑ vgl. Erica Sadun, S. 52
- ↑ vgl. iPhone Dev Center
- ↑ vgl. Michael Kain, S. 21
- ↑ 22,0 22,1 22,2 vgl. Apple Dev Center, Tools
- ↑ vgl. Erica Sadun, S. 21
- ↑ vgl. GCC
- ↑ vgl. GDB
- ↑ vgl. Apple Dev Center, Xcode
- ↑ 27,0 27,1 27,2 27,3 27,4 vgl. Erica Sadun, S. 22
- ↑ vgl. Apfelwiki, Dashcode
- ↑ vgl. Mobile-Dev.de, iPad Simulator
- ↑ 30,0 30,1 vgl. Erica Sadun, S. 32
- ↑ vgl. Erica Sadun, S. 30
- ↑ 32,0 32,1 vgl. Erica Sadun, S. 31
- ↑ vgl. Günther Noack, S. 2
- ↑ vgl. Michael Kain, S. 20
- ↑ 35,0 35,1 35,2 vgl. Erica Sadun, S. 24
- ↑ vgl. Erica Sadun, S. 40f
- ↑ vgl. Erica Sadun, S. 57
- ↑ vgl. Areamobile.de, Marktanteile
- ↑ vgl. Hardware & Software Kosten Quelle 1 & 2
- ↑ vgl. Hardware & Software Kosten Quelle 1 & 2
- ↑ vgl. Entwicklerlizenz
- ↑ vgl. iAd Werbung Quelle 1 & 2
- ↑ vgl. Apple, iPad Shop:
- ↑ 44,0 44,1 vgl. Golem, Apple Sperrt Google aus
- ↑ vgl. iAd Werbung Quelle 1 & 2
- ↑ vgl. Golem, Ermittlungen gegen Apple
- ↑ vgl. Golem, FTC ermittelt
- ↑ vgl. Golem, Nacktscanner fürs iPhone
- ↑ 49,0 49,1 vgl. Mobile-dev, Hello World







