Umfang: 1328 Seiten in extrabreitem Format
ISBN: 978-3-8362-6638-3
Preis: Euro 49,90 (Buchausgabe in D inkl. MWSt.)
Erschienen: Ende April 2019
E-Book-Ausgaben: Nur auf der Rheinwerk-Webseite können Sie wahlweise das E-Book (EUR 49,90) oder die Kombination aus Buch und E-Book bestellen (EUR 54,90).
Wann gibt es endlich die nächste Auflage? Ich habe gute und schlechte Nachrichten für Sie. Es wird keine Neuauflage geben, aber dafür ein neues Buch zu Swift 6 und SwiftUI. Dieses Buch wird wesentlich kompakter ausfallen. Es wird dabei helfen, Swift und SwiftUI kennen- und verstehenzulernen. Wie bisher werde ich Basiswissen in einer beliebigen Programmiersprache voraussetzen.
Vom allumfassenden Ansatz des Vorgängerbuchs werde ich mich verabschieden. Im Zeitalter von KI-Tools ist aus meiner Sicht das ein Fundament entscheidend. Sie müssen die Basics verstehen, sowohl bei Swift (Was sind Protokolle? struct
versus class
etc.) als auch bei SwiftUI. Unter diesen Voraussetzungen helfen dann ChatGPT & Co. wunderbar weiter.
Mehr Informationen zum Buch folgen Anfang des Jahres auf dieser Website. Erscheinungstermin ist vorauss. im Frühjahr 2025.
Leseprobe, Beispieldateien, Errata
Die Leseprobe enthält drei Kapitel (»Operatoren«, »Hello iOS-World!« und »Breakout«) und umfasst mit Vorwort, Inhaltsverzeichnis und Stichwortverzeichnis rund 80 Seiten.
Leseprobe Buch (PDF/SW) Leseprobe E-Book (PDF/Farbe)
Die Beispieldateien sind wegen Ihrer Größe auf zwei ZIP-Archive verteilt. Das erste Archiv enthält alle Dateien mit Ausnahme der Server-Side-Swift-Projekte mit Vapor. Die befinden sich im zweiten Archiv:
Beispieldateien (ZIP, 100 MB) Beispieldateien Vapor (ZIP, 380 MB)
Updates
Als Ergänzung zum Buch fassen die folgenden Blog-Artikel einige Neuerungen in Swift bzw. im Swift-Umfeld zusammen:
Kurzbeschreibung
Dieses Buch gibt eine praxisorientierte Einführung in die App-Programmierung mit der Programmiersprache Swift 5.
Das Buch ist in vier Teile gegliedert:
- Teil I führt in die Grundlagen von Swift ein. Hier lernen Sie alle wichtigen Sprachdetails kennen. Die Themenpalette reicht vom Umgang mit Variablen und elementaren Datentypen bis hin zur Syntax zur objekt- und protokollorientierte Programmierung.
-
Teil II gibt eine Einführung in die Entwicklung von Apps für iOS, macOS und tvOS. Hier erkläre ich Ihnen beispielsweise, wie der Storyboard-Editor funktioniert, wie Sie Ihre Oberfläche mit eigenem Swift-Code verbinden, eigene
ViewController
-Klassen entwickeln, Tastaturereignisse auswerten oder wie Sie Apps mit mehreren Dialogen/Views organisieren. -
Teil III fasst wichtige Programmiertechniken in Bausteinform zusammen. In Kurzanleitungen zeige Ihnen unter anderem, wie Sie auf Dateien zugreifen, XML- und JSON-Dokumente auswerten, Webseiten anzeigen, Steuerelemente mit eigener Grafik gestalten, Maus- und Touch-Ereignisse verarbeiten, Drag&Drop unterstützen, Listen und Tabellen in Apps darstellen, geografische Daten auswerten, wie Sie Audio-Dateien, Videos und Fotos abspielen, anzeigen bzw. aufnehmen, wie Sie Code asynchron ausführen wie Sie Spiele mit SpriteKit programmieren. Fortgeschrittene Themen sind iCloud- und Datenbank-Programmierung (Core Data, SQLite) sowie Server Side Swift (Vapor). Sobald Ihre App mit diesen Techniken zufriedenstellen funktioniert, lernen Sie, wie Sie sie tauglich für den App Store machen und dort einreichen. Der Großteil der in Teil III präsentierten Techniken funktioniert plattformübergreifend, also gleichermaßen in iOS-, tvOS- und macOS-Apps.
-
Teil IV zeigt anhand konkreter Beispielprojekte die Praxis der App-Programmierung. Die Apps decken eine ganze Palette von Themen ab, vom praktischen Währungsumrechner über den Icon-Resizer bis hin zu mehreren Spielen.
Zielgruppe/Voraussetzungen Das Buch ist für Einsteiger in die App-Programmierung konzipiert. Sie brauchen weder Vorkenntnisse in Swift noch in Xcode, Cocoa oder Uikit. Ich setze aber voraus, dass Ihnen Grundbegriffe des Programmierens bekannt sind. Ich erkläre Ihnen in diesem Buch also, wie Sie in Swift mit Variablen umgehen, Schleifen programmieren und Klassen entwickeln, aber nicht, was Variablen sind, wozu Schleifen dienen und warum Klassen das Fundament objektorientierter Programmierung sind.
Neu in dieser Auflage
Neu in dieser Auflage sind naturgemäß alle wichtigen Swift-5-Features (siehe auch Neu in Swift 5 im Blog): Dazu zählen unter anderem die ABI-Stabilität, Raw-Zeichenketten, neue Methoden zum Erzeugen von Zufallszahlen, Optional Flatting und der Result
-Datentyp. In einem neuen Abschnitt gehe ich auf die Datenbank-Programmierung ein (Core Data, SQLite). Komplett überarbeitet ist das Kapitel zu Server-side Swift (Vapor). In Teil IV gibt es als neue Beispiel-App ein Slider-Puzzlespiel.
Es kommt darauf an was Sie machen möchten. Aktuell geht Swift auf Linux in die Richtung, damit Server-side-Logik für iOS Apps zu machen — und das funktioniert in der Tat schon ziemlich gut. Die eigentliche App-Entwicklung erfolgt unter macOS, erst das Deployment auf Linux.
In der Neuauflage meines Linux-Buchs stelle ich mit Vapor eines der drei aktuell gängigen Frameworks für derartige Server-Apps vor. (Die Alternativen wären Kitura und Perfect.)
Als allgemeingültige Programmiersprache hat Swift für Linux aktuell aber wenig Relevanz.
ich weiß, ich weiß … Ich habe mir schon mehrfach vorgenommen, mich in Core Data einzuarbeiten und ein ordentliches Kapitel dazu zu schreiben, aber bisher habe ich es ganz einfach nicht geschafft. Vielleicht in der nächsten Auflage, aber versprechen kann ich es nicht.
Ich kann nur raten, nach core data swift zu suchen. Zumindest in englischer Sprache gibt es diverse Tuturials, Bücher etc. Sogar deutsche Literatur existiert.
https://store.raywenderlich.com/products/core-data-by-tutorials
https://www.ralfebert.de/ios/coredata/
Ähnliches Problem hier: Habe die Printausgabe über Amazon gekauft und würde jetzt gerne das eBook kaufen. Scheint nicht möglich, ohne den vollen Preis zu zahlen :-(
So ist es mir leider auch ergangen – ich kann das Buch zwar noch zurückschicken und das Bundle bestellen, aber irgendwie ist das auch keine tolle Option. Gibt es keine Möglichkeit mit Kaufnachweis des Buchs auf das Bundle zu upgraden?
Ich bin hier die falsche Ansprechperson. Für diese Fragen ist der Verlag zuständig (service@rheinwerk-verlag.de).
Ich versuche, auf meiner Website so eindeutig wie möglich auf die Kaufoptionen hinzuweisen — mehr liegt nicht in meinem Einfluss.
Dass das E-Book-Handling derart kompliziert ist, hat mit den rechtlichen Rahmenbedingungen zu tun, die besch*** sind. Rheinwerk hatte in der Vergangenheit wesentlich kundenfreundlichere Angebote, die aus rechtlichen Gründen alle abgedreht werden mussten. Aktuell muss man froh sein, dass es überhaupt ein Bundle-Angebot gibt.
Vielen Dank für die schnelle Antwort, ich werde mich mal an den Verlag wenden, da die eBooks wirklich gut aussehen!
Auf Seite 508 Ihres Swift 5 Buchs beschreiben Sie, wie der Lottozahlengenerator beim Schließen des Fensters automatisch beendet werden kann. Der von Ihnen vorgestellte Code hat jedoch den Nachteil, dass das Programm auch beim Minimieren des Fensters beendet wird.
Besser ist es deshalb, statt Ihres Codes in der Klasse AppDelegate folgende Methode zu implementieren:
func applicationShouldTerminateAfterLastWindowClosed(_: NSApplication) -> Bool {
return true
}
Diese Methode funktioniert auch bei einem Programm mit mehreren Fenstern, da das Programm erst nach Schließen des letzten Fensters beendet wird.
Sie haben natürlich recht, vielen Dank für den Hinweis!
Wie up to date ist ihr neues Swift5 Buch (und dessen Beispiel codes) in einer Zeit von SwiftUI?
VG Tristan
SwiftUI wurde erst nach der Veröffentlichung des Buchs vorgestellt und ist auch aktuell noch im Beta-Stadium. SwiftUI wird daher im Buch nicht behandelt. Ich plane, im Herbst einen Blog-Artikel dazu zu schreiben.
Hallo Herr Kofler,
ich lese gerade Ihr Swift 5 Buch und denke, dass ich einen Fehler gefunden habe. Auf Seite 70 steht:
[…] Das funktioniert auch bei komplexeren Ausdrücken:
mit let statt var.
Viele Grüße
ja natürlich, vielen Dank für den Hinweis
Hallo Herr Kofler,
seit ein paar Tagen lese ich gerade ihr Buch zu SWIFT 5. Ich möchte an dieser Stelle einfach ein Lob ausrichten!
Das Buch ist sehr gut geschrieben und es macht Spaß, damit die ersten Schritte in die Entwicklung für iOS zu gehen!
Beste Grüße aus NÖ,
Manfred
Hallo Herr Kofler,
vielen Dank erstmal, für das tolle Buch!
Ich befinde mich zurzeit im Kapitel zu „Popups“ auf Seite 487 und komme leider gerade nicht weiter. Ich versuche das Standardverhalten auf iPhones zu unterbinden, jedoch gibt es die angegebene Variable „popPC“ bei mir nicht. Ist dort eventuell eine Unstimmigkeit im Text? Die Klasse „ViewController2“ ist bei mir das Äquivalent zu Ihrer Klasse „PopViewController“. Vielleicht könnten Sie das kurz kommentieren. Mein Code:
Darüber hinaus sind mir bisher folgende Kleinigkeiten aufgefallen (vielleicht sind die mittlerweile auch schon verbessert, oder ich verstehe noch etwas nicht komplett).
Seite 229:
Müssten die Ergebnisse hier nicht eigentlich ausgepackt werden damit sie zu den Kommentaren passen? Also:
Seite 261:
Hier müsste es meiner Meinung nach
lauten, damit es zu dem Klasseneigenschaften passt (führender Unterstrich).
Seite 343 (innerhalb des angegebenen Codes):
Hier fehlt ein „=“ zwischen result und try, oder?
Vielen Dank und viele Grüße!
Vielen Dank für das ausführliche Feedback. Ich habe jetzt nicht unmittelbar Zeit für eine Antwort, aber ich melde mich in den nächsten Tagen.
Zu S. 497: Sie haben recht, der im Buch abgedruckte Code entspricht nicht dem Code der Beispieldatei. Da habe ich vermutlich nach der Aktualisierung des Codes übersehen, die Änderungen auch in den Text zu übernehmen. Die
prepare
-Methode inViewController.swift
sollte so aussehen:In solchen Fällen ist es oft am besten, Sie werfen einen Blick in die zum Buch gehörenden Beispielprojekte (Download-Link siehe https://kofler.info/buecher/swift/).
S. 229: wenn
min
odermax
weiterverarbeitet werden sollen, müssen sie ausgepackt werden bzw. muss eineif-let
-Konstruktion gebildet werden. Aber zum Test der Funktion in einem Playground reicht es aus.S. 261: Zur Abwechslung kein Fehler von mir :-)
self.length
ruft den darunter erstelltenComputed Property
-Code auf, dieser kümmert sich einerseits um die Kontrolle (>0
) und andererseits um den Zugriff auf den tatsächlichen Datenspeicher, also_length
. Analog fürwidth
.S. 343: Sie haben recht, gemeint habe ich
let result = try db.execute("SELECT ...")
Nochmals vielen Dank für Ihr Feedback (gerne auch per Mail direkt an mich)! Das hilft, die nächste Auflage besser zu machen.
Hallo Herr Kofler,
vielen Dank für die schnelle Antwort und die Erläuterungen.
Alles klar @ Mail!
Viele Grüße,
Patrick Klose
Sehr geehrter Herr Kofler,
auf Seite 144 schreiben Sie:
„Beachten Sie, dass Sie an die meisten Funktionen Fließkommazahlen übergeben müssen. sqrt(2) funktioniert nicht, es muss sqrt(2.0) heißen.“
In Apples Language Guide steht, „number literals don’t have an explicit type in and of themselves“:
sqrt(2) funktioniert also. Vielleicht gab es einmal eine andere Regel, aber das muss wohl vor Swift 4 gewesen sein.
Viele Grüße Andreas
Sehr geehrter Herr Kofler,
auf Seite 242 schreiben Sie:
„Losgelöst von den oben skizzierten Regeln können Sie Elemente, die internal, fileprivate
oder private sind, durch das Attribut @testable für Test-Targets zugänglichmachen.“
Meines Wissens hebt @testable nur internal auf. Vielleicht wird sich das mal ändern, aber bis jetzt kann fileprivate und private nicht über @testable zugänglich gemacht werden.
https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html:
„@testable provides access only for internal functions; file-private and private declarations are not visible outside of their usual scope when using @testable.“
Apples Language Guide:
„However, a unit test target can access any internal entity, if you mark the import declaration for a product module with the @testable attribute […]“
Viele Grüße Andreas
… Die letzte Formulierung von Apples Language Guide, ohne explizit auf private und fileprivate einzugehen, ist natürlich nicht sehr eindeutig…
Wissen Sie schon, ob und wann eine neue Auflage erscheint mit den Änderungen zu iOS 13 & 14?
Die aktuelle Auflage hat sich leider nicht besonders gut verkauft. Es ist aktuell unklar, ob/wann es eine Neuauflage geben wird.
Hallo Herr Kofler,
gibt es mittlerweile Klarheit über eine etwaige Neuauflage?
Viele Grüße
Volker
leider nein. Wenn überhaupt, dann zu Version 6.
Hallo Herr Kofler,
Falls sie eine Neuauflage heraus bringen, beschreibn sie auch die SwiftUI Programmierung, die ist doch ziemlich anders als bisher.
Viele Grüsse
Walter