Swift-Apps nun kleiner: Xcode 10.2 Beta bringt Swift 5 mit
Gestern veröffentlichte Apple neben
diversen Beta-Versionen der Betriebssysteme auch eine neue Version von Xcode 10. Die erste Beta von Xcode 10.2 bringt
Unterstützung für Swift 5 mit und somit eine Menge Neuerungen für Entwickler.
Kleinere AppsEntwickelte ein Programmierer vormals ein Swift-Programm, wurde die gesamte Swift-Runtime-Bibliothek in das Programm integriert. Dies war notwendig, da das Application Binary Interface (ABI) sich zwischen den einzelnen Swift-Versionen deutlich unterschied und deswegen nicht den Betriebssystemen, sondern der App beiliegen musste. Mit Swift 5 konzentrierten sich die Entwickler aber darauf, dass das ABI nun "stabil" ist und sich mit weiteren Swift-Versionen nicht mehr maßgeblich ändern wird.
Lädt ein Entwickler nun zukünftig eine App in den App Store hoch, welche mit Swift 5 geschrieben ist, beinhaltet diese weiterhin die Swift-Bibliotheken. Wird die App aber auf einem iOS-Gerät mit mindestens iOS 12.2 oder einen Mac mit mindestens macOS 10.14.4 heruntergeladen, entfernt der App Store vorher die nicht benötigten Swift-Libraries mittels App-Thinning.
Die ABI-Stabilität hat auch einen weiteren sehr wünschenswerten Nebeneffekt: Zukünftig sind Libraries, welche mit Swift 5 erstellt wurden, auch mit Folgeversionen wie Swift 6 kompatibel.
Viele sprachliche NeuerungenSwift 5 bringt neben dem stabilen ABI auch viele sprachliche Neuerungen mit. So lassen sich nun Raw-Strings anlegen, welche zusätzlich zu den normalerweise verwendeten Anführungszeichen Doppelkreuze (#) verwenden, um ein Umwandeln von enthaltenen Steuerzeichen zu verhindern.
Enumerations lassen sich in Zukunft markieren, dass neue Aufzählungselemente hinzukommen könnten – dies hat zur Folge, dass der Entwickler beim Behandeln des Enums gezwungen wird, auch einen Standardfall zu behandeln. Für Collections gibt es nun eine neue Möglichkeit, die Anzahl von enthaltenen Elementen zu überprüfen, die spezielle Maßgaben erfüllen: Der Aufruf
count(where:) liefert die Anzahl von Elementen in beispielsweise einem Array zurück, die die Kriterien des where-Parameters entsprechen.
Eine komplette Liste der Neuerungen finden Sie in den
Xcode 10.2 Release Notes auf der Apple Developer Connection.
Noch einige ProblemeDa es sich um die erste Vorabversion von Xcode 10.2 und Swift 5 handelt sind natürlich noch einige nicht gelöste Probleme vorhanden. So ist es derzeit noch nicht möglich, reine Kommandozeilenprogramme mit Swift 5 zu schreiben: Diese stürzen beim Starten mit der Meldung ab, dass die Swift-Library nicht geladen werden könnte. Apple weißt auch darauf hin, dass die Kompilierungszeit von Swift 5 langsamer sei als bei Vorversionen.