Archiv der Kategorie: Swift

SwiftUI

Im Frühjahr 2019 stellte Apple SwiftUI vor. Das ist eine neue Bibliothek, um grafische Benutzeroberflächen durch Swift-Code zusammenzusetzen. SwiftUI spart Millionen Maus- oder Trackpad-Bewegungen, die beim bisherigen Verfahren auf der Basis von UIKit erforderlich waren.

Mittlerweile ist SwiftUI einigermaßen praxistauglich. Zeit also, einen Blick auf neue Denkweisen und Paradigmen zu werfen! (Der präsentierte Code und die Screenshots beziehen sich auf Xcode 12 mit Swift 5.3.)

Update Juni 2022: Das mit der Praxistauglichkeit ist so eine Sache. Viele SwiftUI-Entwickler sind vom Konzept begeistert, aber stoßen früher oder später auf schwer (oder gar nicht) überwindbare Hürden. Lesen Sie unbedingt https://mjtsai.com/blog/2022/05/24/swiftui-in-2022/, bevor Sie Ihr erstes SwiftUI-Projekt starten!

SwiftUI weiterlesen

Swift 5.3

Zusammen mit Xcode 12 hat Apple im September 2020 auch Swift 5.3 freigegeben. Die neueste Swift-Version zeichnet sich durch viele Verbesserungen »unter der Haube« aus (höhere Kompiliergeschwindigkeit, klarere Fehlermeldungen, bessere Einrückungen im Editor); neue Sprach-Features sind dagegen kaum zu finden. Dafür gibt es aber interessante Neuerungen im Swift-Umfeld, beispielsweise:

  • eine Windows-Version (die ich nicht getestet habe)
  • die neue Standardbibliothek »Swift System«, die vor allem für Linux-Entwickler interessant ist
  • die neue Bibliothek »Swift Atomics« für atomare Operationen in asynchronem Code
  • Verbesserungen beim Paketmanager

Ich beschränke mich im Folgenden auf die interessantesten neuen Features, die für die alltägliche Programmierung relevant sind.

Swift 5.3 weiterlesen

Swift 5.1

Vorige Woche wurde Swift 5.1 ist veröffentlicht. Es zeichnet sich durch vollständige Kompatibilität zu Swift 5.0 und einige neue Features aus. Dass nur ein Bruchteil davon für typische App-Entwickler relevant ist, kann wohl als Zeichen dafür gesehen werden, dass Swift allmählich wirklich ausgereift ist.

Apple verspricht außerdem, dass Swift Module Compatibility bietet. Das bedeutet, dass unter Swift 5.1 erzeugte und kompilierte Bibliotheken ohne Änderungen (und ohne Neukompilieren) mit zukünftigen Swift-Versionen kooperieren.

In diesem Beitrag fasse ich ganz kurz die wichtigsten neuen Features zusammen. (Ein eigener Artikel über die neue Bibliothek SwiftUI ist geplant, aber ich kann noch nicht sagen, wann ich dazu komme.)

Swift 5.1 weiterlesen

»Swift 5« ist erschienen

Die neueste Auflage meines umfassenden Handbuchs zu Swift ist erschienen. In dem Buch berücksichtige ich auf über 1300 Seiten natürlich alle wichtigen Neuerungen von Swift 5. Ein neues Kapitel behandelt auf vielfachen Leserwunsch Core Data und SQLite. Stark überarbeitet habe ich den Abschnitt zur Lokalisierung von Apps. (Xcode zickt dabei wie eh und je …) Außerdem gibt es da und dort ein paar neue Beispiele (Slider-Puzzle-App, macOS Dark Mode etc.) Weitere Details zum Buch finden Sie hier.

Wie üblich kann das Buch beim Rheinwerk Verlag oder bei Amazon vorbestellt werden. Die E-Book-Ausgabe bzw. das Bundle aus Buch und E+Book gibt es allerdings nur beim Rheinwerk Verlag!

Neu in Swift 5

Am 26. März wurde Swift 5 fertiggestellt. Dieser Beitrag fasst die wichtigsten Neuerungen zusammen. Swift 5 gilt insofern als »Meilenstein«, als Apple erstmalig die binäre Kompatibilität der Schnittstellen garantiert. Die größte Auswirkung in der Praxis besteht darin, dass Standardbibliotheken nun auf Apple-Geräten installiert werden und nicht mehr mit jeder App mitgeliefert werden müssen. Xcode erzeugt daher kleinere Binärdateien.

Update 30.3.2019: Swift 5 ist offiziell im Docker-Hub angekommen.

Neu in Swift 5 weiterlesen

Swift 4.2

Zusammen mit Xcode 10 wird in den nächsten Tagen Swift 4.2 freigegeben. Entwickler mit einem Apple-Developer-Zugang können den Goldmaster von Xcode 10 bereits jetzt herunterladen, alle anderen werden das Update in ein paar Tagen über den App Store automatisch erhalten.

Apple weicht mit dem Release vom bisher jährlichen Major-Release-Zyklus ab. Swift 5 soll es erst im Frühjahr 2019 geben. (Voraussichtlich ein bis zwei Monate später wird es dann vorauss. auch die Neuauflage meines Swift-Buchs geben.)

Swift 4.2 weiterlesen

Vapor 3

Vapor ist ein Swift-Framework zur Programmierung von Server-Anwendungen. Zwar ist es möglich, damit z.B. auch einen eigenen Webserver zu gestalten, in der Praxis werden mit Vapor aber überwiegend REST-APIs implementiert.
Derartige APIs können testweise unter macOS laufen; für den Praxisbetrieb kommt dann zumeist ein eigener Ubuntu-Server oder eine entsprechende Cloud-Instanz zum Einsatz.

Als ich im August 2017 für meinem Buch Swift 4 ein Kapitel über Vapor verfasste, dachte ich, in ein paar Wochen würde die aktualisierte Version Vapor 3 fertig werden, die dann (vollständig) Swift-4-kompatibel wäre. Da habe ich mich gleich in zweierlei Hinsicht getäuscht: Zum einen dauerte die Fertigstellung von Vapor 3 bis Mai 2018. Zum anderen war es kein kleines Update, sondern weitestgehend eine Neuimplementierung dieses Frameworks.

Vapor 3 weiterlesen

Swift 4.1

Swift 4.1 ist ein Minor Release, in dem sich Apple bemüht hat, einige Neuerungen unterzubringen ohne die Kompatibilität zu Swift 4.0 zu gefährden. Vorhandener Code sollte also unverändert laufen. Mit dem Update kommen Sie aber in den Genuss einiger neuer Features.

Swift 4.1 weiterlesen

Swift 4

Die Entwicklung von Swift 4 ist abgeschlossen. Für registrierte Apple-Developer ist Xcode 9 final bereits verfügbar, im App Store wird die Entwicklungsumgebung in den nächsten Tagen auftauchen. Dieser Beitrag fasst die wichtigsten Neuerungen in Swift zusammen. (Erste Version 5.7.2017, finales Update 18.9.2017. Der Artikel berücksichtigt auch die in Swift 3.1 hinzugefügte Neuerungen und geht kurz auf die Pläne für Swift 5 ein.)

Swift 4 weiterlesen

Swift 3.1

Mit Xcode 8.3/Swift 3.1 hat Apple ein Mini-Release herausgebracht. Swift 3.1 ist zu 99,99% kompatibel zu Swift 3.0, hat aber ein paar kleine neue Features dazubekommen. Richtig Bewegung in die Swift-Entwicklung wird erst im Herbst kommen, wenn Swift 4.0 fertig wird. (Daran wird hinter den Kulissen schon eifrig gearbeitet, aber in Swift 3.1 ist das noch nicht zu sehen.)

Swift 3.1 weiterlesen