Kapitel 1 Hello iphone



Ähnliche Dokumente
Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Import des persönlichen Zertifikats in Outlook 2003

Die Dateiablage Der Weg zur Dateiablage

Starten der Software unter Windows 7

Leseprobe. »Hello iphonemodels, Layer, Animationen« Inhaltsverzeichnis. Index. Die Autoren. Apps programmieren für iphone und ipad

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Import des persönlichen Zertifikats in Outlook Express

AK Medientechnologien 08 App Deployment. Josef Kolbitsch

Import des persönlichen Zertifikats in Outlook2007

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Registrierung am Elterninformationssysytem: ClaXss Infoline

1 Konto für HBCI/FinTS mit Chipkarte einrichten

Für Windows 7 Stand:

Installation und Test von Android Apps in der Entwicklungs- und Testphase

M-net -Adressen einrichten - Apple iphone

iphone-kontakte zu Exchange übertragen

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS

Anleitungen zum Publizieren Ihrer Homepage

Der Kalender im ipad

Bilder zum Upload verkleinern

Newsletter. 1 Erzbistum Köln Newsletter

Handbuch B4000+ Preset Manager

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

tentoinfinity Apps 1.0 EINFÜHRUNG

Steganos Secure Schritt für Schritt-Anleitung für den Gastzugang SCHRITT 1: AKTIVIERUNG IHRES GASTZUGANGS

Institut für Existenzgründungen und Unternehmensführung Wilfried Tönnis, M.A. Installationshandbuch

Anleitung für die Registrierung und das Einstellen von Angeboten

Herzlich Willkommen bei der BITel!

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

Profi cash 10. Electronic Banking. Installation und erste Schritte. Ihre Spezialisten für den elektronischen Zahlungsverkehr und moderne Bezahlsysteme

Installation älterer Programmversionen unter Windows 7

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Starten der Software unter Windows XP

Jederzeit Ordnung halten

TeamViewer App für Outlook Dokumentation

Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers

Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers

DFÜ-Netzwerk öffnen Neue Verbindung herstellen Rufnummer einstellen bundesweit gültige Zugangsnummer Benutzererkennung und Passwort

Apple Train the Trainer 10 App Store Submission. Josef Kolbitsch

Startmenü So einfach richten Sie surfen manuell auf Ihrem PC oder Notebook ein, wenn Sie Windows XP verwenden.

TeamSpeak3 Einrichten

So richten Sie Ihr Postfach im Mail-Programm Apple Mail ein:

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

FritzCall.CoCPit Schnelleinrichtung

-Bundle auf Ihrem virtuellen Server installieren.

CALCOO Lite. Inhalt. 1. Projekt anlegen / öffnen. 2. Projekt von CALCOO App importieren

How to install freesshd

Tipps und Tricks zu den Updates

easytermin App easysolution GmbH 1

Installation des Zertifikats. Installationsanleitung für Zertifikate zur Nutzung des ISBJ Trägerportals

Installationshandbuch

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Installation und Sicherung von AdmiCash mit airbackup

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Comic Life 2.x. Fortbildung zum Mediencurriculum

Pydio - Installation für mobile Endgeräte

ÖKB Steiermark Schulungsunterlagen

Guide DynDNS und Portforwarding

Informatik I Tutorial

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Sollten trotz allem Schwierigkeiten auftreten und Sie sich nicht anmelden können, melden Sie sich einfach bei uns:

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Anleitung zur Installation des EPSON TM-m30 WLAN Moduls

Bedienungsanleitung für das IT Center Webhosting

Fingerpulsoximeter. A. Wie führt man einen Echtzeitdatentransfer vom PULOX PO-300 zum Computer durch und speichert diese Messdaten auf dem PC?

Grundfunktionen und Bedienung

Die Cloud der Gruppe Clubmädchen

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen

Konvertieren von Settingsdateien

Informatik 1 Tutorial

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED

GeoPilot (Android) die App

Speichern. Speichern unter

Der einfache Weg zum CFX-Demokonto

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Einkaufslisten verwalten. Tipps & Tricks

Einrichtung -Account

OP-LOG

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Netzwerkeinstellungen unter Mac OS X

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Tutorial -

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

VIDA ADMIN KURZANLEITUNG

Durchführung der Datenübernahme nach Reisekosten 2011

Einrichtungsanleitungen Hosted Exchange 2013

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

Einrichten eines IMAP Kontos unter Outlook Express

Psi unter Mac OS X benutzen

NOXON Connect Bedienungsanleitung Manual

Artikel Schnittstelle über CSV

Transkript:

Kapitel 1 Hello iphone 1»Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen.«douglas Adams Was gibt es Schöneres als Erfolg? Das gilt im Fußball ebenso wie beim Lernen. Mit Hilfe dieses Buches lernen Sie, Apps für ios zu programmieren. Der Weg dahin ist nicht immer geradlinig, manchmal steinig; es gibt Tage, da hat man das Gefühl, nur auf der Stelle zu treten, und an anderen geht es in rasendem Tempo bergauf, dem Ziel entgegen. Auf jeden Fall braucht es etwas Geduld, bis man sich bis zu den Feinheiten durchgearbeitet hat und mehr als eine aus Standardkomponenten bestehende App programmieren kann. Damit Ihnen der Weg lohnenswert erscheint und Sie nicht direkt zu Beginn von Theorie erschlagen werden, beginnen wir dieses Buch mit der Programmierung einer kleinen App. Die dabei auftretenden Begriffe erläutern wir in diesem Kapitel nur kurz, da es hier um die Praxis geht; dieses Kapitel zeigt Ihnen, wie Sie die für die Programmierung notwendige Arbeitsumgebung einrichten, Sie damit eine kleine App erstellen und diese anschließend auf ein iphone oder ipad zur Ausführung gelangt. iphone, ipad und ipod touch Das iphone besitzt einen kleinen Bruder, den ipod touch. Dieser ipod sieht dem iphone sehr ähnlich, ist aber flacher und verfügt über keine Mobilfunk-Funktionalität. Das Betriebssystem des ipod touch ist dasselbe wie das des iphones, also ios. Daher kann ein für das iphone geschriebenes Programm in der Regel auch auf einem ipod touch laufen. Bei der ios-programmierung gibt es fast keine Unterschiede mehr zwischen iphone und ipod touch. Der Übersichtlichkeit halber ist hier aber nur vom iphone die Rede, was bis auf sehr wenige Ausnahmen auch den ipod touch einschließt. Dasselbe gilt auch für das ipad. Stellen, an denen Besonderheiten bei der Programmierung für das ipad zu beachten sind, sind entsprechend gekennzeichnet. Für den Rest des Textes gebrauchen wir»iphone«,»ipod«und»ipad«synonym. 21

1 Hello iphone 1.1 Voraussetzungen Um Apps für ios programmieren zu können, benötigen Sie zwingend zwei Dinge: einen Apple-Computer mit Intel-Prozessor und einer möglichst aktuellen Version von OS X, also Mountain Lion (10.8) oder Mavericks (10.9), und das Software Development Kit (SDK) für ios. Das SDK enthält alle notwendigen Programme und Komponenten für die App-Entwicklung; die aktuelle Version hat die Nummer 5 und läuft nur unter Mountain Lion oder Mavericks. Obwohl Apple ältere Versionen von OS X noch länger pflegt, laufen aktuelle Versionen der SDKs und anderer Programme von Apple häufig nur jeweils auf der aktuellsten Version. Abbildung 1.1 Xcode zum Download im Mac App Store Sie können das SDK als Bestandteil des Programms Xcode kostenlos über das Programm App Store auf Ihren Mac herunterladen. Neben ausreichend Hauptspeicher (2 GB sind ein guter Anfang) sollte Ihr Mac über ein großes Display verfügen. Für größere Projekte und längeres Arbeiten sollten Sie mindestens ein 15"-Display verwenden, um nicht zu schnell die Übersicht zu verlieren. 22

1.1 Voraussetzungen 1.1.1 Das SDK und die Entwicklerprogramme Das SDK enthält neben einer integrierten Entwicklungsumgebung (IDE 1 ) namens Xcode zahlreiche grafische Tools, mit denen die Entwicklung von ios-applikationen leicht von der Hand geht, sowie die notwendigen Bibliotheken. Mit dem SDK können Sie Apps für ios und Programme für OS X erstellen. Sie können allerdings aus dem Stand heraus keine Apps auf einem Endgerät testen. Dafür müssen Sie erst Mitglied im Apple Developer Network werden und für das ios Developer Program bezahlt haben. 1 Für zurzeit 80 EUR pro Jahr bekommen Sie dort 2 ein Zertifikat, mit dem Sie eigene Applikationen signieren und diese auf bis zu 100 ios-geräte aufspielen können. Die Teilnahme am ios Developer Program ist überdies die Voraussetzung dafür, Apps in den itunes Store 3 einstellen zu können. Das ios Developer Program existiert in zwei Ausprägungen: Individual und Company. Die Company-Version unterscheidet sich von der Individual-Version durch die Fähigkeit, Entwicklerteams zu verwalten, bietet dem einzelnen Programmierer jedoch keine weiteren Vorteile. Die Mitgliedschaft im ios Enterprise Program, die 279, EUR jährlich kostet, ermöglicht die Installation selbstgeschriebener Apps auf mehr als 100 eigenen Geräten. Mit diesem Programm können Sie wiederum keine Apps in den Apple App Store hochladen. Das ios Enterprise Program ist nur für Firmen gedacht, die hausinterne Apps entwickeln möchten. Für private oder selbständige Entwickler sowie kleine Firmen ist dieses Programm daher in der Regel eher uninteressant. Sowohl für das Enterprise Programm als auch für das Company Developer Programm ist eine D-U-N-S-Nummer 4 erforderlich. Nutzer aus dem akademischen Bereich können am kostenlosen ios University Program teilnehmen, das zwar den Test von selbstgeschriebenen Apps auf Endgeräten erlaubt, aber keine Veröffentlichung im Apple App Store. Hilfe von Apple inklusive Bei allen kostenpflichtigen Programmen sind zwei Supportanfragen pro Jahr beim technischen Entwicklersupport von Apple enthalten. Sie können sich damit von Apple also bei der Entwicklung Ihrer Programme individuell unterstützen lassen, wenn Sie auf Probleme stoßen. Weitere Supportanfragen können Sie als Mitglied im Entwicklerprogramm kostenpflichtig erwerben. Außerdem haben Sie Zugriff auf die Entwicklerforen, in denen sich auch die Entwickler von Apple tummeln. 1 Integrated Development Environment 2 https://developer.apple.com/devcenter/ios 3 Häufig auch kurz als»app Store«bezeichnet. 4 http://www.dnb.ch/htm/690/de/eindeutige-identifikation.htm 23

1 Hello iphone Falls Sie nicht die aktuelle Version des SDK verwenden möchten oder können, stehen Ihnen nach der Anmeldung im ios Developer Center unter der URL https:// developer.apple.com/downloads/index.action auch ältere SDK-Versionen zum Download zur Verfügung. Benutzer, die noch nicht mit Mountain Lion arbeiten, können dort auch noch eine Version für Lion oder Snow Leopard laden. An dieser Stelle aber die Warnung: Apple schneidet bekanntermaßen gern, häufig und unvermittelt alte Zöpfe ab. Verlassen Sie sich also nicht darauf, dass Apple Mountain Lion auch in Zukunft mit neuen SDKs versorgt. Aktualisieren Sie im Zweifelsfall also lieber auf OS X 10.9, sofern das möglich ist; damit haben Sie immer Zugriff auf die neueste SDK- Version. Voraussetzungen für dieses Buch Um die in diesem Buch gezeigten Beispiele nachzuprogrammieren, reicht das SDK ohne die kostenpflichtige Registrierung als Entwickler aus. Alle Beispiele laufen zumindest mit Einschränkungen im Simulator. Die Voraussetzungen dafür sind lediglich die kostenlose Anmeldung im Apple Developer Network und das Herunterladen und Installieren des jeweils aktuellen SDK oder die Installation über den Mac App Store. Eine detaillierte Beschreibung von Xcode finden Sie in Kapitel 10,»Jahrmarkt der Nützlichkeiten«. Eine so umfangreiche IDE will erkundet und an die eigene Arbeitsweise angepasst sein. Für den Einstieg genügt es allerdings vollkommen, wenn Sie den Anweisungen folgen, die bei den Beispielen in diesem Buch stehen. Sie erklären alle Schritte ausführlich, verständlich und reproduzierbar, ohne dass Sie sich zunächst tiefer in Xcode einarbeiten müssen. 1.1.2 Der Simulator Das SDK bringt einen iphone- und ipad-simulator mit. Dieser simuliert wie der Name bereits vermuten lässt das betreffende Endgerät. Dabei greift er auf die Ressourcen des Host-Computers, also Ihres Mac-Rechners, zurück. Mit dem ios-simulator können Sie die meisten Funktionen eines ios-gerätes nachstellen. Die Geo-Lokalisierung funktioniert nur auf Rechnern mit Airport; allerdings lässt sich im Simulator auch ein künstlicher Aufenthaltsort festlegen. Die Kamera, der Bewegungssensor und Mobilfunk funktionieren im Simulator jedoch nicht. Hierfür müssen Sie eine App immer erst auf einem durch das ios Developer Program entsprechend freigeschalteten Gerät installieren. 24

1.1 Voraussetzungen 1 Abbildung 1.2 Der iphone-simulator Das Dateisystem des Simulators, das er über das Dateisystem Ihres Macs abbildet, verhält sich etwas anders als das eines echten ios-gerätes, und auch zentrale Ressourcen wie Adressbuch, Kalender und Keychain sind im Detail unterschiedlich. Der Simulator ist daher gut geeignet, um Grundfunktionalitäten zu prüfen Testläufe auf echten Geräten ersetzt er hingegen nicht. Auch wenn Ihre App im Simulator perfekt laufen sollte, kommen Sie niemals um Tests auf mindestens einem Gerät herum, wenn Sie Ihre App für andere Benutzer veröffentlichen möchten. Hier ist eine wahrscheinlich unvollständige Liste mit Gründen dafür: Ein ios-gerät hat eine andere Architektur als der Simulator beziehungsweise der Mac. Das fängt schon mit unterschiedlichen Prozessorfamilien an, deren Befehlssätze vollkommen unterschiedlich sind. Die Geschwindigkeit Ihrer App kann auf beiden Systemen stark variieren. Ein Programm, das im Simulator flüssig läuft, kann auf einem ipod quälend langsam dahinkriechen. Ihr Mac hat vermutlich wesentlich mehr Hauptspeicher zur Verfügung als die 1 GB eines aktuellen iphones oder ipads. Während die App im Simulator stabil läuft, gibt sie auf dem Gerät möglicherweise am laufenden Band Speicherwarnungen aus. 25

1 Hello iphone Die Dateisysteme sind verschieden aufgebaut, und Sie können viele Verzeichnisse unter ios nicht lesen, geschweige denn schreiben. Das betrifft besonders das Ressourcenverzeichnis einer App, in das Sie auf dem iphone nicht schreiben können, im Simulator hingegen schon. Der Simulator unterstützt nicht alle Hardwareeigenschaften. Sie können keine Fotos mit der Kamera schießen, und es gibt keinen Beschleunigungs- oder Gyrosensor. Tipp Bevor Sie Ihre App in den App Store hochladen, sollten Sie sie ausführlich auf echten Geräten testen am besten auf jedem Gerätetyp, den Ihre App unterstützt. Hierbei erweisen sich gerade ältere Modelle als besonders wertvolle Testgeräte. Sie sind in der Regel langsamer und haben weniger Arbeitsspeicher, so dass auf diesen Geräten entsprechende Programmfehler wesentlich häufiger auftreten. Wenn Ihre App kompatibel mit älteren ios-versionen sein soll, sollten Sie sie auf einem Gerät mit jeweils diesen Betriebssystemversionen testen. Dadurch finden Sie inkompatiblen Code am zuverlässigsten. 1.1.3 Test der Arbeitsumgebung Xcode hat eine eigene Versionsnummerierung, deren aktuelle Version 5 ist. Seit Version 4.3 befindet sich die Entwicklungsumgebung mit allen Komponenten im Programme-Ordner, wohin der App Store auch alle anderen Applikationen installiert. Ziehen Sie das Xcode-Symbol am besten ins Dock, denn Sie werden das Programm im Laufe dieses Buches vermutlich häufiger verwenden, und starten Sie es anschließend. Xcode begrüßt Sie mit folgendem Startfenster: Abbildung 1.3 Das Startfenster von Xcode 26

1.1 Voraussetzungen Beim ersten Start von Xcode weist das Programm Sie gegebenenfalls an, weitere Bestandteile zu installieren. Bestätigen Sie die Aufforderung einfach mit Install (siehe Abbildung 1.4 und Abbildung 1.5); eine Wahl haben Sie ohnehin nicht. 1 Abbildung 1.4 Installation der Command Line Tools Abbildung 1.5 Installation zusätzlicher Komponenten Das SDK bringt standardmäßig immer nur die Unterstützung für die aktuelle ios- Version mit. Bei Bedarf können Sie über den Menüpunkt Xcode Preferences Downloads die Debug-Unterstützung und den Simulator für ältere ios-versionen von Apple laden. Sie starten den Download, indem Sie jeweils auf das Symbol rechts neben der Größenangabe (siehe Abbildung 1.6) klicken. Xcode unterwegs Da Sie neben der Xcode-Installation aus dem App Store eben noch diverse Zusatzpakete nebst Offlinedokumentation nachladen müssen, sollten Sie vor der Verwendung von Xcode auf Reisen oder an Orten ohne Internetzugang vorher gut prüfen, ob wirklich alle für Ihre Arbeit notwendigen Komponenten bereits installiert sind. Es ist zu ärgerlich, im Flieger freudestrahlend das MacBook aufzuklappen, um mit Xcode zu arbeiten, nur um dann festzustellen, dass Sie dafür noch einige hundert Megabyte an Daten installieren müssen. 27

1 Hello iphone Abbildung 1.6 Unterstützung für ältere ios-versionen Unter der Rubrik Documentation im selben Fenster können Sie die Entwicklerdokumentation herunterladen. Erstellen Sie, um die Lauffähigkeit Ihrer Entwicklungsumgebung zu prüfen, über das Auswahlfeld Create a new Xcode project (siehe Abbildung 1.3) oder das Menü File New New Project... ein neues Projekt. Im nächsten Fenster wählen Sie in der linken Auswahlspalte in der Gruppe ios den Punkt Application und rechts im Übersichtsfenster das Icon Single View Application (siehe Abbildung 1.7). Abbildung 1.7 Ein neues ios-projekt 28

1.1 Voraussetzungen Durch Auswahl des Buttons Next gelangen Sie zu dem in Abbildung 1.8 dargestellten Dialog. Im nächsten Schritt geben Sie Ihrem Projekt einen Namen. Hier können Sie zwar einen beliebigen Text eingeben, es empfiehlt sich jedoch, Leerzeichen und Sonderzeichen zu vermeiden. Idealerweise besteht der Name nur aus Buchstaben und Ziffern. 1 Abbildung 1.8 Namen für das Projekt festlegen Als Organization Name verwenden Sie den Namen der Organisation, Firma oder Person, die das Urheberrecht an den Quellen des Projekts besitzt, da Xcode diesen Wert in die Copyright-Angaben der Quelltexte einfügt. Ansonsten findet der Organisationsname keine Verwendung. Für den Company Identifier verwenden Sie in der Regel den vollqualifizierten Domainnamen in umgedrehter Schreibweise der Organisation, der das Projekt gehört. Beispielsweise gehört das Projekt in Abbildung 1.8 der Organisation Cocoaneheads mit der Domain cocoaneheads.de. Der dazugehörende Company-Identifier ist somit»de.cocoaneheads«. Aus Ihren Eingaben für die Felder Product Name und Company Identifier erzeugt Xcode die App-ID und zeigt sie unter Bundle Identifier an. Sie stellt eine eindeutige Kennung für die App dar, anhand deren ein ios-gerät die verschiedenen installierten Apps unterscheiden kann. Dabei ist die Verwendung des Domainnamens als Basis für den Company-Identifier eine einfache Möglichkeit, Namenskonflikte bei den Bundle-Identifiern verschiedener App-Hersteller zu vermeiden. 29

1 Hello iphone Zusätzliche Einstellungen bei älteren Xcode-Versionen In Xcode 4 können Sie in diesem Dialog zusätzlich den Speicherverwaltungstyp des Projekts, die Benutzung von Storyboards und das Anlegen eines Test-Targets festlegen. Falls Sie noch diese Xcode-Version verwenden, aktivieren Sie bitte die Optionen Automatic Reference Counting und Use Storyboards, damit Ihr Projekt in diesen Punkten dem Beispielprojekt entspricht. Im letzten Schritt bestimmen Sie den Ordner, in dem Xcode das Projekt ablegen soll, und geben an, ob Xcode das Projekt unter eine eigene Git-Versionsverwaltung stellen soll. Bestätigen Sie die Auswahl eines geeigneten Speicherortes, und beenden Sie damit den Dialog. Es erscheint das Hauptfenster von Xcode mit den Projekteinstellungen (siehe Abbildung 1.9). Abbildung 1.9 Das Hauptfenster von Xcode Wählen Sie nun oben links im Xcode-Fenster das Ausführungsziel für das soeben erstellte Projekt aus z. B. iphone Retina (4-inch), und starten Sie anschließend mit dem Button Run, der links neben dem Auswahlfeld sitzt, oder mit der Tastenkombination (cmd)+(r) die Übersetzung des Projekts und die Ausführung im Simulator (siehe Abbildung 1.10). 30

1.1 Voraussetzungen 1 Abbildung 1.10 Auswahl des Ausführungsziels Xcode zeigt im Infobereich oben in der Mitte des Fensters den aktuellen Fortschritt an (siehe Abbildung 1.11) und startet anschließend das Projekt im iphone-simulator. Abbildung 1.11 Fortschrittsanzeige von Xcode Wenn Sie im Simulator eine langweilige, weiße Fläche wie in Abbildung 1.12 sehen, hat alles geklappt. Sie haben Xcode korrekt installiert, und das Übersetzen von Projekten funktioniert auch. Damit ist es für Sie an der Zeit, die erste App zu programmieren. Abbildung 1.12 Das Testprojekt funktioniert. 31

1 Hello iphone 1.2 App geht s Die Werkbank ist eingerichtet, jetzt ist es an der Zeit für das erste richtige Projekt. Damit erhalten Sie einen Einblick in die Funktionsweise einer App. Sie sollen zunächst lernen, wie Sie eine App in Xcode erstellen, mit der ein Benutzer interagieren kann und die darüber hinaus noch etwas mehr macht, als das obligatorische»hallo Welt«auszugeben. Das folgende Beispielprojekt zeigt dem Benutzer einen Button an. Wenn er diesen drückt, ruft die App im Hintergrund die Daten aus dem Internet zu einer URL ab und zeigt den Inhalt der abgerufenen Seite an. Sie lernen dabei schon eine ganze Reihe wichtiger Grundbegriffe kennen. Projektinformation Den Quellcode des folgenden Beispielprojekts finden Sie auf der beiliegenden DVD im Ordner Code/Apps/iOS7/HelloiPhone oder im Github-Repository zum Buch im Unterverzeichnis Apps/iOS7/HelloiPhone. Sie können das Github-Repository über die URL https://github.com/cocoaneheads/iphone/tree/auflage_3 erreichen und dort den kompletten Inhalt in einer Zip-Datei laden. Alternativ können Sie auch eine Arbeitskopie über die Anweisung git clone git:// github.com/cocoaneheads/iphone.git erstellen. Falls Sie mit Git noch nicht vertraut sind, schlagen Sie in Kapitel 10,»Jahrmarkt der Nützlichkeiten«, nach; dort ist die Arbeit mit Git ausführlich erläutert. Außerdem zeigen wir Ihnen dort in einer detaillierten Anleitung, wie Sie das komplette Repository auschecken können. 1.2.1 Ein neues Projekt Um die Beispiel-App zu erstellen, erzeugen Sie in Xcode ein neues Projekt vom selben Typ wie im vorangegangenen Abschnitt (ios Single View Application). Bei der Konfiguration des Namens und der Projektparameter setzen Sie dieselben Angaben wie in Abbildung 1.13 gezeigt. Wählen Sie im nächsten Schritt einen Speicherort für das Projekt aus, und öffnen Sie nach dem Erscheinen des Xcode-Hauptbildschirms durch einen einfachen Klick die Datei Main.storyboard 5, die Sie im Projektnavigator auf der linken Seite finden. Dieses Storyboard enthält die grafische Benutzerschnittstelle oder kurz GUI 6 Ihrer App (siehe Abbildung 1.14). 5 In Xcode 4 heißt die Datei MainStoryboard.storyboard. 6 Graphical User Interface 32

1.2 App geht s 1 Abbildung 1.13 Projekteinstellungen für die Beispiel-App Abbildung 1.14 Die grafische Benutzerschnittstelle der neuen App 33

1 Hello iphone Da Sie beim Anlegen des Projekts eine App auf Basis eines einzelnen Views gewählt haben, hat Ihnen Xcode mit dem Storyboard bereits diesen View und einen Viewcontroller angelegt. Ein View ist ein Objekt, das etwas anzeigt, während ein Viewcontroller die Anzeige des Views steuert und dessen Eingaben (z. B. Antippen, Texteingaben, Tastendrücke) auswertet. Wählen Sie auf der großen Arbeitsfläche in der Mitte des Xcode-Fensters den View das ist das weiße Rechteck mit der Maus aus. Xcode hebt den View etwas hervor und zeigt links daneben den Viewcontroller mit einem gelben Icon und den View mit einem weißen Icon in einer Hierarchie an. Die Hierarchie befindet sich wiederum in einer Storyboard-Szene (siehe Abbildung 1.15). Ein Storyboard kann beliebig viele solcher Szenen enthalten. Abbildung 1.15 Eine Storyboard-Szene mit einem View Öffnen Sie nun auf der rechten Seite des Xcode-Fensters die Utilities-Ansicht, indem Sie in der Titelzeile auf den in Abbildung 1.16 gezeigten Button klicken. 34

1.2 App geht s 1 Abbildung 1.16 Öffnen des Utilities-Bereiches Unten rechts in der Utilities-Ansicht finden Sie die Objektbibliothek, indem Sie das Würfelsymbol auswählen (siehe Abbildung 1.17). Abbildung 1.17 Die Objektbibliothek Geben Sie in das Suchfeld ganz unten den Text»label«ein. Die Objektbibliothek zeigt Ihnen dann nur noch ein Objekt mit dem Namen Label an, und wenn Sie es anklicken, öffnet Xcode links daneben eine Beschreibung dazu (siehe Abbildung 1.18). Abbildung 1.18 Label mit Beschreibung in der Objektbibliothek Ziehen Sie ein Label mit der Maus oben links in den View, so wie es Abbildung 1.19 zeigt. Im Zweifelsfall lassen Sie sich von den automatisch erscheinenden gestrichelten Hilfslinien inspirieren. Wenn Sie mit der Position zufrieden sind, lassen Sie das Label los, um es in den View einzufügen. 35

1 Hello iphone Abbildung 1.19 Platzieren eines Labels auf dem View Damit das Label auch ausreichend Platz für den anzuzeigenden Inhalt hat, fassen Sie mit der Maus den mittleren Begrenzungspunkt an der rechten Seite des Labels und ziehen ihn nach rechts, bis eine weitere Hilfslinie erscheint (siehe Abbildung 1.20). Abbildung 1.20 Größenänderung des Labels Danach setzen Sie die Textausrichtung des Labels im Attributinspektor auf zentriert (siehe Abbildung 1.21). Sie können den Attributinspektor öffnen, indem Sie das Label im View auswählen und die Tastenkombination (alt)+(cmd)+(4) drücken. 36

1.2 App geht s 1 Abbildung 1.21 Ausrichtung der Label-Beschriftung im Attributinspektor Suchen Sie anschließend in der Objektbibliothek nach»button«, und ziehen Sie das linke Objekt mit dem Namen Button (siehe Abbildung 1.22) ebenfalls auf den View. Ein Button zeigt eine Schaltfläche an, mit der die Nutzer eine Aktion in der App auslösen können. Abbildung 1.22 Buttons in der Objektbibliothek Um dem Button eine Beschriftung zu geben, führen Sie einen Doppelklick in dessen Beschriftung aus und geben dort den Text»Go!«ein. Nach Abschluss dieser Arbeiten verfügt Ihr View nun über ein Label und einen Button. Durch das Einfügen dieser Elemente haben Sie auch die Hierarchie in der Storyboard-Szene geändert. Auch dort finden Sie nun das Label und den Button. Den fertigen View und die neue Hierarchie sehen Sie in Abbildung 1.23. Die in dieser Abbildung gezeigten blauen Rahmen um den das Label und den Button können Sie über den Menüpunkt Editor Canvas Show Bounds Rectangles einschalten; sie zeigen Ihnen jeweils die genaue Position und Größe der Elemente an. 37

1 Hello iphone Abbildung 1.23 Der View mit Label und Button Übersetzen und starten Sie die App im Simulator über den Run-Button von Xcode oder mit (cmd)+(r), wie Sie das bereits zum Testen Ihrer Xcode-Installation gemacht haben. Sie sehen anschließend den weißen View mit dem Label und dem Button (siehe Abbildung 1.24) im Simulator. Das Drücken des Buttons verändert zwar dessen Farbe, ansonsten tut sich aber nichts. Es fehlt jetzt noch die eigentliche Funktionalität der App, dass der Benutzer durch das Drücken des Buttons das Laden von Daten über eine URL auslöst und das Label dann den Inhalt der URL anzeigt. Dazu müssen Sie einige Zeilen Code programmieren und den Button und das Label mit diesem Code verbinden. 38

1.2 App geht s 1 Abbildung 1.24 Die App im Simulator 1.2.2 Sehr verbunden Die Verbindung von Code-Editor und GUI-Editor in Xcode macht das Erstellen dieser Verbindungen extrem einfach. In älteren Xcode-Versionen war der GUI-Editor, der Interface-Builder, ein externes, separates Programm; mit Xcode 4 hat Apple alles zu einem Programm zusammengefasst. Beim Anlegen des Projekts hat Xcode bereits eine Klasse für den Viewcontroller erzeugt, die sich in die Dateien ViewController.h und ViewController.m aufteilt. Dateien mit der Endung.h heißen Headerdateien und deklarieren verschiedene Programmierelemente. Im Gegensatz dazu heißen Dateien mit der Endung.m Implementierungsdateien. Sie enthalten den eigentlichen Programmcode. Die Headerdatei des Viewcontrollers beschreibt also, was diese Klasse kann, und die Implementierungsdatei beschreibt, wie sie es macht. Der Viewcontroller beherbergt die Logik des Bespielprogramms. Dazu müssen Sie zwei Verbindungen zwischen der Benutzeroberfläche und der Klasse ViewController herstellen. Wählen Sie dazu die Datei Main.storyboard aus, und öffnen Sie anschlie- 39

1 Hello iphone ßend über die Tastenkombination (alt)+(cmd)+( ) oder den betreffenden Button in der Titelleiste den Hilfs- beziehungsweise Assistant-Editor. Der Hilfseditor zeigt zu dem Haupteditor einen weiteren Editor an, dessen Inhalt in der Regel in einer Beziehung zu dem Inhalt des Haupteditors steht; beispielsweise zeigt er zu dem ausgewählten Viewcontroller im Storyboard den Quelltext der passenden Implementierungsdatei an. Abbildung 1.25 Öffnen des Assistant-Editors Der Hilfseditor besitzt am oberen Rand eine Sprungleiste (Jump Bar). Wenn Sie dort den Eintrag ViewController.m anklicken, erscheint ein Pop-up-Menü (Abbildung 1.26). Darin wählen Sie den Eintrag ViewController.h aus, so dass der Hilfseditor diese Datei anzeigt. Abbildung 1.26 Die Sprungleiste im Hilfseditor Sie sollten nun im Haupteditor das Storyboard der App und im Hilfseditor den Inhalt der Datei ViewController.h sehen (siehe Abbildung 1.27). Sie können jetzt Verbindungen von Elementen aus dem Storyboard direkt in die Header- oder Implementierungsdatei ziehen und so die View-Elemente und Programmcode verbinden. Im vorliegenden Beispiel wollen wir das Label aus dem Code heraus ansprechen können, um seinen Wert ändern zu können. Darüber hinaus soll das Drücken des Buttons eine Aktion auslösen. Ziehen Sie daher bei gedrückter (ctrl)-taste mit der Maus eine Verbindung vom Label in den Hilfseditor, und lassen Sie die Maustaste dort unterhalb der Zeile los, die mit dem Schlüsselwort @interface beginnt (siehe Abbildung 1.28). 40

1.2 App geht s 1 Abbildung 1.27 Haupt- und Hilfseditor Abbildung 1.28 Verbindung vom Label zur Deklaration erstellen 41

1 Hello iphone Nach dem Loslassen erscheint der in Abbildung 1.29 gezeigte Popup-Dialog, in dem Sie die Art der anzulegenden Verbindung definieren. Eine Verbindung von einem View- Element zu einer Variablen nennt sich Outlet. Behalten Sie die Voreinstellungen bis auf den Namen bei, für den Sie im entsprechenden Feld den Text»label«eingeben. Klicken Sie anschließend auf Connect, um die Verbindung erstellen zu lassen. Abbildung 1.29 Parameter für die Verbindung Xcode erzeugt anschließend in der Datei ViewController.h die folgende Zeile: @property (weak, nonatomic) IBOutlet UILabel *label; Sie deklariert eine Property mit dem Namen label. Eine Property speichert eine Eigenschaft; in diesem Fall ist das ein Verweis auf das Label im View. Beim Button ist die umgekehrte Kommunikationsrichtung erforderlich: Das Drücken des Buttons soll eine Aktion im Viewcontroller ausführen. Ziehen Sie dafür ebenfalls bei gedrückter (ctrl)-taste eine Verbindung vom Button in den Hilfseditor unter die eben von Xcode erzeugte Zeile mit dem Outlet für das Label (siehe Abbildung 1.30). Abbildung 1.30 Eine Verbindung vom Button zum Code 42

1.2 App geht s Lassen Sie den Mausknopf unter der Deklaration der Property los, und stellen Sie in dem sich öffnenden Popup-Dialog den Verbindungstyp unter Connection auf Action (siehe Abbildung 1.31). Als Namen verwenden Sie»go«, und anschließend bestätigen Sie die Einstellungen durch Drücken des Buttons Connect. 1 Abbildung 1.31 Erstellen einer Action-Verbindung Xcode legt dann in der Datei ViewController.h automatisch die folgende Zeile an: - (IBAction)go:(id)sender; Sie deklariert eine neue Methode namens go:. Methoden enthalten den eigentlichen Programmcode des Programms; sie beschreiben also, wie ein Programm etwas macht. Außerdem ergänzt Xcode die Datei ViewController.m um eine neue, leere Methodenimplementierung für die Methode go:, die Sie am Ende dieser Datei finden. Eine Methodenimplementierung sieht ihrer Deklaration sehr ähnlich, allerdings besitzt sie einen Implementierungsblock, den ein geschweiftes Klammerpaar begrenzt. In diesem Block steht der Programmcode der Methode, der ihre Funktionalität beschreibt. Der Block ist allerdings noch leer. - (IBAction)go:(id)sender { Wenn der Nutzer den Button in der App drückt, ruft die App diese Methode auf. Sie können das jetzt schon relativ einfach ausprobieren, indem Sie die Methode um eine Log-Anweisung erweitern, so dass die Datei ViewController.m die folgende Implementierung für die Methode go: enthält: - (IBAction)go:(id)sender { NSLog(@"[+] go:"); Listing 1.1 Die erste Implementierung einer Methode Durch den Aufruf der Funktion NSLog veranlassen Sie die App, die Zeichenkette [+] go: in die Konsole zu schreiben. Übersetzen und starten Sie die App mit dem Run-Button oder über (cmd)+(r). Sobald der Simulator den View mit dem Label und dem Button anzeigt, betätigen Sie den 43

1 Hello iphone Button in der App. Xcode öffnet automatisch am unteren Rand den Debug-Bereich, und darin erscheint die Zeichenkette mit einem Zeitstempel davor wie in Abbildung 1.32. Das Drücken des Buttons führt also zum Aufruf der vorgesehenen Methode. Abbildung 1.32 Die Log-Ausgabe im Debug-Bereich von Xcode Anstatt der Log-Ausgabe können Sie jedoch auch einen Text in der App anzeigen; Sie haben ja schließlich das Label mit dem zugehörigen Outlet angelegt. Fügen Sie dazu die in Listing 1.2 hervorgehobene Zeile in die Methodenimplementierung von go: ein. - (IBAction)go:(id)sender { NSLog(@"[+] go:"); [self.label settext:@"button gedrückt"]; Listing 1.2 Die erste Implementierung einer Methode Wenn Sie nun die App im Simulator starten und den Button Go! drücken, ändert sich der Text des Labels von Label in Button gedrückt. Das bewirkt die neu eingefügte Zeile: Sie aktualisiert über die Methode settext: den angezeigten Text des Labels. 1.2.3 Netzwerk und Ausgabe Im nächsten Schritt erweitern Sie die Funktionalität der App um den Datenabruf. Dazu ändern Sie in der Datei ViewController.m die Methode go: wie folgt: - (IBAction)go:(id)sender { NSLog(@"[+] go:"); NSError *theerror = nil; NSURL *theurl = [NSURL URLWithString: @"http://www.rodewig.de/ip.php"]; NSString *theip = [NSString stringwithcontentsofurl:theurl encoding:nsasciistringencoding error:&theerror]; if(theerror == nil) { NSLog(@"[+] IP: %@", theip); else { 44

1.2 App geht s NSLog(@"[+] Error: %@", [theerror localizeddescription]); [self.label settext:theip]; 1 Listing 1.3 Abfrage einer Webseite Dieser Code fragt den Inhalt der Webseite www.rodewig.de/ip.php ab und sendet ihn an das Label in der Benutzeroberfläche der App. Die Methode erzeugt dafür zunächst eine URL und merkt sich dieses Objekt in der Variablen theurl. Danach holt sie sich über die Methode stringwithcontentsofurl:encoding:error: den Inhalt der Webseite. Dabei kann natürlich ein Fehler auftreten, weil beispielsweise die Webseite nicht verfügbar ist. Wenn ein Fehler auftritt, speichert die Methode diesen Wert in der Variablen theerror. Nach der Abfrage erfolgt eine Fallunterscheidung: Entweder trat kein Fehler auf, dann zeigt die Methode den Inhalt der Webseite im Log an. Andernfalls macht sie das mit der Fehlermeldung. Die Unterscheidung erfolgt dabei anhand der Variablen theerror. Wenn diese keinen Fehler enthält, hat sie den Wert nil. Dieser Wert bedeutet, dass die Variable kein Objekt enthält. Zum Schluss aktualisiert die Methode noch die Anzeige des Labels mit dem gelesenen Inhalt der Webseite, der sich in der Variablen theip befindet. Stoßen Sie jetzt erneut über (cmd)+(r) die Übersetzung und den Start der App an. Sofern Ihr Rechner über eine Verbindung mit dem Internet verfügt, zeigt die App nach dem Drücken des Buttons Ihre externe IP-Adresse an (siehe Abbildung 1.33). Abbildung 1.33 Es klappt die App zeigt die IP-Adresse an. 45