7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Swift

Was kann man von Swift 3 erwarten?

Scroll to top
Read Time: 10 mins

German (Deutsch) translation by Katharina Grigorovich-Nevolina (you can also view the original English article)

Sie wissen wahrscheinlich, dass Swift 3 später in diesem Jahr kommt. Es ist die erste Veröffentlichung, die die harte Arbeit einer fantastischen Community beinhaltet. Seit dem Open-Source-Swift von Apple im Jahr 2015 wurden Dutzende von Vorschlägen eingereicht, und Dutzende wurden nach sorgfältiger Prüfung durch das Kernteam angenommen. In diesem Artikel werfen wir einen Blick auf einige wichtige Änderungen in Swift 3.

Worum geht es in Swift 3?

Das Kernteam hat mit der Veröffentlichung von Swift 3 ein sehr klares Ziel vor Augen, das eine solide Grundlage für die Programmiersprache Swift schafft. Auf der WWDC 2016 betonte Chris Lattner, dass Swift 3 eine Reihe bahnbrechender Änderungen einführt, um die Grundlagen richtig zu machen. Das ist das gemeinsame Thema der kommenden Veröffentlichung. Das bedeutet, vorhandene Funktionen zu beschädigen, einige Funktionen zu entfernen und die Grundlage der Sprache zu verbessern.

Das Swift-Evolutionsprojekt war eine echte Erfolgsgeschichte für alle Beteiligten in der Swift-Community. Das Engagement war enorm und das Ergebnis ist Swift 3. Apple ist transparent über den Veröffentlichungsprozess und Snapshots von Swift 3 sind auf der Swift-Website verfügbar und in Xcode 8 enthalten, das sich zum Zeitpunkt des Schreibens in der Beta befindet.

Mehr als Swift

Die Swift 3-Version konzentriert sich nicht nur auf die Programmiersprache Swift, sondern enthält auch wesentliche Änderungen an der Werkzeugchain, der Standardbibliothek und der Interoperabilität der Sprache mit Cocoa. Denken Sie daran, dass Swift mehr als eine Sprache ist. Wenn wir über Swift sprechen, denken wir im Allgemeinen nur an die Sprache, aber sie enthält auch die Standardbibliothek und den Paketmanager.

Quellkompatibilität

Wenn Sie mit Swift gearbeitet haben, wissen Sie, dass die Migration einer Codebasis von einer Version auf eine andere keine Kleinigkeit ist. Leider ist die Migration eines Projekts zu Swift 3 nicht anders.

Das Hauptziel von Swift 3 ist es jedoch sicherzustellen, dass der Übergang von Swift 3 zu zukünftigen Versionen der Sprache nicht so verläuft. Die Quellkompatibilität ist ein zentraler Punkt von Swift 3.

Großartigkeit

Swift wurde als moderne Programmiersprache entwickelt, aber es war genauso wichtig, eine Sprache zu erstellen, die gut aussah und... na ja... großartig war. Mit Swift 3 optimiert das Team weiterhin "die Sprache für Großartigkeit", wie Chris Lattner es ausdrückt.

Obwohl es viele bahnbrechende Änderungen gibt, ist das Nettoergebnis eine Sprache, die sich großartig anfühlt und gut aussieht. Swift 3 ist eine Freude zu bedienen. Die Änderungen an Core Graphics und Grand Central Dispatch, die wir gleich diskutieren, sind gute Beispiele.

Was ändert sich?

Genug davon, wie großartig Swift ist und wie viel fantastischer Swift 3 sein wird. Im weiteren Verlauf dieses Artikels möchte ich mich auf einige der wichtigsten Änderungen konzentrieren, die in Swift 3 eingeführt wurden. Beachten Sie, dass sich Swift 3 bis zur offiziellen Veröffentlichung im Laufe dieses Jahres weiterentwickelt.

API

Lesbarkeit

Es wurde viel Zeit und Energie aufgewendet, um die API der Swift-Sprache zu verbessern. Die Änderungen sind signifikant, das lässt sich nicht leugnen. Aber das Ergebnis ist sehr, sehr schön. Mit Swift 3 strebt das Kernteam eine API an, die sich auf Lesbarkeit und Zugänglichkeit konzentriert.

Während sich viele von uns an die Ausführlichkeit von Objective-C gewöhnt haben, verfolgt die neue Swift-API einen anderen Ansatz, indem sie nur das Wesentliche betont und sich darauf konzentriert. Schauen Sie sich das folgende Beispiel von Swift 2.2.1 an. Dieses Beispiel sollte Ihnen bekannt vorkommen, wenn Sie einige Zeit mit Swift... oder Objective-C verbracht haben.

In Swift 3 sieht dieses Code-Snippet etwas anders aus, wie Sie unten sehen können.

Die Swift-Community erkannte, dass es nicht erforderlich ist, einen Verweis auf das, was präsentiert werden soll, aufzunehmen, da diese Informationen bereits im ersten Parameter enthalten sind. Dadurch wird der Methodenname lesbarer und prägnanter. Eine deutliche Verbesserung, wenn Sie mich fragen.

Das ist ein roter Faden in Swift 3. Einige der Vorschläge, die in Swift 3 angenommen und aufgenommen wurden, konzentrieren sich auf die Vereinfachung und das Entfernen von Cruft aus der Sprache. Die Swift-API wurde anfangs stark von der ausführlichen Natur von Objective-C beeinflusst. Die Lesbarkeit ist großartig, aber Swift 3 verringert die Ausführlichkeit, ohne die Lesbarkeit zu beeinträchtigen.

Die Swift-Community ist der Meinung, dass das Design einer API immer die Verwendung der API berücksichtigen sollte und dass dies in den Änderungen, die in Swift 3 eingeführt werden, deutlich sichtbar ist. Ich bin sicher, Sie stimmen zu, dass die überarbeitete API aussieht - und liest - großartig.

Beschriftungsparameter

Eine weitere wichtige Änderung, die viele Entwickler begrüßen, ist die konsistente Signatur von Funktionen und Methoden, indem standardmäßig die erste Parameterbezeichnung eingefügt wird. So sieht eine typische Funktion in Swift 2.2.1 aus. Standardmäßig wird die erste Parameterbezeichnung beim Aufrufen der Funktion weggelassen.

Das gilt in Swift 3 nicht mehr. Der erste Parameter wird nicht mehr speziell behandelt, was eine sehr willkommene Änderung ist.

Aufgrund dieser Änderung können Sie das obige Beispiel weiter verbessern, indem Sie den Verweis auf die Ansicht im Funktionsnamen weglassen.

Als Mitglied importieren

Die Arbeit mit C-APIs in Swift sah immer klobig aus und fühlte sich auch so an. Core Graphics-Funktionen werden beispielsweise als globale Funktionen importiert. Dies ist keine großartige Lösung, weshalb sich die Verwendung von Core Graphics in Swift nicht besonders gut anfühlt.

Gleiches gilt für Grand Central Dispatch. Im nächsten Beispiel verwenden wir Grand Central Dispatch, um eine Aufgabe asynchron an eine Hintergrundwarteschlange zu senden.

In Swift 3 fühlt sich die API viel mehr wie eine native Swift-API an. Funktionen werden als Methoden importiert, was in Swift 3 zu der folgenden Syntax führt.

Funktionen entfernen

Die Swift-Community stimmte auch der Entfernung einer Reihe von Funktionen zu, von denen einige einige hitzige Diskussionen ausgelöst haben. Ich möchte auf vier davon hinweisen.

C-Style for Loops

Kommt Ihnen das bekannt vor?

C-förmige for-Schleifen sind in Swift 3 nicht mehr verfügbar. Warten Sie. Was? Warum? Das ist eine sehr gute Frage. Sie können den von Erica Sadun eingereichten Vorschlag auf GitHub lesen. Dies bringt uns zur nächsten kontroversen Änderung.

Verabschieden Sie sich von ++ und --

Kurz nach dem Open-Sourcing von Swift reichte Chris Lattner, der Erfinder von Swift, einen Vorschlag ein, die Inkrement- und Dekrement-Operatoren aus der Sprache zu entfernen. In seinem Vorschlag erwähnt er, dass diese Operatoren "ohne große Rücksichtnahme" zu Beginn der Entwicklung von Swift hinzugefügt wurden. Um die Swift-API zu bereinigen und Verwirrung zu vermeiden, sind ++ und -- in Swift nicht mehr verfügbar.

Keine Panik. Die Lösung ist einfach. Keine Notwendigkeit, sich zu ärgern.

Keine var-Parameter mehr

Wenn Sie mit Funktionen in Swift vertraut sind, wissen Sie, dass die Parameter einer Funktion standardmäßig konstant sind. Sie können dieses Verhalten ändern, indem Sie dem Schlüsselwort var einen Parameternamen voranstellen. Bei variablen Parametern wird eine variable Kopie des Parameters an die Funktion übergeben.

Aber wie unterscheidet sich dies von als inout gekennzeichneten Parametern? Richtig. Genau das haben sich viele von uns gefragt und es ist die Motivation, variable Parameter aus der Sprache zu entfernen.

Aus Sicht der Funktion gibt es keinen Unterschied, dh die Funktion erhält eine veränderbare lokale Kopie des Parameterwerts. Wie der Name schon sagt, schreibt ein als inout markierter Parameter seinen Wert zurück in die ursprüngliche Variable.

Um Verwirrung zu vermeiden, sind var-Parameter in Swift 3 nicht mehr verfügbar. Glücklicherweise bleiben inout-Parameter erhalten.

Apropos inout-Parameter: In Swift 3 ist das Schlüsselwort inout in die Typensyntax der Funktionsparameter integriert. Schauen Sie sich die folgenden Beispiele an, um diese Änderung besser zu verstehen.

Implizites Tupel-Splat-Verhalten

Obwohl Swift noch sehr jung ist, gibt es viele Funkionen, die ziemlich fortgeschritten sind. Wussten Sie, dass Sie anstelle einer Liste von Parametern ein Tupel an eine Funktion übergeben können? Es besteht jedoch kein Grund zu jubeln. Diese Funktion wird in Swift 3 entfernt.

Chris Lattner bezeichnet dieses Verhalten in seinem Vorschlag, die Funktion zu entfernen, als "niedlich". Obwohl dieses Verhalten von Zeit zu Zeit nützlich sein kann, scheint es einige Konsequenzen zu haben. Der Grund für die Vorlage dieses Vorschlags besteht darin, das Hauptziel des Kernteams hervorzuheben und die Syntax und die API der Sprache zu vereinfachen.

Ich kann sehen, wie diese Funktion auf den ersten Blick ordentlich aussah, aber als die Sprache wuchs, an Komplexität zunahm und immer mehr Menschen sie verwendeten, verleihen Funktionen wie diese der Sprache im Austausch für eine scheinbar komplizierte Liste nur einen begrenzten Wert Dies schließt Leistungsprobleme während der Kompilierung und die Komplexität der Typprüfung ein, die durch Weglassen der Funktion vermieden werden könnten.

Was ist der Deal mit Swift 2.3?

Letzte Woche habe ich über Xcode 8 geschrieben. In diesem Artikel habe ich erwähnt, dass Xcode 8 sowohl Swift 2.3 als auch Swift 3 unterstützt. Aber was ist Swift 2.3 und wie ist es mit Swift 2.2 zu vergleichen?

Swift 2.3 ist ein kleines, aber wichtiges Update von Swift. Der Hauptunterschied zu Swift 2.2.1, der in Xcode 7.3.1 enthaltenen Version, besteht in der Kompatibilität mit den SDKs für Apples neue Betriebssysteme iOS 10, tvOS 10, watchOS 3 und macOS Sierra (10.12).

Das bedeutet, dass Sie die neuen SDKs verwenden und gegen sie bauen können, ohne zu Swift 3 springen zu müssen. Mit Xcode 8 können Sie mit Swift 2.3 oder Swift 3 Anträge an den App Store senden. Das Swift-Team weiß und versteht, dass die Migration zu Swift 3 erhebliche Auswirkungen auf vorhandene Projekte hat, zu denen Swift gehört. Swift 2.3 stellt sicher, dass Sie Ihre Projekte nach Belieben migrieren können.

Werkzeuge

Was mir auch am Swift-Projekt gefällt, ist, dass die Werkzeugs neben der Sprache entwickelt werden. Dies bedeutet, dass die Werkzeugs auch ein umfangreiches Update erhalten, wenn Swift 3 später in diesem Jahr veröffentlicht wird.

Dokumentation

Während der WWDC haben wir bereits einen Blick auf die Änderungen an der Dokumentation geworfen. Obwohl dies trivial erscheinen mag, haben Sie jemals darüber nachgedacht, wie viel Zeit Sie mit dem Durchsuchen der Dokumentation verbringen? Ich habe ein Faible für solche Details und schätze die Anstrengungen, die das Team unternommen hat, um die Dokumentation zugänglicher zu machen. Die Änderungen in Xcode 8 sind noch dramatischer, als ich letzte Woche geschrieben habe.

Xcode

Derzeit verwendet die überwiegende Mehrheit der Swift-Entwickler Xcode als Arbeitspferd. Dies kann sich in Zukunft ändern, wenn die Sprache auf anderen Plattformen an Bedeutung gewinnt. Hatte Google nicht vor, Swift unter Android zu verwenden?

In Xcode 8 wurde die Integration von Swift erheblich verbessert. Das Navigieren in der Standardbibliothek ist beispielsweise intuitiver. In einer der Sitzungen der WWDC 2016 zeigt Ewa Matejska, wie die synthetisierten Schnittstellen jetzt intuitiver und verständlicher sind. Dies macht das Durchsuchen der Standardbibliothek weniger entmutigend.

Dies bringt uns zur Kompilierung und Optimierung. Möglicherweise haben Sie von der Optimierung des gesamten Moduls gehört. Diese Funktion ist jetzt standardmäßig in Xcode aktiviert. Dies wirkt sich auf die Anwendungsleistung aus. Apple empfiehlt, diese Funktion in der Produktion zu aktivieren. Wenn Sie mehr über die Optimierung des gesamten Moduls erfahren möchten, empfehlen wir Ihnen, diesen Artikel von Keith Harrison zu lesen.

Während die Optimierung des gesamten Moduls die Kompilierungszeit beim ersten Erstellen eines Projekts verlängert, sind die Ergebnisse mehr als wert. Nachfolgende Builds sind dank der inkrementellen Kompilierung weniger betroffen.

Schlussfolgerung

Swift 3 ist ein wichtiger Meilenstein für alle Beteiligten in der Swift-Community. Auch wenn niemand gerne Änderungen bricht, wird die Richtung, in die die Sprache geht, klarer, wodurch die Plattform robuster und für zukünftige Änderungen bereit ist, ohne die Kompatibilität der Quellen zu beeinträchtigen.

In diesem Artikel habe ich einige der wichtigeren Änderungen hervorgehoben, die Sie i Swift 3 erwarten können. Für eine umfassende Liste der Änderungen empfehlen wir Ihnen, den Migrationsleitfaden auf der Swift-Website zu besuchen.

Sie können auch das Swift Evolution-Projekt auf GitHub besuchen, um mehr über die Vorschläge zu erfahren, die angenommen wurden und an denen noch gearbeitet wird. Hab keine Angst. Die Vorschläge sind oft leicht zu verstehen. Tatsächlich ist das Ziel des Swift-Evolutionsprojekts, dass jeder zur Diskussion beitragen kann. Was hält dich auf?

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.