Schlagwort-Archive: 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.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

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

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 3.0.1 unter Ubuntu 16.04, zweiter Anlauf

Im Dezember 2015 habe ich Swift unter Linux erstmals ausprobiert, im März 2016 habe ich meine Experimente mit Beta-Versionen von Swift 3 und Ubuntu 16.04 wiederholt. Restlos begeistert war ich nicht. Heute habe ich einen neuen Versuch gestartet, wieder unter Ubuntu 16.04, und diesmal mit einem Swift 3.0.1 GM Candidate.

Swift 3.0.1 unter Ubuntu 16.04, zweiter Anlauf weiterlesen

Swift Playgrounds auf dem iPad ausprobiert

Apple bietet im App Store die kostenlose App Swift Playgrounds für iPads an. Die App soll vor allem Jugendlichen dabei helfen, die Grundkonzepte von Swift spielerisch zu erlernen. Die Animationen sprechen vermutlich eher acht- bis zehnjährige Kinder an, aber lassen Sie sich davon nicht abhalten: Die App hat wesentlich mehr Substanz, als die grafische Gestaltung vermuten lässt, und ist durchaus auch für erwachsene Einsteiger in die Swift-Programmierung interessant. In zahlreichen, allmählich anspruchsvolleren Übungen lernen Sie durchaus systematisch Methoden, Schleifen, if-Abfragen etc. kennen.

Durch die Definition einer eigenen Funktion und den Aufruf diverser  Methoden soll die Spielfigur »Byte« zum Ziel gesteuert werden.
Durch die Definition einer eigenen Funktion und den Aufruf diverser Methoden soll die Spielfigur »Byte« zum Ziel gesteuert werden.

Swift Playgrounds auf dem iPad ausprobiert weiterlesen

Fehler in Swift-Funktionen weitergeben (rethrows)

Die Array-Methode map ist ebenso wie unzählige weitere Collection-Methoden aus der Swift-Standardbibliothek mit dem Schlüsselwort rethrows deklariert:

// Definition von map in der Swift-Standardbibliothek
public struct Array<Element> : RandomAccessCollection, 
                               MutableCollection 
{
  public func map<T>(_ transform: (Element) throws -> T) rethrows 
                   -> [T]
}

Dieser Beitrag erklärt, was es mit rethrows auf sich hat und wie Sie rethrows in eigenen Funktionen bzw. Methoden verwenden.

Fehler in Swift-Funktionen weitergeben (rethrows) weiterlesen

Pläne für Swift 3.0

Mit der Geheimniskrämerei ist es vorbei: Seit Swift ein Open-Source-Projekt ist, verläuft die Entwicklung transparent. Dieser Beitrag fasst zusammen, wie Swift 3 voraussichtlich aussehen wird. Diese Pläne ändern sich laufend. Dieser Beitrag wird deswegen regelmäßig aktualisiert. (Erste Version 11.12.2015, letztes Update: 1.8.2016.)

PS: Die Liste der Änderungen hat inzwischen schon fast epische Ausmaße angenommen. Dieser Blogbeitrag ist eine Zusammenfassung der Neuerung, die mir am wichtigsten erscheinen, aber keine vollständige Referenz. Werfen Sie gegebenenfalls einen Blick auf die Seite https://github.com/apple/swift-evolution!

Pläne für Swift 3.0 weiterlesen