Warenkorb

Swift 5

Das umfassende Handbuch. Syntax, Grundlagen, Programmiertechniken, App-Entwicklung. Objekt- und protokollorientierte Anwendungsentwicklung. Mit vielen Beispiel-Apps für iOS, macOS und tvOS. Alle Beispielprojekte aus dem Buch zum Download

Weitere Formate

Der perfekte Start in Apples Programmiersprache Swift!



  • Alle Swift-Grundlagen und Sprachelemente: von for-Schleife bis Closures

  • Moderne Anwendungen mit Xcode programmieren

  • Beispiel-Apps und Spiele entwickeln - für iOS, macOS und tvOS

Michael Kofler präsentiert Ihnen
alle Sprachmerkmale und Besonderheiten von Swift und führt Sie in die Syntax der Sprache ein. Mithilfe objektorientierter und funktionaler Programmierung lernen Sie,
ansprechende, moderne Apps in iOS, macOS und tvOS zu entwickeln. Dabei machen Sie sich auch mit der
Arbeit in Xcode vertraut und lernen eine
Vielzahl an nützlichen Frameworks kennen. Machen Sie bei neun grösseren App-Projekten mit und erleben Sie die Swift-Funktionen direkt in der Praxis.
Ideal für Umsteiger von Objective-C und Java sowie für Einsteiger mit Grundkenntnissen im Programmieren.

Aus dem Inhalt:


  • Klassen, Protokolle, Extensions

  • Closures, Umgang mit Fehlern

  • Crashkurs in Xcode

  • Storyboards erstellen

  • Internationalisierung

  • Actions, Outlets, Segues

  • Popovers, Focus Engine

  • Artwork für iOS, macOS und tvOS

  • Programmiertechniken

  • Tabellen und Listen

  • Grafik, Dateien, XML, JSON

  • Audio, Video, Fotots

  • Spritekit

  • Server-side Swift

  • ansprechende Beispiel-Apps: GPS-Schatzsuche, Pac-Man, Arkanoid

Portrait
Kofler, Michael
Dr. Michael Kofler studierte Telematik an der TU Graz. Er zählt zu den erfolgreichsten und vielseitigsten Computerbuchautoren im deutschen Sprachraum. Zu seinen Themengebieten zählen neben Linux auch macOS, MySQL, KVM, Visual Basic und Excel-VBA. Viele seiner Bücher wurden übersetzt. Michael Kofler arbeitet auch als Software-Entwickler, Berater sowie als Lehrbeauftragter an einer Fachhochschule.
… weiterlesen
  • Artikelbild-0


  •   Vorwort ... 17

    TEIL 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 ... 199

    10.  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 ... 230

    11.  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 ... 279

    12.  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 ... 328

    13.  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 ... 355

    14.  Importe, Attribute und Systemfunktionen ... 361

           14.1 ... Module, Frameworks und Importe ... 361

           14.2 ... Attribute ... 365

           14.3 ... Systemfunktionen aufrufen ... 367

    TEIL II  App-Programmierung ... 373

    15.  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össe 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 ... 399

    16.  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 ... 450

    17.  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) ... 496

    18.  Hello macOS-World! ... 499

           18.1 ... Lottozahlengenerator ... 500

    19.  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«) ... 544

    20.  tvOS ... 547

           20.1 ... Hello tvOS! ... 548

           20.2 ... Fernbedienung auswerten ... 552

           20.3 ... Focus Engine ... 558

    TEIL III  Programmier- und Arbeitstechniken ... 565

    21.  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? ... 587

    22.  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 ... 608

    23.  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) ... 645

    24.  GPS- und Kompassfunktionen ... 653

           24.1 ... Hello Map-View! ... 653

           24.2 ... Wegstrecke aufzeichnen ... 658

           24.3 ... Kompassfunktionen ... 665

    25.  Grafik und Animation ... 667

           25.1 ... Eigene Steuerelemente mit Grafikfunktionen ... 667

           25.2 ... Kompass-Steuerelement ... 673

           25.3 ... Core Graphics ... 682

           25.4 ... Animationen ... 685

    26.  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) ... 721

    27.  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 ... 774

    28.  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 abschiessen ... 820

           28.9 ... Physik ... 826

           28.10 ... Minispiel: Pyramide zerstören ... 832

           28.11 ... Scene-Editor ... 838

           28.12 ... Partikel-Emitter ... 844

    29.  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 ... 868

    30.  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 ... 908

    31.  Asynchrone Programmierung ... 921

           31.1 ... Hello Grand Central Dispatch! ... 922

           31.2 ... GCD-Grundlagen ... 925

           31.3 ... Parallel rechnen ... 930

    32.  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 ... 970

    33.  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 ... 989

    34.  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 ... 1045

    TEIL IV  Beispielprojekte ... 1051

    35.  New-York-Times-Bestseller ... 1053

           35.1 ... New-York-Times-API ... 1055

           35.2 ... Benutzeroberfläche ... 1058

           35.3 ... Split-View-Variante ... 1062

    36.  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 ... 1087

    37.  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 ... 1115

    38.  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 ... 1143

    39.  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 ... 1179

    40.  Puzzle-App ... 1181

           40.1 ... Programmaufbau ... 1182

           40.2 ... Die Klassen »Tile« und »Puzzle« ... 1185

           40.3 ... Verwaltung der Benutzeroberfläche im View-Controller ... 1190

    41.  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 ... 1218

    42.  Breakout ... 1221

           42.1 ... Programmaufbau ... 1222

           42.2 ... Initialisierung ... 1223

           42.3 ... Spielsteuerung ... 1230

    43.  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 ... 1277

    44.  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

In den Warenkorb

Beschreibung

Produktdetails

Einband gebundene Ausgabe
Seitenzahl 1328
Erscheinungsdatum 26.04.2019
Sprache Deutsch
ISBN 978-3-8362-6638-3
Reihe Rheinwerk Computing
Verlag Rheinwerk Verlag GmbH
Maße (L/B/H) 24.9/20.7/7.3 cm
Gewicht 2577 g
Auflage 4. Auflage
Verkaufsrang 14537
Buch (gebundene Ausgabe)
Buch (gebundene Ausgabe)
Fr. 67.90
Fr. 67.90
inkl. gesetzl. MwSt.
inkl. gesetzl. MwSt.
Versandfertig innert 1 - 2 Werktagen Versandkostenfrei
Versandfertig innert 1 - 2 Werktagen
Versandkostenfrei
In den Warenkorb
Vielen Dank für Ihr Feedback!
Entschuldigung, beim Absenden Ihres Feedbacks ist ein Fehler passiert. Bitte versuchen Sie es erneut.
Ihr Feedback zur Seite
Haben Sie alle relevanten Informationen erhalten?
Ihr Feedback ist anonym. Wir nutzen es, um unsere Produktseiten zu verbessern. Bitte haben Sie Verständnis, dass wir Ihnen keine Rückmeldung geben können. Wenn Sie Kontakt mit uns aufnehmen möchten, können Sie sich aber gerne an unseren Kundenservice wenden.

Kundenbewertungen

Es wurden noch keine Bewertungen geschrieben.