Inhaltsverzeichnis

Über den Autor

Vorwort

Teil I Swift: Der neue Stern unter den Programmiersprachen

Kapitel 1 Wie Sie Swift lernen

1.1 Grafische Oberflächen auf Apple-Systemen

1.2 Die Geschichte von Swift

1.3 Was Sie hier programmieren werden

1.4 Wenn Sie bereits Objective-C kennen

1.5 Was Sie mitbringen müssen

1.6 Wie Sie mit diesem Buch Erfolg haben

Teil II Arbeiten mit Xcode: Die ersten Schritte

Kapitel 2 Ihre erste App auf dem iPhone!

2.1 Warum Sie überhaupt Programmiersprachen brauchen

2.2 Xcode von Apple

2.3 Die richtigen Anlagen für Ihr erstes Projekt

2.4 Hallo Welt

2.5 Der iPhone-Simulator

2.6 Was Xcode sonst noch alles kann

2.7 Ausgaben: Sie können auch anders

2.8 Aufgaben

Kapitel 3 Mit Zahlen und Buchstaben: Mit Ihrem Mac können Sie rechnen

3.1 Playgrounds: Die Spielwiese verwenden

3.2 Variablen: Es kommt auf die Werte an

3.3 Datentypen: Von Zeichen, Texten und Zahlen

3.3.1. Datentypen deklarieren und initialisieren

3.3.2. Strings im Programm

3.3.3. Fließkommazahlen: Punkt, Punkt, Komma, Strich

3.4 Bool  Der (Daten-)Typ der Wahrheit

3.4.1. Zahlen vergleichen  alles ist relativ

3.4.2. Operationen mit Bool  Rechnen mit Wahrheiten

3.5 Lesbaren Programmtext schreiben

3.5.1. Gute Kommentare

3.5.2. Formatieren von Programmtext und Namensgebung

3.6 Fortgeschrittenes

3.6.1. Unterschiede zwischen Zahlentypen

3.7 Aufgaben

Teil III Programme in Swift

Kapitel 4 Die Kommandozeile, Variablen und Gültigkeit

4.1 Kommandozeilenprogramme: Eigenständige Programme unter MacOS X

4.1.1. Das Projekt in Xcode erstellen

4.1.2. Programme unabhängig von Xcode starten

4.1.3. Ausgabe von Daten

4.1.4. Eingabe von Daten

4.1.5. Praxisbeispiel: Der ganz flexible Zinsrechner  das zahl ich Ihnen zurück

4.1.6. Grammatisch korrekte Sätze

4.2 Funktionen: Definieren und richtig benutzen

4.2.1. Funktionen mit Rückgabewerten

4.2.2. Funktionen mit Parametern

4.3 Gültigkeit

4.4 Fortgeschrittenes

4.4.1. Bits und Bytes

4.4.2. Speicher: Wie Ihr Computer sich Dinge merkt

4.4.3. Polymorphe Funktionen

4.4.4. Skripte von der Kommandozeile

4.5 Aufgaben

Kapitel 5 Praxisbeispiele: Von Trinkspielen, Sparplänen und korrekter Grammatik

5.1 Praxisbeispiel: Fizz Buzz

5.1.1. Das Grundgerüst

5.1.2. Teilbarkeit und der ganze Rest

5.1.3. Die fertige Funktion

5.2 Sparpläne mit Funktionen: Was lohnt sich und was nicht?

5.3 Alternativen mit der switch-Anweisung

5.3.1. Die Grundform der switch-Anweisung

5.3.2. Ich stelle hier die Bedingungen: die where-Anweisung

5.4 Was Funktionsparameter alles können

5.4.1. Die richtigen Namen von Funktionsparametern

5.4.2. Funktionen mit mehreren Rückgabewerten

5.4.3. Parameter als Variablen

5.4.4. Vorgegebene Standardwerte

5.5 Fortgeschrittenes

5.5.1. Wenn die Werte mal nicht so wichtig sind

5.6 Aufgaben

Kapitel 6 Ihr erstes Spiel programmieren: Das Streichholzspiel

6.1 Züge im Streichholzspiel

6.1.1. Zufallszahlen erzeugen

6.2 Züge des menschlichen Spielers

6.2.1. Schleifen mit der while-Anweisung

6.3 Das fertige Spiel

6.3.1. Ich will raus!  Schleifen mit break verlassen

6.4 Refaktorieren  Verschönern Ihrer Programme

6.5 Usability  Der Spaßfaktor

6.6 Fortgeschrittenes

6.6.1. Kontrolle  Ihre Schleife, bitte

6.6.2. Schleifen und Sprünge für Fortgeschrittene

6.6.3. Auf Nummer sicher gehen mit der assert-Anweisung

6.6.4. Mehrere Anweisungen pro Zeile

6.7 Aufgaben

Teil IV Objekte und Bibliotheken mit Swift

Kapitel 7 Objekte  Was sind sie und wie können sie Ihnen helfen, Arbeit zu sparen?

7.1 Objekte in Swift

7.1.1. Definition von Objekten

7.1.2. Verwendung von Objekten

7.1.3. Objektinstanzen im Speicher

7.2 Praxisbeispiel: Das Unternehmerspiel

7.2.1. Anlegen des Projekts und Ihres ersten Objekts

7.2.2. Das Unternehmer-Objekt

7.2.3. Die Methoden des Unternehmer-Objekts

7.2.4. Das Hauptprogramm

7.3 Aufzählungen als Datentypen

7.4 Fortgeschrittenes

7.4.1. Privatsphäre für Klassen

7.4.2. Eigenschaften von Klassen unter Beobachtung

7.4.3. Berechnete Eigenschaften

7.5 Aufgaben

Kapitel 8 Wie Sie das System mit Cocoa-Objekten voll ausreizen

8.1 So holen Sie Hilfe

8.2 NSString: Dieses Wort ist mächtiger als das Schwert

8.2.1. Zahlen, Formate und Ersetzungen

8.2.2. Vergleiche von Strings

8.2.3. Suchen und Ersetzen

8.3 Praxisbeispiel: Schon wieder ein neues Passwort

8.3.1. Ein einzelnes Zeichen setzen

8.3.2. Lottospielen mit Ziffern

8.3.3. Jetzt aber richtig: Großbuchstaben, Kleinbuchstaben und alles zusammen

8.4 Fortgeschrittenes

8.4.1. Formatierte Ausgabe

8.4.2. Wie Strings gespeichert werden

8.4.3. Unicode

8.5 Aufgaben

Kapitel 9 Der Lebenszyklus von Objekten

9.1 Objekte erzeugen und vernichten

9.1.1. Erzeugen eines Objekts

9.1.2. Deinitialisieren eines Objekts

9.2 Objekte als Eigenschaften

9.2.1. Optionale Datentypen

9.2.2. Starke Typen: Schwache Zeiger

9.2.3. Objekte ohne Besitzer

9.2.4. Zusammenfassung

9.3 Kopieren von Objekten: Der Weg von Swift

9.4 Fortgeschrittenes

9.4.1. Operatorüberladung

9.5 Aufgaben

Kapitel 10 Verladen von Objekten  Alles über Datencontainer

10.1 Arrays  sortiert nach Zahlen

10.1.1. Arrays erzeugen

10.1.2. Arrays verändern

10.2 FizzBuzz mit Arrays

10.3 Dictionaries  Informationen sortiert abspeichern

10.3.1. Dictionaries erzeugen und ändern

10.3.2. Dictionaries benutzen

10.4 Beliebige Werte

10.5 Daten speichern und laden

10.5.1. Wo geht’s hier zum Verzeichnis?

10.5.2. Daten speichern und wieder laden

10.5.3. Ich kann mir nicht alles merken!

10.6 Fortgeschrittenes

10.6.1. Funktionale Programmierung

10.6.2. Generische Klassen und Funktionen

10.7 Aufgaben

Kapitel 11 Wie Sie sich mit Vererbung bei Objekten richtig Zeit und Mühe sparen

11.1 Wie geht Vererbung?

11.1.1. Vererbung: Funktionsreichtum ohne Mehrarbeit

11.1.2. Den Arbeiter in das Unternehmerspiel aufnehmen

11.1.3. Für die Einstellung vorbereiten: Den Angestellten definieren

11.1.4. Die Arbeit mit dem neuen Mitarbeiter

11.2 Polymorphismus ist keine Krankheit, sondern gut für Sie

11.2.1. Das Spiel mit Praktikanten

11.3 Protokolle: Gemeinsamkeiten über Klassengrenzen hinweg

11.4 Fortgeschrittenes

11.4.1. Das letzte Wort, Verbieten von Vererbung

11.4.2. Erweiterungen von Klassen

11.4.3. Benutzung von NSObject

11.4.4. Klassenmethoden

11.4.5. SOLID  Solide Programme bauen

11.5 Aufgaben

Teil V Grafische Oberflchen fr das iPhone

Kapitel 12 Jetzt schreiben Sie grafische Oberflächen auf dem iPhone

12.1 Button, übernehmen Sie

12.1.1. Den Button und den Slider einfügen

12.1.2. Der Simulator kriegt den Drehwurm

12.1.3. Ordnung ist das halbe Leben: Anordnen und Ausrichten

12.2 Drehungen erlauben: Auf den Kopf stellen bringt nichts

12.3 Die grafische Oberfläche in der App verwenden

12.3.1. Der Button bekommt Arbeit

12.3.2. Es geht auch anders herum: Das UI als Eigenschaft

12.3.3. Beispiel: Die Beschriftung ändern

12.3.4. Beispiel: Den Button deaktivieren

12.3.5. Schiebung mit dem Regler: Arbeiten mit Slidern

12.3.6. Den Slider näher kennenlernen: Seine Grenzen kennen und Voreinstellungen

12.4 Ausrichtungsregeln löschen und ändern

12.5 Fortgeschrittenes

12.5.1. Apps für die ganze Welt

12.6 Aufgaben

Kapitel 13 Tabellen und Programmfluss auf dem iPhone

13.1 Tabellen auf dem iPhone

13.2 Praxisbeispiel: FizzBuzz mit Tabellen

13.2.1. Die Vorlage für Tabellen

13.2.2. Das Einrichten der Datenquelle

13.2.3. Super: Aufrufen der Basisklasse

13.2.4. Ganze Geschichten erzählen: Den zweiten Bildschirm verwenden

13.2.5. Das Ergebnis: Wenig Arbeit für Sie

13.3 MVC  Das Geheimrezept, mit dem Ihre Programme richtig

13.4 Aufgaben

Kapitel 14 Nun sind Sie dran: Zwei grafische Apps auf dem iPhone

14.1 Praxisbeispiel: Wie Sie Ihren eigenen Webbrowser schreiben

14.1.1. Präsentation

14.1.2. Die Steuerung

14.1.3. Besonderheiten unter iOS 9

14.1.4. Der fertige Netzbrowser

14.2 Passwörter auf dem iPhone

14.2.1. Modell der Passwörter

14.2.2. Präsentation der Passwörter

14.2.3. Steuerung der Passwörter

14.2.4. Wie Sie Ihre App richtig schön machen: Icons und Grafiken

14.3 Fortgeschrittenes

14.3.1. Arbeiten im Hintergrund

14.3.2. Was Textfelder alles können

14.4 Aufgaben

Kapitel 15 Eine umfangreiche App: Das Streichholzspiel auf dem iPhone

15.1 Das Datenmodell

15.1.1. Das Modell für den Haufen

15.1.2. Die bisherige Strategie

15.2 Die grafische Oberfläche

15.2.1. Der Spielbildschirm

15.2.2. Der Konfigurationsbildschirm

15.3 Die Steuerung

15.3.1. Die erste lauffähige Version

15.3.2. Gehe zurück auf Los, ziehe Hölzer ein

15.4 Gewinnstrategien für Ihren Computer

15.4.1. Strategien mit Polymorphismus

15.4.2. Eine wirklich gute Strategie

15.4.3. Strategien auswählen

15.5 Der Konfigurationsbildschirm

15.6 Fortgeschrittenes

15.6.1. Arbeiter und Vermittler

15.6.2. Entwurfsmuster

15.7 Aufgaben

Kapitel 16 Die eigene Sicht der Dinge vermitteln: Eigene grafische Ausgaben und Animationen

16.1 Ich zeige Sie an  unter iOS

16.1.1. Größe und Position

16.1.2. Dynamische Größenanpassung

16.2 Der grafische Streichholzhaufen

16.2.1. Streichhölzer Variante 1

16.2.2. Streichhölzer Variante 2  Sie können auch anders

16.3 Einen Haufen machen

16.4 Grafische Animationen

16.4.1. Was können Sie grafisch animieren?

16.4.2. Wie Sie Animation durchführen

16.4.3. Die Animation im Streichholzspiel

16.5 Lang lebe die Streichholz-App

16.6 Aufgaben

Teil VI Grafische Oberflchen fr iPad, die Apple Watch und MacOS X

Kapitel 17 Für das iPad entwickeln und mit echten Geräten arbeiten

17.1 Was macht das iPad besonders?

17.2 Passwörter auf dem iPad

17.2.1. Vom iPhone zum iPad

17.2.2. iPhone und iPad  eine App für alle Situationen

17.2.3. Eigene Wege gehen: Die andere Oberfläche für das iPad

17.2.4. Unterschiedliche Programme für das iPhone und iPad

17.3 Auf echten Geräten entwickeln

17.4 Fortgeschrittenes

17.4.1. Die Empfehlungen von Apple

Kapitel 18 Grafische Anwendungen unter MacOS X und auf der Apple Watch

18.1 Besonderheiten von MacOS X

18.2 Praxisbeispiel: Das Passwort-Programm mit grafischer Oberfläche unter MacOS X

18.2.1. Das Datenmodell

18.2.2. Die Präsentation

18.2.3. Die Steuerung

18.3 Besonderheiten der Apple Watch

18.4 Passwörter auf der Apple Watch

18.4.1. Das Datenmodell

18.4.2. Die Präsentation

18.4.3. Die Steuerung

18.5 Fortgeschrittenes

18.5.1. Empfehlungen von Apple für MacOS X und die Apple Watch

18.6 Aufgaben

Teil VII Geld verdienen als Software-Ingenieur

Kapitel 19 Was Sie häufig brauchen: Entwanzen von Programmen

19.1 Typische Fallstricke  Arten von Fehlern

19.1.1. Syntaktische und semantische Fehler

19.1.2. Usability-Probleme

19.1.3. Falsche Ergebnisse von Programmen

19.1.4. Nicht reproduzierbare Fehler

19.1.5. Umgang mit Fehlern

19.2 Verwenden des Debuggers

19.2.1. Praxisbeispiel: Ein fehlerhaftes FizzBuzz-Programm

19.3 Anforderungen

19.4 Testen, Testen und nochmals Testen

19.4.1. Was automatisierte Tests tun

19.4.2. Praxisbeispiel: Das HolzHaufen-Modell des Streichholzspiels

19.4.3. Wie Sie Tests noch einsetzen können

19.5 Fortgeschrittenes

19.5.1. Ausnahmen und Fehlerbehandlung

19.5.2. Versionsmanagement

19.6 Aufgaben

Kapitel 20 Der Weg zum Software-Ingenieur

20.1 Vom Programmierer zum Software-Ingenieur

20.2 Arbeiten als Software-Ingenieur

20.3 Vorschläge formulieren und Lösungen unterbreiten

20.4 Wie lange dauert das?

20.5 Der wöchentliche Statusbericht

20.6 Kontakte knüpfen und gute Fragen stellen

Anhang A Lösung der Aufgaben

Stichwortverzeichnis