Swift 3

Fachbuch-Bestseller
Das umfassende Praxisbuch. Apps entwickeln für iOS, macOS und Apple TV. Ideal für Umsteiger von Objective-C

(Autor)

Buch | Hardcover
1174 Seiten
2016 | 2., überarbeitete und erweiterte Auflage
Rheinwerk (Verlag)
978-3-8362-4127-4 (ISBN)

Lese- und Medienproben

Swift 3 - Michael Kofler
49,90 inkl. MwSt
zur Neuauflage
  • Titel erscheint in neuer Auflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
  • Syntax, Grundlagen, Programmiertechniken, App-Entwicklung
  • Objekt- und protokollorientierte Anwendungsentwicklung
  • Mit vielen Beispiel-Apps für iOS, macOS und tvOS

Michael Kofler präsentiert Ihnen alle Merkmale und Besonderheiten von Swift und führt Sie zugleich in die Syntax und in die objektorientierte Programmierung ein. 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.
Der perfekte Start in Apples Programmiersprache Swift!

Erlernen Sie die Grundlagen von Swift
Von der einfachen for-Schleife bis zum Einsatz von Closures: Dieses Buch präsentiert Ihnen alle Sprachelemente von Swift und erläutert deren Einsatz. Mithilfe von objektorientierter und funktionaler Programmierung lernen Sie ansprechende Apps zu entwickeln.

So programmieren Sie moderne Anwendungen
Mit Swift-Wissen allein können Sie noch keine App schreiben. Dieses Buch macht daher nicht an den Grenzen von Swift halt, sondern führt Sie auch in die Arbeit mit Xcode und hilfreichen Frameworks ein.

Praxisnahe Beispiel-Apps für iOS, macOS und tvOS
Damit Sie das vielschichtige Zusammenspiel aus Swift, Xcode und UIKit bzw. Cocoa verstehen, werden vollständige Apps entwickelt. Neben vielen Mini-Beispielen zeigt Ihnen Michael Kofler anhand von neun größeren Projekten alle Funktionen direkt in der Praxis.

Themen sind insbesondere:
Klassen, Protokolle, Extensions
Closures
Umgang mit Fehlern
Crashkurs Xcode
Storyboards
Internationalisierung
iOS / tvOS / macOS
Actions, Outlets, Segues
Popovers, Focus Engine
Artwork
Programmiertechniken
Tabellen und Listen
Grafik, Dateien, XML, JSON
Audio, Video, Fotots
Spritekit
ansprechende Beispiel-Apps

Galileo Press heißt jetzt Rheinwerk Verlag.



Die Fachpresse zur Vorauflage:

iX - Magazin für professionelle Informationstechnik: »Es hält was es verspricht!«

SCREENGUIDE: »Ein praxisnaher Einstieg.«

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 Java auch Linux, OS X, der Raspberry Pi, 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 zwei Fachhochschulen.

  Vorwort ... 15


TEIL I  Swift ... 21

  1.  Hello World! ... 23
       1.1 ... »Hello World« im Playground ... 23
       1.2 ... »Hello World« als Terminal-App ... 32
       1.3 ... »Hello World!« auf dem iPad ... 40

  2.  Swift-Crashkurs ... 43
       2.1 ... Elementare Syntaxregeln und Kommentare ... 43
       2.2 ... Variablen, Konstanten und Datentypen ... 47
       2.3 ... Strukturierung des Codes ... 51
       2.4 ... Klassen und Datenstrukturen ... 56
       2.5 ... Fehlerabsicherung ... 58
       2.6 ... Xcode-Crashkurs ... 59

  3.  Operatoren ... 71
       3.1 ... Zuweisungs- und Rechenoperatoren ... 71
       3.2 ... Vergleichsoperatoren und logische Operatoren ... 76
       3.3 ... Range-Operatoren ... 81
       3.4 ... Operatoren für Fortgeschrittene ... 82
       3.5 ... Eigene Operatoren ... 86

  4.  Variablen und Optionals ... 91
       4.1 ... Variablen und Konstanten ... 91
       4.2 ... Optionals ... 98
       4.3 ... Wert- versus Referenztypen ... 103

  5.  Verzweigungen und Schleifen ... 107
       5.1 ... Verzweigungen mit if ... 107
       5.2 ... Inverse Logik mit guard ... 111
       5.3 ... Verzweigungen mit switch ... 112
       5.4 ... Versions- oder plattformabhängiger Code ... 116
       5.5 ... Schleifen ... 117
       5.6 ... Nicht triviale Schleifen ... 122

  6.  Funktionen und Closures ... 129
       6.1 ... Funktionen definieren und ausführen ... 129
       6.2 ... Parameter ... 140
       6.3 ... Standardfunktionen ... 147
       6.4 ... Funktionale Programmierung ... 151
       6.5 ... Closures ... 156

  7.  Zahlen und geometrische Strukturen ... 167
       7.1 ... Zahlen und boolesche Werte ... 168
       7.2 ... NSNumber ... 172
       7.3 ... CGFloat, CGPoint, CGSize und Co. ... 173

  8.  Zeichenketten ... 181
       8.1 ... Syntax ... 181
       8.2 ... Bearbeitung von Zeichenketten ... 185
       8.3 ... Suchen und ersetzen ... 189
       8.4 ... Zeichenketten zerlegen und zusammensetzen ... 192
       8.5 ... Zeichenketten und Zahlen umwandeln ... 198

  9.  Datum und Uhrzeit ... 203
       9.1 ... Datum und Uhrzeit ermitteln und darstellen ... 203
       9.2 ... Rechnen mit Datum und Uhrzeit ... 205

10.  Arrays, Dictionaries, Sets und Tupel ... 207
       10.1 ... Arrays ... 207
       10.2 ... Arrays und Aufzählungen verarbeiten ... 216
       10.3 ... Dictionaries ... 225
       10.4 ... Sets ... 226
       10.5 ... Option-Sets ... 227
       10.6 ... Tupel ... 229
       10.7 ... Lottosimulator ... 231

11.  Objektorientierte Programmierung I ... 237
       11.1 ... Klassen und Strukturen ... 238
       11.2 ... Enumerationen ... 247
       11.3 ... Eigenschaften ... 251
       11.4 ... Init- und Deinit-Funktion ... 263
       11.5 ... Methoden ... 268
       11.6 ... Subscripts ... 276
       11.7 ... Typ-Aliasse ... 278
       11.8 ... Speicherverwaltung ... 279

12.  Objektorientierte Programmierung II ... 285
       12.1 ... Vererbung ... 285
       12.2 ... Generics ... 297
       12.3 ... Protokolle ... 301
       12.4 ... Standardprotokolle ... 310
       12.5 ... Extensions ... 318
       12.6 ... Protokollerweiterungen ... 323
       12.7 ... Reflection und Metatypen ... 328

13.  Fehlerabsicherung ... 333
       13.1 ... Fehlerabsicherung mit try und catch ... 333
       13.2 ... Selbst Fehler auslösen (throws und throw) ... 342
       13.3 ... Fehler in Funktionen weitergeben (rethrows) ... 346
       13.4 ... Das Error-Protokoll ... 350
       13.5 ... Fehlerabsicherung von API-Methoden (NSError) ... 351

14.  Importe, Attribute und Systemfunktionen ... 355
       14.1 ... Module, Frameworks und Importe ... 355
       14.2 ... Attribute ... 359
       14.3 ... Systemfunktionen aufrufen ... 361


TEIL II  App-Programmierung ... 367

15.  Hello iOS-World! ... 369
       15.1 ... Projektstart ... 370
       15.2 ... Gestaltung der App ... 371
       15.3 ... Steuerung der App durch Code ... 376
       15.4 ... Actions und Outlets für Fortgeschrittene ... 381
       15.5 ... Layout optimieren ... 383
       15.6 ... Textgröße mit einem Slider einstellen ... 390
       15.7 ... Apps auf dem eigenen iPhone/iPad ausführen ... 392
       15.8 ... Komponenten und Dateien eines Xcode-Projekts ... 394

16.  iOS-Grundlagen ... 397
       16.1 ... Model-View-Controller (MVC) ... 397
       16.2 ... Klassenhierarchie einer App-Ansicht ... 402
       16.3 ... Die UIViewController-Klasse ... 405
       16.4 ... Phasen einer iOS-App ... 409
       16.5 ... Auto Layout ... 412
       16.6 ... Steuerelemente in einer Stack-View anordnen ... 429
       16.7 ... Texteingaben ... 432
       16.8 ... Image-Views und Xcassets ... 441

17.  iOS-Apps mit mehreren Ansichten ... 445
       17.1 ... Storyboard und Controller-Klassen verbinden ... 445
       17.2 ... Ansichten durch Segues verbinden ... 446
       17.3 ... Segues mit Datenübertragung ... 451
       17.4 ... Navigation-Controller ... 456
       17.5 ... Tab-Bar-Controller ... 461
       17.6 ... Split-View-Controller ... 468
       17.7 ... Popups ... 478
       17.8 ... Ja-Nein-Dialoge (UIAlertController) ... 489

18.  Hello macOS-World! ... 493
       18.1 ... Von iOS zu macOS ... 493
       18.2 ... Lottozahlengenerator (Storyboard-Variante) ... 496
       18.3 ... Lottozahlengenerator (XIB/AppDelegate-Variante) ... 505
       18.4 ... Lottozahlengenerator (XIB/WindowController-Variante) ... 511
       18.5 ... Lottozahlengenerator (XIB/ViewController-Variante) ... 515

19.  macOS-Grundlagen ... 519
       19.1 ... Programme mit mehreren Fenstern ... 519
       19.2 ... Tab-View-Controller ... 527
       19.3 ... Standarddialoge ... 535
       19.4 ... Maus ... 539
       19.5 ... Tastatur ... 547
       19.6 ... Menüs ... 553
       19.7 ... Programme ohne Menü ... 561
       19.8 ... Drag&Drop ... 564

20.  tvOS ... 579
       20.1 ... Hello tvOS! ... 580
       20.2 ... Fernbedienung auswerten ... 586
       20.3 ... Focus Engine ... 592


TEIL III  Programmier- und Arbeitstechniken ... 601

21.  Dateien und User-Defaults ... 603
       21.1 ... User-Defaults ... 603
       21.2 ... Dateinamen und URLs ... 608
       21.3 ... Bundle-Dateien und Xcassets-Bilder ... 610
       21.4 ... Standardverzeichnisse ... 612
       21.5 ... Dateioperationen ... 617
       21.6 ... Wie geht's weiter? ... 625

22.  Netzwerk, XML und JSON ... 627
       22.1 ... Dateien per HTTP/HTTPS laden ... 627
       22.2 ... XML-Dokumente auswerten ... 636
       22.3 ... JSON-Dokumente auswerten ... 640
       22.4 ... Webseiten anzeigen ... 644

23.  Tabellen und Listen darstellen ... 651
       23.1 ... Listen in iOS-Apps (UITableView) ... 651
       23.2 ... Prototypzellen ... 657
       23.3 ... Individuelle Gestaltung von Listenzellen ... 663
       23.4 ... Veränderliche Listen ... 669
       23.5 ... Tabellen in macOS-Apps (NSTableView) ... 671
       23.6 ... Collections asynchron füllen (UICollectionView) ... 682

24.  GPS- und Kompassfunktionen ... 691
       24.1 ... Hello MapView! ... 691
       24.2 ... Wegstrecke aufzeichnen ... 696
       24.3 ... Kompassfunktionen ... 703

25.  Grafik und Animation ... 707
       25.1 ... Eigene Steuerelemente mit Grafikfunktionen ... 708
       25.2 ... Kompass-Steuerelement ... 714
       25.3 ... Core Graphics ... 723
       25.4 ... Animationen ... 725

26.  Audio, Video und Fotos ... 731
       26.1 ... Audio-Wiedergabe mit dem AVAudioPlayer ... 731
       26.2 ... Audio-Wiedergabe mit dem AVPlayer ... 740
       26.3 ... Audio-Wiedergabe mit dem AVPlayerViewController ... 742
       26.4 ... Audio-Aufnahmen mit dem AVAudioRecorder durchführen ... 744
       26.5 ... Videos abspielen ... 749
       26.6 ... Videos mit der Picker-View auswählen und aufnehmen ... 753
       26.7 ... YouTube-Videos abspielen ... 758
       26.8 ... Fotos mit der Picker-View auswählen und aufnehmen ... 761
       26.9 ... Fotos in einer AVCaptureSession aufnehmen ... 763
       26.10 ... Barcodes in einer AVCaptureSession erkennen ... 772

27.  SpriteKit ... 777
       27.1 ... Hello SpriteKit! ... 778
       27.2 ... Sprites erzeugen und bewegen ... 786
       27.3 ... Spielsteuerung durch Touch-Ereignisse ... 792
       27.4 ... Bewegungssteuerung (Gyroskop und Accelerometer) ... 798
       27.5 ... Aktionen ... 804
       27.6 ... Der Game-Loop ... 811
       27.7 ... Kollisionserkennung ... 813
       27.8 ... Minispiel: Luftballone abschießen ... 819
       27.9 ... Physik ... 826
       27.10 ... Minispiel: Pyramide zerstören ... 832
       27.11 ... Scene-Editor ... 838
       27.12 ... Partikel-Emitter ... 845

28.  Asynchrone Programmierung ... 849
       28.1 ... Hello Grand Central Dispatch! ... 850
       28.2 ... GCD-Grundlagen ... 853
       28.3 ... Parallel rechnen ... 858
       28.4 ... Die Async-Bibliothek ... 865

29.  App Store und Co. ... 867
       29.1 ... iOS-Artwork (Icons, Launch Screen) ... 868
       29.2 ... macOS-Artwork (Icon) ... 869
       29.3 ... tvOS-Artwork (Parallax-Icons, Launch und Top Shelf Image) ... 870
       29.4 ... Mehrsprachige Apps ... 877
       29.5 ... Eigene Apps im App Store anbieten ... 886
       29.6 ... macOS-Programme selbst weitergeben ... 895

30.  Xcode-Arbeitstechniken ... 901
       30.1 ... Simulator-Ausgaben stoppen ... 901
       30.2 ... Header-Code einer eigenen Klasse erzeugen ... 902
       30.3 ... Versionsverwaltung mit Git ... 903
       30.4 ... Crashlogs ... 906
       30.5 ... Projekte umbenennen ... 906
       30.6 ... Xcode-Verzeichnisse aufräumen ... 907


TEIL IV  Beispielprojekte ... 911

31.  New-York-Times-Bestseller ... 913
       31.1 ... New-York-Times-API ... 915
       31.2 ... Benutzeroberfläche ... 918
       31.3 ... Split-View-Variante ... 924

32.  To-do-Listen ... 929
       32.1 ... Gestaltung der Benutzeroberfläche ... 930
       32.2 ... Datenmodell ... 931
       32.3 ... View-Controller-Klasse ... 932
       32.4 ... Popup-View-Controller-Klasse ... 939

33.  Schatzsuche ... 941
       33.1 ... Aufbau der App ... 941
       33.2 ... Datenmodell ... 946
       33.3 ... Location Manager selbst gemacht ... 948
       33.4 ... Steuerelement zur Richtungsanzeige (UIBezierPath) ... 953
       33.5 ... Hauptansicht mit Listenfeld ... 954
       33.6 ... Popup-Dialog zum Speichern ... 959
       33.7 ... Detailansicht mit Richtungspfeil ... 960

34.  Währungskalkulator ... 969
       34.1 ... App-Überblick ... 969
       34.2 ... Kurse ermitteln ... 977
       34.3 ... Das Datenmodell der App ... 980
       34.4 ... Umrechnungsansicht ... 983
       34.5 ... Einstellungsansicht ... 990
       34.6 ... Internationalisierung und Lokalisierung ... 995

35.  Fünf Gewinnt ... 997
       35.1 ... Die App »Fünf Gewinnt« ... 997
       35.2 ... Enumerationen und globale Funktionen (Globals.swift) ... 1000
       35.3 ... Die Spiellogik (FiveWins.swift) ... 1004
       35.4 ... Darstellung des Spielbretts und der Steine (BoardView.swift) ... 1015
       35.5 ... Steuerung des Spielablaufs (ViewController.swift) ... 1025
       35.6 ... Der Popup-Dialog (PopupVC.swift) ... 1031
       35.7 ... Erweiterungsmöglichkeiten ... 1033

36.  Icon-Resizer ... 1037
       36.1 ... App-Überblick ... 1037
       36.2 ... Icons verwalten (IconSize-Struktur) ... 1042
       36.3 ... Hauptfenster (ViewController.swift) ... 1049
       36.4 ... Drag&Drop-Quelle für Icons (IconCellView.swift) ... 1057
       36.5 ... Drag&Drop-Empfänger für Icons (OriginalIconView.swift) ... 1058
       36.6 ... Popup-Menü (IconChoiceVC.swift) ... 1061
       36.7 ... Temporäres Verzeichnis erstellen und löschen ... 1062

37.  Breakout ... 1065
       37.1 ... Programmaufbau ... 1066
       37.2 ... Initialisierung ... 1067
       37.3 ... Spielsteuerung ... 1073

38.  Pac-Man selbst gemacht ... 1077
       38.1 ... Programmaufbau ... 1078
       38.2 ... Der Tile-Editor »Tiled« ... 1080
       38.3 ... Globale Konstanten, Datenstrukturen und Enumerationen ... 1085
       38.4 ... Initialisierung des Spiels ... 1087
       38.5 ... Die Maze-Klasse ... 1090
       38.6 ... Aufbau der Spielszene (setup-Methoden) ... 1094
       38.7 ... Spielsteuerung (touch-Methoden) ... 1101
       38.8 ... Bewegung des Pac-Mans ... 1106
       38.9 ... Steuerung der Monster ... 1110
       38.10 ... Kollisionen ... 1116
       38.11 ... Apple-TV-Variante von Pac-Man ... 1120
       38.12 ... Pac-Man-Figuren zeichnen ... 1124

39.  Asteroids ... 1127
       39.1 ... Programmaufbau ... 1128
       39.2 ... Globale Konstanten und Funktionen ... 1130
       39.3 ... Programmstart und Tastaturereignisse (GameViewController) ... 1130
       39.4 ... Initialisierung des Spiels (GameScene) ... 1134
       39.5 ... Spielablauf (ebenfalls in GameScene) ... 1140
       39.6 ... Fokussierbare Menütexte (MyLabel) ... 1146
       39.7 ... Der Einstellungsdialog (MainScene) ... 1147

  Index ... 1153

Erscheinungsdatum
Reihe/Serie Rheinwerk Computing
Verlagsort Bonn
Sprache deutsch
Maße 168 x 240 mm
Gewicht 2006 g
Einbandart gebunden
Themenwelt Informatik Programmiersprachen / -werkzeuge Mac / Cocoa Programmierung
Informatik Weitere Themen Smartphones / Tablets
Schlagworte App • App-Entwicklung • Apple • Apple TV • Apple TV; Spezielle Anwendungsbereiche • Apps • apps entwickeln • Apps programmieren • CoCoA • Entwicklung Apple • Handbuch • Ios • iOS; Spezielle Anwendungsbereiche • iPad • iPhone • MacOS • MacOS X; Spezielle Anwendungsbereiche • SWIFT • Swift entwickeln • Swift programmieren • Swift (Programmiersprache); Handbuch/Lehrbuch
ISBN-10 3-8362-4127-7 / 3836241277
ISBN-13 978-3-8362-4127-4 / 9783836241274
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Apps programmieren für macOS, iOS, watchOS und tvOS

von Thomas Sillmann

Buch (2023)
Carl Hanser (Verlag)
59,99
Das umfassende Handbuch. Apps entwickeln für iOS, macOS und tvOS. …

von Michael Kofler

Buch | Hardcover (2019)
Rheinwerk (Verlag)
49,90
The Big Nerd Ranch Guide

von Matthew Mathias; Mikey Ward; John Gallagher

Buch | Softcover (2020)
Big Nerd Ranch Guides (Verlag)
48,75