Der Artikel wird am Ende des Bestellprozesses zum Download zur Verfügung gestellt.

Swift 5

Das umfassende Handbuch
Sofort lieferbar | Lieferzeit: Sofort lieferbar I
ISBN-13:
9783836266406
Veröffentl:
2019
Seiten:
1328
Autor:
Michael Kofler
Serie:
Rheinwerk Computing
eBook Typ:
EPUB
eBook Format:
EPUB
Kopierschutz:
6 - ePub Watermark
Sprache:
Deutsch
Beschreibung:

Michael Kofler präsentiert Ihnen auf 1300 Seiten alle Merkmale und Besonderheiten von Apples Programmiersprache. Zugleich erhalten Sie eine Einführung in die Syntax und in die objektorientierte Programmierung. Sie erfahren anhand vieler Beispiele, wie Sie Apps in iOS, macOS und tvOS entwickeln. Ideal für Umsteiger von Objective-C und Java, aber auch für Einsteiger mit Grundkenntnissen im Programmieren. Inklusive iCloud und Server-side Swift.
Vorwort ... 17TEIL I Swift ... 21 1. Hello World! ... 23 1.1 ... »Hello World« im Playground ... 23 1.2 ... »Hello World« als Terminal-App ... 32 2. Swift-Crashkurs ... 41 2.1 ... Elementare Syntaxregeln und Kommentare ... 41 2.2 ... Variablen, Konstanten und Datentypen ... 46 2.3 ... Strukturierung des Codes ... 50 2.4 ... Klassen und Datenstrukturen ... 54 2.5 ... Fehlerabsicherung ... 56 2.6 ... Xcode-Crashkurs ... 58 3. Operatoren ... 69 3.1 ... Zuweisungs- und Rechenoperatoren ... 69 3.2 ... Vergleichsoperatoren und logische Operatoren ... 74 3.3 ... Range-Operatoren ... 78 3.4 ... Operatoren für Fortgeschrittene ... 82 3.5 ... Eigene Operatoren ... 85 4. Variablen und Optionals ... 89 4.1 ... Variablen und Konstanten ... 89 4.2 ... Optionals ... 95 4.3 ... Wert- versus Referenztypen ... 100 5. Verzweigungen und Schleifen ... 103 5.1 ... Verzweigungen mit if ... 103 5.2 ... Inverse Logik mit guard ... 106 5.3 ... Verzweigungen mit switch ... 108 5.4 ... Versions- oder plattformabhängiger Code ... 111 5.5 ... Schleifen ... 112 5.6 ... Nicht triviale Schleifen ... 117 6. Funktionen und Closures ... 123 6.1 ... Funktionen definieren und ausführen ... 123 6.2 ... Parameter ... 134 6.3 ... Standardfunktionen ... 141 6.4 ... Funktionale Programmierung ... 145 6.5 ... Closures ... 150 7. Zahlen und geometrische Strukturen ... 161 7.1 ... Zahlen und boolesche Werte ... 161 7.2 ... NSNumber ... 166 7.3 ... CGFloat, CGPoint, CGSize und Co. ... 167 8. Zeichenketten ... 173 8.1 ... Syntax ... 173 8.2 ... Bearbeitung von Zeichenketten ... 179 8.3 ... Suchen und ersetzen ... 183 8.4 ... Zeichenketten zerlegen und zusammensetzen ... 186 8.5 ... Zeichenketten und Zahlen umwandeln ... 192 8.6 ... Zeichenketten und binäre Daten umwandeln (Data-Struktur) ... 195 9. Datum und Uhrzeit ... 197 9.1 ... Datum und Uhrzeit ermitteln und darstellen ... 197 9.2 ... Rechnen mit Datum und Uhrzeit ... 19910. Arrays, Dictionaries, Sets und Tupel ... 201 10.1 ... Arrays ... 201 10.2 ... Arrays und Aufzählungen verarbeiten ... 211 10.3 ... Dictionaries ... 221 10.4 ... Sets ... 225 10.5 ... Option-Sets ... 226 10.6 ... Tupel ... 228 10.7 ... Lottosimulator ... 23011. Objektorientierte Programmierung I ... 235 11.1 ... Klassen und Strukturen ... 236 11.2 ... Enumerationen ... 244 11.3 ... Eigenschaften ... 251 11.4 ... Init- und Deinit-Funktion ... 263 11.5 ... Methoden ... 269 11.6 ... Subscripts ... 276 11.7 ... Typ-Aliasse ... 279 11.8 ... Speicherverwaltung ... 27912. Objektorientierte Programmierung II ... 285 12.1 ... Vererbung ... 285 12.2 ... Generics ... 297 12.3 ... Protokolle ... 302 12.4 ... Standardprotokolle ... 312 12.5 ... Extensions ... 320 12.6 ... Protokollerweiterungen ... 325 12.7 ... Reflection und Metatypen ... 32813. Fehlerabsicherung ... 335 13.1 ... Fehlerabsicherung mit try und catch ... 335 13.2 ... Selbst Fehler auslösen (throws und throw) ... 344 13.3 ... Fehler in Funktionen weitergeben (rethrows) ... 348 13.4 ... Das Error-Protokoll ... 351 13.5 ... Fehlerabsicherung von API-Methoden (NSError) ... 353 13.6 ... Result-Datentyp ... 35514. Importe, Attribute und Systemfunktionen ... 361 14.1 ... Module, Frameworks und Importe ... 361 14.2 ... Attribute ... 365 14.3 ... Systemfunktionen aufrufen ... 367TEIL II App-Programmierung ... 37315. Hello iOS-World! ... 375 15.1 ... Projektstart ... 376 15.2 ... Gestaltung der App ... 377 15.3 ... Steuerung der App durch Code ... 381 15.4 ... Actions und Outlets für Fortgeschrittene ... 386 15.5 ... Layout optimieren ... 389 15.6 ... Textgröße mit einem Slider einstellen ... 394 15.7 ... Apps auf dem eigenen iPhone oder iPad ausführen ... 396 15.8 ... Komponenten und Dateien eines Xcode-Projekts ... 39916. iOS-Grundlagen ... 401 16.1 ... Model-View-Controller (MVC) ... 401 16.2 ... Klassenhierarchie einer App-Ansicht ... 405 16.3 ... Die UIViewController-Klasse ... 407 16.4 ... Phasen einer iOS-App ... 411 16.5 ... Auto Layout ... 414 16.6 ... Layoutregeln durch Code definieren ... 429 16.7 ... Steuerelemente in einer Stack-View anordnen ... 431 16.8 ... Layoutvarianten ... 435 16.9 ... Texteingaben ... 442 16.10 ... Image-Views und Xcassets ... 45017. iOS-Apps mit mehreren Ansichten ... 453 17.1 ... Storyboard und Controller-Klassen verbinden ... 453 17.2 ... Ansichten durch Segues verbinden ... 454 17.3 ... Segues mit Datenübertragung ... 459 17.4 ... Navigation-Controller ... 464 17.5 ... Tab-Bar-Controller ... 469 17.6 ... Split-View-Controller ... 475 17.7 ... Popups ... 485 17.8 ... Ja/Nein-Dialoge (UIAlertController) ... 49618. Hello macOS-World! ... 499 18.1 ... Lottozahlengenerator ... 50019. macOS-Grundlagen ... 509 19.1 ... Programme mit mehreren Fenstern ... 509 19.2 ... Tab-View-Controller ... 516 19.3 ... Standarddialoge ... 523 19.4 ... Tastatur ... 528 19.5 ... Menüs ... 533 19.6 ... Programme ohne Menü ... 542 19.7 ... Dunkles Erscheinungsbild (»Dark Mode«) ... 54420. tvOS ... 547 20.1 ... Hello tvOS! ... 548 20.2 ... Fernbedienung auswerten ... 552 20.3 ... Focus Engine ... 558TEIL III Programmier- und Arbeitstechniken ... 56521. Dateien und User-Defaults ... 567 21.1 ... User-Defaults ... 567 21.2 ... Dateinamen und URLs ... 571 21.3 ... Bundle-Dateien und Assets ... 573 21.4 ... Standardverzeichnisse ... 575 21.5 ... Dateioperationen ... 580 21.6 ... Wie geht's weiter? ... 58722. Netzwerk, XML und JSON ... 589 22.1 ... Dateien per HTTP/HTTPS laden ... 589 22.2 ... XML-Dokumente auswerten ... 597 22.3 ... JSON-Encoder und -Decoder ... 601 22.4 ... Webseiten anzeigen ... 60823. Tabellen und Listen darstellen ... 615 23.1 ... Listen in iOS-Apps (UITableView) ... 615 23.2 ... Prototypzellen ... 621 23.3 ... Individuelle Gestaltung von Listenzellen ... 626 23.4 ... Veränderliche Listen ... 632 23.5 ... Tabellen in macOS-Apps (NSTableView) ... 634 23.6 ... Collections asynchron füllen (UICollectionView) ... 64524. GPS- und Kompassfunktionen ... 653 24.1 ... Hello Map-View! ... 653 24.2 ... Wegstrecke aufzeichnen ... 658 24.3 ... Kompassfunktionen ... 66525. Grafik und Animation ... 667 25.1 ... Eigene Steuerelemente mit Grafikfunktionen ... 667 25.2 ... Kompass-Steuerelement ... 673 25.3 ... Core Graphics ... 682 25.4 ... Animationen ... 68526. Touch, Maus, Gestures und Drag & Drop ... 691 26.1 ... Touch ... 691 26.2 ... Maus ... 698 26.3 ... Gestures ... 705 26.4 ... Drag & Drop (macOS) ... 708 26.5 ... Drag & Drop (iOS) ... 72127. Audio, Video und Fotos ... 735 27.1 ... Audiowiedergabe mit dem AVAudioPlayer ... 735 27.2 ... Audiowiedergabe mit dem AVPlayer ... 745 27.3 ... Audiowiedergabe mit dem AVPlayerViewController ... 747 27.4 ... Audioaufnahmen mit dem AVAudioRecorder durchführen ... 749 27.5 ... Videos abspielen ... 754 27.6 ... Videos mit der Picker-View auswählen und aufnehmen ... 757 27.7 ... YouTube-Videos abspielen ... 761 27.8 ... Fotos mit der Picker-View auswählen und aufnehmen ... 764 27.9 ... Fotos in einer AVCaptureSession aufnehmen ... 766 27.10 ... Barcodes in einer AVCaptureSession erkennen ... 77428. SpriteKit ... 779 28.1 ... Hello SpriteKit! ... 780 28.2 ... Sprites erzeugen und bewegen ... 789 28.3 ... Spielsteuerung durch Touch-Ereignisse ... 794 28.4 ... Bewegungssteuerung (Gyroskop und Accelerometer) ... 800 28.5 ... Aktionen ... 806 28.6 ... Der Game-Loop ... 812 28.7 ... Kollisionserkennung ... 814 28.8 ... Minispiel: Luftballone abschießen ... 820 28.9 ... Physik ... 826 28.10 ... Minispiel: Pyramide zerstören ... 832 28.11 ... Scene-Editor ... 838 28.12 ... Partikel-Emitter ... 84429. Core Data und SQLite ... 847 29.1 ... Hello, Core Data! ... 848 29.2 ... Core-Data-Klassenüberblick ... 853 29.3 ... Core-Data-Entities verknüpfen (Relationships) ... 855 29.4 ... Core-Data-Interna ... 865 29.5 ... SQLite.swift ... 86830. iCloud ... 879 30.1 ... iCloud-Grundlagen ... 879 30.2 ... Key-Value-Speicher ... 885 30.3 ... CloudKit-Grundlagen ... 892 30.4 ... CloudKit-Programmiertechniken ... 899 30.5 ... CloudKit-Beispiel ... 90831. Asynchrone Programmierung ... 921 31.1 ... Hello Grand Central Dispatch! ... 922 31.2 ... GCD-Grundlagen ... 925 31.3 ... Parallel rechnen ... 93032. App Store und Co. ... 937 32.1 ... iOS-Artwork (Icons, Launch Screen) ... 938 32.2 ... macOS-Artwork (Icon) ... 940 32.3 ... tvOS-Artwork (Parallax-Icons, Launch und Top Shelf Image) ... 941 32.4 ... Mehrsprachige Apps ... 947 32.5 ... Eigene Apps im App Store anbieten ... 961 32.6 ... macOS-Programme selbst weitergeben ... 97033. Xcode-Arbeitstechniken ... 979 33.1 ... Simulator-Ausgaben stoppen ... 979 33.2 ... Header-Code einer eigenen Klasse erzeugen ... 980 33.3 ... Versionsverwaltung mit Git ... 981 33.4 ... Crashlogs ... 984 33.5 ... Refactoring ... 984 33.6 ... Projekte umbenennen ... 986 33.7 ... Xcode-Verzeichnisse aufräumen ... 986 33.8 ... Apple Configurator ... 98934. Server-side Swift ... 991 34.1 ... Swift unter Linux ... 994 34.2 ... Vapor kennenlernen ... 1000 34.3 ... Die Vapor-Toolbox ... 1010 34.4 ... Vapor-Grundlagen ... 1012 34.5 ... Datenbankanbindung mit Fluent ... 1024 34.6 ... Authentifizierung und Autorisierung ... 1037 34.7 ... Deployment ... 1045TEIL IV Beispielprojekte ... 105135. New-York-Times-Bestseller ... 1053 35.1 ... New-York-Times-API ... 1055 35.2 ... Benutzeroberfläche ... 1058 35.3 ... Split-View-Variante ... 106236. To-do-Listen ... 1067 36.1 ... Gestaltung der Benutzeroberfläche ... 1068 36.2 ... Datenmodell ... 1069 36.3 ... View-Controller-Klasse ... 1070 36.4 ... Popup-View-Controller-Klasse ... 1077 36.5 ... iCloud-Variante ... 1078 36.6 ... Core-Data-Variante ... 1083 36.7 ... SQLite-Variante ... 108737. Schatzsuche ... 1097 37.1 ... Aufbau der App ... 1097 37.2 ... Datenmodell ... 1101 37.3 ... Location Manager selbst gemacht ... 1104 37.4 ... Steuerelement zur Richtungsanzeige (UIBezierPath) ... 1108 37.5 ... Hauptansicht mit Listenfeld ... 1109 37.6 ... Popup-Dialog zum Speichern ... 1114 37.7 ... Detailansicht mit Richtungspfeil ... 111538. Währungskalkulator ... 1121 38.1 ... App-Überblick ... 1121 38.2 ... Kurse ermitteln ... 1127 38.3 ... Das Datenmodell der App ... 1129 38.4 ... Umrechnungsansicht ... 1132 38.5 ... Einstellungsansicht ... 1138 38.6 ... Internationalisierung und Lokalisierung ... 114339. Fünf gewinnt ... 1145 39.1 ... Die App »Fünf gewinnt« ... 1145 39.2 ... Enumerationen und globale Funktionen (Globals.swift) ... 1148 39.3 ... Die Spiellogik (FiveWins.swift) ... 1152 39.4 ... Darstellung des Spielbretts und der Steine (BoardView.swift) ... 1162 39.5 ... Steuerung des Spielablaufs (ViewController.swift) ... 1171 39.6 ... Der Popup-Dialog (PopupVC.swift) ... 1176 39.7 ... Erweiterungsmöglichkeiten ... 117940. Puzzle-App ... 1181 40.1 ... Programmaufbau ... 1182 40.2 ... Die Klassen »Tile« und »Puzzle« ... 1185 40.3 ... Verwaltung der Benutzeroberfläche im View-Controller ... 119041. Icon-Resizer ... 1195 41.1 ... App-Überblick ... 1195 41.2 ... Icons verwalten (IconSize-Struktur) ... 1201 41.3 ... Hauptfenster (ViewController.swift) ... 1206 41.4 ... Drag-and-Drop-Quelle für Icons (IconCellView.swift) ... 1213 41.5 ... Drag-and-Drop-Empfänger für Icons (OriginalIconView.swift) ... 1215 41.6 ... Popup-Menü (IconChoiceVC.swift) ... 1217 41.7 ... Temporäres Verzeichnis erstellen und löschen ... 121842. Breakout ... 1221 42.1 ... Programmaufbau ... 1222 42.2 ... Initialisierung ... 1223 42.3 ... Spielsteuerung ... 123043. Pac-Man selbst gemacht ... 1233 43.1 ... Programmaufbau ... 1234 43.2 ... Der Tile-Editor »Tiled« ... 1235 43.3 ... Globale Konstanten, Datenstrukturen und Enumerationen ... 1240 43.4 ... Initialisierung des Spiels ... 1242 43.5 ... Die Maze-Klasse ... 1245 43.6 ... Aufbau der Spielszene (setup-Methoden) ... 1249 43.7 ... Spielsteuerung (touch-Methoden) ... 1255 43.8 ... Bewegung des Pac-Mans ... 1260 43.9 ... Steuerung der Monster ... 1264 43.10 ... Kollisionen ... 1269 43.11 ... Apple-TV-Variante von Pac-Man ... 1273 43.12 ... Pac-Man-Figuren zeichnen ... 127744. Asteroids ... 1279 44.1 ... Programmaufbau ... 1280 44.2 ... Globale Konstanten und Funktionen ... 1282 44.3 ... Programmstart und Tastaturereignisse (GameViewController) ... 1282 44.4 ... Initialisierung des Spiels (GameScene) ... 1285 44.5 ... Spielablauf (ebenfalls in GameScene) ... 1291 44.6 ... Fokussierbare Menütexte (MyLabel) ... 1296 44.7 ... Der Einstellungsdialog (MainScene) ... 1297 Index ... 1303

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.

Google Plus
Powered by Inooga