iOS 15 Grundlagen der Programmierung mit Swift

Book description

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Um in die iOS-Entwicklung einzusteigen, brauchst du ein solides Verständnis der Grundlagen, einschließlich der Xcode 13 IDE, Cocoa Touch und der neuesten Version von Apples gefeierter Programmiersprache Swift 5.5. Mit diesem gründlich aktualisierten Handbuch lernst du die Sprache Swift kennen, verstehst die Xcode-Entwicklungswerkzeuge von Apple und entdeckst das Cocoa-Framework.

  • Erforsche die objektorientierten Konzepte von Swift
  • Mach dich mit den eingebauten Swift-Typen vertraut
  • Vertiefe dich in Swift-Objekte, Protokolle und Generika
  • Besuche den Lebenszyklus eines Xcode-Projekts
  • Lerne, wie Nibs geladen werden
  • Verstehe das ereignisgesteuerte Design von Cocoa
  • Mit C und Objective-C kommunizieren

In dieser Ausgabe erfährst du alles über die neuesten iOS-Programmierfunktionen:

  • Strukturierte Gleichzeitigkeit: async/await, Aufgaben und Akteure
  • Swift-eigene Formatierer und attributierte Strings
  • Lazy Locals und werfende Getter
  • Verbesserte Sammlungen mit den Swift-Paketen Algorithms und Collections
  • Xcode-Änderungen: Spaltenhaltepunkte, Paketsammlungen und Info.plist-Baueinstellungen
  • Verbesserungen bei Git-Integration, Lokalisierung, Unit-Tests, Dokumentation und Verteilung
  • Und mehr!

Table of contents

  1. Vorwort
    1. Der Umfang dieses Buches
    2. Aus dem Vorwort zur ersten Ausgabe (Programmierung von iOS 4)
    3. Versionen
    4. Danksagungen
    5. In diesem Buch verwendete Konventionen
    6. Code-Beispiele verwenden
    7. O'Reilly Online Learning
    8. Wie du uns kontaktierst
  2. I. Sprache
    1. 1. Die Architektur von Swift
      1. Grund des Seins
      2. Alles ist ein Objekt?
      3. Drei Geschmacksrichtungen von Objekttypen
      4. Variablen
      5. Funktionen
      6. Die Struktur einer Swift-Datei
      7. Umfang und Lebenszeit
      8. Objektmitglieder
      9. Namensräume
      10. Module
      11. Instanzen
      12. Warum Instanzen?
      13. Das Schlüsselwort selbst
      14. Datenschutz
      15. Entwurf
    2. 2. Funktionen
      1. Funktionsparameter und Rückgabewert
        1. Void Rückgabetyp und Parameter
        2. Funktion Unterschrift
      2. Namen der externen Parameter
      3. Überlastung
      4. Standard-Parameterwerte
      5. Variadische Parameter
      6. Ignorierte Parameter
      7. Veränderbare Parameter
        1. Objective-C mit änderbaren Parametern aufrufen
        2. Aufgerufen von Objective-C mit veränderbaren Parametern
        3. Referenztyp Veränderbare Parameter
      8. Funktion in Funktion
      9. Rekursion
      10. Funktion als Wert
      11. Anonyme Funktionen
        1. Anonyme Funktionen Inline verwenden
        2. Anonyme Funktion Abgekürzte Syntax
      12. Definieren und Aufrufen
      13. Schließungen
        1. Wie Closures den Code verbessern
        2. Funktion Rückgabe Funktion
        3. Abschluss Einstellung einer erfassten Variable
        4. Schließung Erhaltung der gefangenen Umwelt
        5. Flucht vor Schließungen
        6. Erfassungslisten
      14. Curry-Funktionen
      15. Funktionsreferenzen und Selektoren
        1. Funktion Referenz Umfang
        2. Selektoren
    3. 3. Variablen und einfache Typen
      1. Variabler Umfang und Lebensdauer
      2. Variable Deklaration
      3. Initialisierung der berechneten Variablen
      4. Berechnete Variablen
        1. Berechnete Eigenschaften
        2. Property Wrappers
      5. Setter Beobachter
      6. Faule Initialisierung
        1. Singleton
        2. Faule Initialisierung von Instanzeigenschaften
      7. Eingebaute einfache Typen
        1. Bool
        2. Zahlen
        3. String
        4. Zeichen- und String-Index
        5. Reichweite
        6. Tupel
        7. Optional
    4. 4. Objekttypen
      1. Objekttyp-Deklarationen und Merkmale
        1. Initialisierungen
        2. Eigenschaften
        3. Methoden
        4. Nachkommastellen
        5. Verschachtelte Objekttypen
      2. Enums
        1. Rohwerte
        2. Assoziierte Werte
        3. Enum Fall Iteration
        4. Enum-Initialisierer
        5. Enum-Eigenschaften
        6. Enum-Methoden
        7. Warum Enums?
      3. Strukturen
        1. Struktur-Initialisierer
        2. Struktureigenschaften
        3. Struktur Methoden
      4. Klassen
        1. Werttypen und Referenztypen
        2. Unterklasse und Oberklasse
        3. Klasseninitialisierer
        4. Klasse Deinitialisierer
        5. Klasse Eigenschaften
        6. Statische/Klassenmitglieder
      5. Polymorphismus
      6. Gießen
        1. Abwurf
        2. Typenprüfung und sicheres Ablegen
        3. Typenprüfung und Gussoptionen
        4. Die Brücke zu Objective-C
      7. Typ Referenzen
        1. Von der Instanz zum Typ
        2. Vom Selbst zum Typ
        3. Typ als Wert
        4. Zusammenfassung der Typenterminologie
        5. Typen im Vergleich
      8. Protokolle
        1. Warum Protokolle?
        2. Die Annahme eines Bibliotheksprotokolls
        3. Protokoll Typentest und Casting
        4. Ein Protokoll deklarieren
        5. Protokoll-Zusammensetzung
        6. Klassenprotokolle
        7. Fakultatives Protokoll Mitglieder
        8. Implizit erforderliche Initialisierungen
        9. Ausdrückbar durch Literal
      9. Generika
        1. Allgemeine Erklärungen
        2. Typ Beschränkungen
        3. Explizite Spezialisierung
        4. Generische Typen und Kovarianz
        5. Verbundene Typ-Ketten
        6. Wo-Klauseln
      10. Erweiterungen
        1. Protokolle verlängern
        2. Generika erweitern
      11. Regenschirm-Typen
        1. Jede
        2. AnyObject
        3. AnyClass
      12. Kollektionstypen
        1. Array
        2. Wörterbuch
        3. Set
        4. OrderedSet und OrderedDictionary
    5. 5. Flusskontrolle und mehr
      1. Flusskontrolle
        1. Verzweigung
        2. Schleifen
        3. Springen
      2. Datenschutz
        1. Privat und DateiPrivat
        2. Öffentlich und offen
        3. Datenschutzregeln
      3. Introspektion
      4. Betreiber
      5. Speicherverwaltung
        1. Speicherverwaltung von Referenztypen
        2. Exklusiver Zugang zu Werttypen
      6. Verschiedene Funktionen der Swift-Sprache
        1. Synthetisierte Protokollimplementierungen
        2. Schlüsselpfade
        3. Instanz als Funktion
        4. Dynamische Mitgliedschaft
        5. Property Wrappers
        6. Benutzerdefinierte String-Interpolation
        7. Umgekehrte Generika
        8. Ergebnis Bauherren
        9. Ergebnis
    6. 6. Strukturierte Gleichzeitigkeit
      1. Multithreading
        1. Das Hauptthema
        2. Hintergrund-Themen
        3. Asynchroner Code
      2. Strukturierte Gleichzeitigkeitssyntax
        1. async/await
        2. Asynchrone Kontexte
      3. Aufgaben
      4. Wrapping eines Completion Handlers
      5. Mehrere gleichzeitige Aufgaben
        1. asynchron lassen
        2. Aufgabengruppen
      6. Asynchrone Sequenzen
        1. Eingebaute asynchrone Sequenzen
        2. Eine asynchrone Sequenz erstellen
        3. Asynchrone Sequenzmethoden
      7. Schauspieler
        1. Akteur Isolation
        2. Akteur Serialisierung
        3. Der Hauptdarsteller
      8. Kontextwechsel
        1. Implizites Umschalten des Kontextes
        2. Explizites Umschalten des Kontextes
      9. Mehr über Aufgaben
        1. Aufgabe Priorität
        2. Die aktuelle Aufgabe
        3. Schlafen
        4. Nachgiebig
        5. Stornierung
      10. Mehr über Schauspieler
        1. Wiedereintrittsstellen
        2. Das Schlüsselwort nicht isoliert
        3. Das Schlüsselwort isoliert
        4. Globale Akteure
      11. Versendbar
  3. II. IDE
    1. 7. Anatomie eines Xcode-Projekts
      1. Neues Projekt
      2. Das Projektfenster
        1. Das Navigator-Fenster
        2. Das Inspektor-Fenster
        3. Der Herausgeber
      3. Projektdatei und Abhängigkeiten
        1. Inhalt des Projektordners
        2. Gruppen
      4. Das Ziel
        1. Bauphasen
        2. Build-Einstellungen
        3. Konfigurationen
        4. Schemata und Ziele
      5. Vom Projekt zur fertigen App
        1. Build-Einstellungen
        2. Einstellungen der Eigenschaftsliste
        3. Nib-Dateien
        4. Ressourcen
        5. Code-Dateien
        6. Frameworks und SDKs
        7. Schnelle Pakete
      6. Der App-Launch-Prozess
        1. Der Einstiegspunkt
        2. Wie eine App in Gang kommt
        3. App ohne Storyboard
      7. Teile eines Projekts umbenennen
    2. 8. Nib-Dateien
      1. Die Oberfläche des Nib-Editors
        1. Dokument Gliederung
        2. Segeltuch
        3. Inspektoren
      2. Eine Feder laden
        1. Laden einer View Controller Nib
        2. Laden einer Hauptansicht-Feder
        3. Manuelles Laden einer Ansichtsfeder
      3. Verbindungen
        1. Steckdosen
        2. Der Federn-Besitzer
        3. Automatisch konfigurierte Federn
        4. Falsch konfigurierte Steckdosen
        5. Löschen einer Steckdose
        6. Mehr Möglichkeiten zum Erstellen von Outlets
        7. Outlet-Kollektionen
        8. Action-Verbindungen
        9. Mehr Möglichkeiten, Aktionen zu erstellen
        10. Fehlkonfigurierte Aktionen
        11. Verbindungen zwischen Federn - nicht!
      4. Zusätzliche Konfiguration von Nib-basierten Instanzen
    3. 9. Dokumentation
      1. Das Dokumentationsfenster
      2. Klasse Dokumentationsseiten
      3. Schnelle Hilfe
      4. Frameworks und Pakete dokumentieren
      5. Symbol Deklarationen
      6. Header-Dateien
      7. Beispiel-Code
      8. Internet-Ressourcen
    4. 10. Lebenszyklus eines Projekts
      1. Abhängigkeiten von der Umwelt
        1. Bedingte Kompilierung
        2. Aktion bauen
        3. Zulässige Laufzeitumgebung
        4. Abwärtskompatibilität
        5. Gerätetyp
        6. Argumente und Umgebungsvariablen
      2. Versionskontrolle
      3. Bearbeiten und Navigieren in deinem Code
        1. Voreinstellungen für die Textbearbeitung
        2. Mehrfachauswahl
        3. Codevervollständigung und Platzhalter
        4. Schnipsel
        5. Refactoring und Code-Aktionen
        6. Fix-it und Live-Syntaxüberprüfung
        7. Navigation
        8. Finde
      4. Laufen im Simulator
      5. Fehlersuche
        1. Höhlenmensch-Debugging
        2. Der Xcode Debugger
      6. Testen
        1. Einheitstests
        2. Interface Tests
        3. Test-Pläne
        4. Den Bericht massieren
      7. Sauber
      8. Auf einem Gerät laufen
        1. Beantragung einer Mitgliedschaft im Entwicklerprogramm
        2. Signieren einer App
        3. Automatisches Unterschreiben
        4. Manuelles Unterschreiben
        5. Ausführen der App
        6. Verwaltung von Entwicklungszertifikaten und Geräten
      9. Profiling
        1. Gauges
        2. Speicher-Debugging
        3. Instrumente
      10. Lokalisierung
        1. Lokalisierte Inhalte erstellen
        2. Lokalisierung testen
      11. Vertrieb
        1. Ein Archiv anlegen
        2. Das Vertriebszertifikat
        3. Das Verteilungsprofil
        4. Verteilung für Tests
        5. Letzte App-Vorbereitungen
        6. Screenshots und Video-Vorschauen
        7. Einstellungen der Eigenschaftsliste
        8. Einreichung im App Store
  4. III. Kakao
    1. 11. Kakao-Klassen
      1. Unterklassifizierung
      2. Kategorien und Erweiterungen
        1. Wie Swift Erweiterungen verwendet
        2. Wie du Extensions verwendest
        3. Wie Kakao die Kategorien nutzt
      3. Protokolle
        1. Optionale Mitglieder
        2. Informelle Protokolle
      4. Einige Foundation-Klassen
        1. NSRange
        2. NSNotFound
        3. NSString und Freunde
        4. NSDate und Freunde
        5. NSNummer
        6. NSValue
        7. NSData
        8. NSMeasurement und Freunde
        9. Gleichheit, Hashability und Vergleich
        10. NSArray und NSMutableArray
        11. NSDictionary und NSMutableDictionary
        12. NSSet und Freunde
        13. NSIndexSet
        14. NSNull
        15. Unveränderlich und veränderlich
        16. Eigentumslisten
        17. Codierbar
      5. Accessors, Eigenschaften und Schlüssel-Wert-Codierung
        1. Schnelle Accessoren
        2. Key-Value-Codierung
        3. Wie Steckdosen funktionieren
        4. Cocoa Schlüsselpfade
        5. Verwendung von Key-Value Coding
        6. KeyPath-Notation
      6. Das geheime Leben von NSObject
    2. 12. Kakao Ereignisse
      1. Gründe für Veranstaltungen
      2. Unterklassifizierung
      3. Benachrichtigungen
        1. Eine Benachrichtigung erhalten
        2. Abmelden
        3. Abonnieren einer Benachrichtigung
        4. Eine Benachrichtigung veröffentlichen
        5. Timer
      4. Delegation
        1. Kakao-Delegation
        2. Delegieren umsetzen
      5. Datenquellen
      6. Aktionen
        1. Die Responderkette
        2. Nicht zielgerichtete Aktionen
      7. Key-Value-Beobachtung
        1. Anmeldung und Benachrichtigung
        2. Abmelden
        3. Beispiel für die Beobachtung eines Schlüsselwerts
      8. Von Ereignissen überschwemmt
      9. Verspätete Leistung
    3. 13. Speicherverwaltung
      1. Grundsätze der Cocoa-Speicherverwaltung
      2. Regeln der Cocoa-Speicherverwaltung
      3. Was ARC ist und was es bewirkt
      4. Wie Cocoa-Objekte den Speicher verwalten
      5. Autorelease Pool
      6. Speicherverwaltung von Instanzeigenschaften
      7. Zyklen und schwache Referenzen beibehalten
      8. Ungewöhnliche Situationen bei der Speicherverwaltung
        1. Benachrichtigung Beobachter
        2. KVO Beobachter
        3. Timer
        4. Andere ungewöhnliche Situationen
      9. Speicherverwaltung von CFTypeRefs
      10. Richtlinien für die Verwaltung von Immobilienspeichern
      11. Fehler in der Speicherverwaltung beheben
    4. 14. Kommunikation zwischen Objekten
      1. Sichtbarkeit durch eine Instanzeigenschaft
      2. Sichtbarkeit durch Instanziierung
      3. Eine Referenz erhalten
        1. Sichtbarkeit nach Beziehung
        2. Globale Sichtbarkeit
      4. Benachrichtigungen und Beobachtung von Schlüsselwerten
      5. Das Combine Framework
      6. Alternative Architekturen
        1. Model-View-Controller
        2. Router und Datenraum
        3. Model-View-Presenter
        4. Protokolle und reaktive Programmierung
      7. SwiftUI
        1. Ergebnisersteller und Modifikatoren
        2. Staatliche Eigenschaften
        3. Bindungen
        4. Datenweitergabe bergab
        5. Daten bergauf weitergeben
        6. Benutzerdefinierte Status-Objekte
    5. A. C, Objective-C und Swift
      1. Die Sprache C
        1. C Datentypen
        2. C Enums
        3. C-Strukturen
        4. C Zeiger
        5. C-Arrays
        6. C-Saiten
        7. C-Funktionen
      2. Objective-C
        1. Objective-C-Objekte und C-Zeiger
        2. Objective-C-Objekte und Swift-Objekte
        3. Swift mit Objective-C verknüpfen
        4. Überbrückte Typen und Boxed Typen
        5. Objective-C Methoden
        6. Selektoren
        7. CFTypeRefs
        8. Blöcke
        9. API-Auszeichnung
      3. Zweisprachige Ziele
  5. Index

Product information

  • Title: iOS 15 Grundlagen der Programmierung mit Swift
  • Author(s): Matt Neuburg
  • Release date: September 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781098193430