Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
13
Teil I Einführung
17
1 Hello, World!
19
1.1 Erste Schritte mit Xcode
20
1.2 Der Hello-World-Code
24
1.3 Eigene Code-Experimente
28
2 Learning by Doing: Die erste App
31
2.1 Schritt 1: Eine Liste mit den Buchtiteln
33
2.2 Schritt 2: Gestaltung der Listenelemente
45
2.3 Schritt 3: Bücher nach Sprachen gruppieren
55
2.4 Schritt 4: Von der Liste zur Detailansicht
58
2.5 Schritt 5: Die RatingView
63
2.6 Schritt 6: Multiplatform- und Farb-Finetuning
70
2.7 Schritt 7: Persistenz mit SwiftData
74
3 Tipps & Tricks
81
3.1 Syntaxeigenheiten von Swift
82
3.2 Coding mit KI-Unterstützung
87
3.3 Xcode
90
Teil II Swift
101
4 Variablen, Optionals und Datentypen
103
4.1 Variablen und Konstanten
103
4.2 Optionals
107
4.3 Elementare Datentypen
111
4.4 Zeichenketten
115
4.5 Wert- versus Referenztypen
122
5 Operatoren
125
5.1 Zuweisungs- und Rechenoperatoren
125
5.2 Vergleichsoperatoren und logische Operatoren
128
5.3 Range-Operatoren
131
5.4 Operatoren für Fortgeschrittene
132
6 Verzweigungen und Schleifen
135
6.1 Verzweigungen mit if
135
6.2 Inverse Logik mit guard
138
6.3 Verzweigungen mit switch
139
6.4 Versions- oder plattformabhängiger Code
141
6.5 Schleifen
142
7 Funktionen und Closures
149
7.1 Funktionen definieren und ausführen
149
7.2 Parameter
157
7.3 Standardfunktionen
164
7.4 Funktionen als eigener Datentyp
166
7.5 Closures
168
8 Arrays, Dictionaries, Sets und Tupel
173
8.1 Arrays
173
8.2 Arrays und Aufzählungen verarbeiten
180
8.3 Dictionaries
187
8.4 Sets
189
8.5 Tupel
191
9 Grundlagen der objektorientierten Programmierung
193
9.1 Klassen und Strukturen
193
9.2 Enumerationen
201
9.3 Eigenschaften
204
9.4 Init-Funktion
213
9.5 Methoden
219
9.6 Subscripts
225
9.7 Typ-Aliasse
227
10 Objektorientierte Programmierung für Fortgeschrittene
229
10.1 Vererbung
229
10.2 Generics
239
10.3 Protokolle
242
10.4 Standardprotokolle
251
10.5 Extensions
256
10.6 Protokollerweiterungen
258
11 Fehlerabsicherung
263
11.1 Fehlerabsicherung mit try und catch
263
11.2 Selbst Fehler auslösen (throws und throw)
270
11.3 Fehler in Funktionen weitergeben (rethrows)
273
11.4 Das Error-Protokoll
275
12 Swift-Interna
277
12.1 Speicherverwaltung
277
12.2 Attribute, Property Wrapper und Makros
282
12.3 Reflection und KeyPath-Ausdrücke
286
12.4 Swift Package Manager
290
Teil III SwiftUI
293
13 Views
295
13.1 Grundlagen
297
13.2 Text
307
13.3 Buttons und Optionen
312
13.4 Bitmaps und Icons (Image)
317
13.5 Grafik (Canvas, Path und Shape)
321
13.6 Container (Stack, ScrollView, Grid)
323
13.7 Farbe, Datum und Uhrzeit auswählen (Date- und ColorPicker)
330
13.8 Ereignisse (Gestures)
333
13.9 Vorschau (Preview-Optionen)
336
13.10 Apps auf dem eigenen iPhone ausführen
340
14 State, Binding und Observable
343
14.1 Variablen synchronisieren (@State und @Binding)
343
14.2 Umgebungsvariablen (@Environment)
352
14.3 Fokus-Management (@FocusState)
354
14.4 Instanzen von Klassen beobachten (@Observable)
355
14.5 Model-View-ViewModel (MVVM)
362
14.6 Code-Organisation nach MVVM-Regeln
364
15 Listen und Tabellen
373
15.1 Listen
373
15.2 Listen manipulieren
379
15.3 Beispiel: Issue-Management
382
15.4 Tabellen
392
16 Navigation
399
16.1 NavigationStack
399
16.2 Navigation entlang eines Pfads
402
16.3 Deep Links
407
16.4 NavigationSplitView
414
16.5 TabView
419
16.6 Toolbar
421
16.7 Modale Dialoge (Alerts, Sheets, Popovers)
424
16.8 Best Practices
428
17 SwiftUI-Spezialthemen
431
17.1 Animationen
432
17.2 Einstellungen (User-Defaults, @AppStorage)
437
17.3 macOS-App mit mehreren Fenstern (FileDocuments)
440
17.4 Eigene View-Modifier
448
17.5 UIKit-Views in SwiftUI verwenden
452
17.6 Capabilities und Entitlements
458
Teil IV Programmier- und Arbeitstechniken
461
18 Asynchrone Programmierung
463
18.1 Tasks, async und await
465
18.2 actor und Sendable
473
18.3 Asynchrone Programmierung in SwiftUI
480
18.4 Beispiel: Asynchroner Download
484
18.5 Beispiel: Datenauswertung und -visualisierung
491
19 Dateien, JSON und XML
499
19.1 Dateinamen und URLs
500
19.2 Standardverzeichnisse
501
19.3 Dateioperationen
506
19.4 Bundle-Dateien und Assets
510
19.5 JSON-Dateien verarbeiten
512
19.6 XML-Dateien lesen
519
20 Netzwerkfunktionen und REST-APIs
525
20.1 Dateien herunterladen
526
20.2 REST-APIs nutzen
528
20.3 Beispiel: Aktuelles Wetter ermitteln
531
20.4 Beispiel: New-York-Times-Bestsellerliste
534
21 SwiftData
541
21.1 Persistenz
541
21.2 SwiftData-Überblick
543
21.3 Modellierung (Schema)
545
21.4 Container
549
21.5 Daten lesen und speichern (Kontext)
550
21.6 Relationen
554
21.7 SwiftData-Interna
559
21.8 Beispiel: To-do-App
564
21.9 Undo-Funktion für die To-do-App
574
22 iCloud
581
22.1 iCloud-Grundlagen
581
22.2 Hello, iCloud!
583
22.3 SwiftData und iCloud
592
Teil V Apps
597
23 Währungskalkulator
599
23.1 App-Überblick
599
23.2 Umrechnungskurse herunterladen und speichern (Model)
602
23.3 UI-Logik (View Model)
606
23.4 Benutzeroberfläche (View)
612
23.5 Währungseinstellung (View)
616
24 Lokalisierung und App Store
623
24.1 Artwork
623
24.2 Mehrsprachige Apps
626
24.3 Eigene Apps im App Store anbieten
637
24.4 macOS-Programme selbst weitergeben
647
25 Familieneinkaufsliste
653
25.1 Bedienung
654
25.2 Software-Design
658
25.3 Einkaufsliste und Kategorien (Model)
666
25.4 UI-Logik (View Model)
671
25.5 Grundaufbau der Benutzeroberfläche (ContentView)
675
25.6 Shopping-Tab (View)
678
25.7 Planungs-Tab (View)
685
25.8 Settings-Tab (View)
689
25.9 REST-Server-Implementierung mit Python
693
25.10 REST-Client in Swift (View Model)
706
Index
717