Mit Swift und SwiftUI erstellen Sie professionelle und moderne Apps für macOS und iOS. Wie das geht, zeigt Ihnen Michael Kofler in diesem vollständig neu konzipierten Swift-Handbuch. Von den ersten Zeilen in Xcode über das Design Ihrer neuen App mit SwiftUI bis zur Veröffentlichung im App-Store lernen Sie alle Schritte der Anwendungsentwicklung kennen und machen sich mit den neuen Features von Swift 6 vertraut. Ideal für das Selbststudium und den Unterricht. Aus dem Inhalt: Crashkurs Xcode Schleifen, Funktionen und Closures Strukturen, Klassen und Protokolle Views anwenden und selbst programmieren App-Design und Animation Data Binding, SwiftData und iCloud Internationalisierung und App Store Die Fachpresse zur Vorauflage: Mac Life: »Wer Apps mit Swift programmieren möchte, erhält mit diesem Wälzer einen soliden Helfer.«
Umfangreiche Beispiel-Apps inkl. App-Store-Integration
Autorentext
Michael Kofler hat Telematik an der TU Graz studiert und ist einer der erfolgreichsten deutschsprachigen IT-Fachbuchautoren. Zu seinen Themengebieten zählen neben Linux auch IT-Sicherheit, Python, Swift, Java und der Raspberry Pi. Er ist Entwickler, berät Firmen und arbeitet als Lehrbeauftragter.
Inhalt
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 ... …
Umfangreiche Beispiel-Apps inkl. App-Store-Integration
Autorentext
Michael Kofler hat Telematik an der TU Graz studiert und ist einer der erfolgreichsten deutschsprachigen IT-Fachbuchautoren. Zu seinen Themengebieten zählen neben Linux auch IT-Sicherheit, Python, Swift, Java und der Raspberry Pi. Er ist Entwickler, berät Firmen und arbeitet als Lehrbeauftragter.
Inhalt
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 ... …
Titel
Swift
Untertitel
Das umfassende Handbuch
Autor
EAN
9783367107360
Format
E-Book (epub)
Hersteller
Veröffentlichung
06.06.2025
Digitaler Kopierschutz
frei
Dateigrösse
23 MB
Anzahl Seiten
729
Lesemotiv
Unerwartete Verzögerung
Ups, ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.