Am 3. Dezember 2015 hat Apple die Programmiersprache Swift offiziell geöffnet. Durch das Open Sourcing der gesamten Programmiersprache hat Apple es Entwicklern aus der ganzen Welt jetzt ermöglicht, einen Beitrag zur Sprache zu leisten und deren Entwicklung und Weiterentwicklung zu unterstützen. Darüber hinaus kann die Programmiersprache Swift jetzt auch in Umgebungen außerhalb von Apples Plattformen wie Linux verwendet werden.
In diesem Artikel werde ich Ihnen einige der beliebtesten und interessantesten Projekte erzählen, die Swift einsetzen und sich im Laufe der Zeit neben der Sprache selbst entwickeln werden.
Wenn Sie zuvor iOS-Programmierungen vorgenommen haben, insbesondere mit Objective-C, sind Sie wahrscheinlich mit Klassen wie vertraut NSDate
, NSArray
, NSString
, und NSURL
. Diese Klassen sind alle Teil des Stiftung Framework, das auf jeder Apple-Plattform verfügbar ist (iOS, OS X, tvOS und watchOS).
Die grundlegende Funktionalität der Foundation-APIs wird jedoch auch von Apple als Swift Core Library implementiert, um plattformübergreifend portierbar zu sein. Dieses Projekt ist im Repository von swift-corelibs-foundation bei GitHub zu finden.
Zahlreiche andere Entwickler arbeiten aktiv daran, die Foundation-APIs auf tragbare, plattformübergreifende Weise für Swift bereitzustellen. Das bekannteste dieser Projekte ist SwiftFoundation, das zum Zeitpunkt der Erstellung dieses Artikels viele wichtige Unterscheidungsmerkmale von Apples Implementierung hat.
Es bietet mehr Funktionalität. Wie in der README-Datei des Projekts vermerkt, sind viele Methoden im Apple Foundation-Projekt mit gekennzeichnet NSUnimplemented ()
, Dies bedeutet, dass derzeit nur grundlegende Funktionen verfügbar sind.
Es wurde von Anfang an auf Portabilität ausgelegt. Im Gegensatz zur Kernbibliothek von Apple stützt sich SwiftFoundation nicht auf die in C geschriebenen CoreFoundation-APIs. Dadurch kann SwiftFoundation zukünftig eine breitere Palette von Plattformen leichter unterstützen.
SwiftFoundation wurde vollständig mit einer protokollorientierten Struktur und nicht mit dem traditionelleren objektorientierten Programmierstil entworfen und entwickelt. Dies bietet eine Reihe von Vorteilen, über die Sie in diesem Tutorial mehr erfahren können.
Noch wichtiger ist, dass die über 20 Jahre alten Foundation-APIs vollständig modernisiert werden. Apple könnte dies mit seiner Foundation-Kernbibliothek tun, aber die README-Datei ihres Repositorys besagt Folgendes.
In unserem ersten Jahr möchten wir keine größeren API-Änderungen an der Bibliothek vornehmen. Wir glauben, dass dies das Hauptziel [der Portabilität außerhalb von Apple-Plattformen] behindern wird..
Beide Projekte werden aktiv aktualisiert und werden definitiv für die Zukunft der Swift-Entwicklung von entscheidender Bedeutung sein, da sie grundlegende Funktionen wie Vernetzung, Abrufen / Manipulieren von Datum / Uhrzeit und permanenten lokalen Speicher auf jeder Plattform, die von Swift unterstützt wird, ermöglichen.
Neben Foundation entwickelt Apple zwei weitere große Bibliotheken, die mit Swift auf anderen Plattformen verwendet werden sollen, von Grund auf neu: XCTest und Libdispatch (auch als Grand Central Dispatch bekannt). Diese Projekte sind zwar nicht so populär oder haben den gleichen Umfang wie Foundation, aber sie sind immer noch sehr wichtig, wenn es um die schnelle Entwicklung geht.
Das XCTest-Projekt ermöglicht es Entwicklern, Komponententests für ihren Swift-Code zu erstellen. Wenn Sie mit Komponententests nicht vertraut sind, lesen Sie diesen Artikel, um mehr darüber zu erfahren. Das XCTest-Projekt, das sich in einem sehr frühen Stadium befindet und nur grundlegende Tests unterstützt, wird im Laufe der Zeit für alle Swift-Entwickler beim Testen und Debuggen von Code sehr wichtig.
Das libdispatch-Projekt ermöglicht gleichzeitige (Multithreading) Workflows, wenn es auf unterstützter Hardware ausgeführt wird. Dies ist besonders wichtig für Aktionen, z. B. Netzwerkanforderungen, damit der Haupt-Thread nicht durch andere Vorgänge blockiert wird.
Obwohl beide Repos wie Swift im Besitz von Apple sind und von diesen gepflegt werden, wurden sie aus Open Source-Quellen zur Unterstützung der Entwickler entwickelt. Ich möchte Sie dazu ermutigen, einen Blick darauf zu werfen, auch wenn es nur aus Interesse ist, sich die Implementierung der APIs anzusehen. Sie können viel durch das Durchsuchen des Quellcodes lernen.
Eine der aufregendsten Möglichkeiten des Open Sourcing ist, dass Swift als primäre Programmiersprache für Server-Backends und Websites verwendet werden kann. Während HTML und CSS die Standards für das Web in Bezug auf die Darstellung von Inhalten für den Benutzer bleiben werden, können Swift und seine Bibliotheken, sobald sie ausgereift und funktionsfähig genug sind, in fast allen Situationen eingesetzt werden, in denen derzeit andere Sprachen, wie PHP und JavaScript werden verwendet.
Dies ist besonders für Cocoa-Entwickler aufregend, da die Fähigkeiten und das Wissen, die sie durch den Einsatz von Swift für die Frontend-Entwicklung bereits erworben haben, sie enorm unterstützen werden, wenn sie die Backend-Entwicklung durchführen möchten.
Es gibt viele Projekte, die alle daran arbeiten, Swift ins Internet zu bringen, darunter Vapor, Zewo und Caramel. Das am weitesten fortgeschrittene und funktionsreichste dieser Projekte ist jedoch Perfekt.
Perfekt umfasst viele verschiedene Swift-Komponenten, die jeweils einen eigenen Zweck haben.
Zusammengenommen ermöglichen diese Komponenten einen voll funktionsfähigen Webserver, der genauso funktionieren würde wie ein herkömmlicher Server, der mit PHP oder JavaScript betrieben wird. Die Möglichkeiten von Webservern, auf denen Swift läuft, sind sehr aufregend, und Projekte wie Perfect bereiten den Tag für den Tag, an dem Swift für nahezu jede Komponente eines Projekts verwendet werden kann.
Wenn Sie einen Blick auf die zuvor in diesem Artikel erwähnten Repositorys werfen, werden Sie feststellen, dass einige von ihnen in ihrem Stammverzeichnis eine Datei haben Package.swift. Projekte, die diese Datei enthalten, müssen so mit dem Swift Package Manager verwendet werden.
Der Swift Package Manager ist ein Abhängigkeitsverwaltungssystem, das CocoaPods und Carthage ähnelt. Entwickler können damit auf Bibliotheken von Drittanbietern zugreifen und diese in ihren eigenen Projekten verwenden.
Dieser Paketmanager wird so entwickelt, dass jede Plattform, die Swift verwendet, auf dieselbe Weise mit Code verknüpft und importiert werden kann, anstatt sich auf eine plattformspezifische Lösung zu verlassen. Der Swift Package Manager befindet sich noch in den frühen Entwicklungsstadien. Viele Spezifikationen können sich ändern. Es soll jedoch neben Swift 3 finalisiert und veröffentlicht werden.
Wenn Sie sich dieses Projekt näher ansehen und lernen möchten, wie Sie es in Ihrem eigenen Code verwenden können, empfehle ich Ihnen, die Seite des Projekts auf Swift.org oder das Repository auf GitHub zu besuchen.
Neben den bereits erwähnten Open Source-Swift-Projekten gibt es auch viele andere, die sehr interessant und einzigartig sind.
Dieses Projekt ist auf Protokollierung ausgerichtet. Entwickler können so viel mehr Details auf die Systemkonsole drucken, ohne eine ganze Menge zusätzlichen Code schreiben zu müssen. Mit diesem Protokollierungsdienstprogramm können Sie eine Vielzahl von Attributen automatisch protokollieren, darunter den Namen des Threads, den Namen der Quellcodedatei, die Zeilennummer und die Methode des aktuellen Bereichs.
Ziel dieses Projekts ist es, Befehlszeilenanwendungen mit Swift zu erstellen. Diese Anwendungen unterstützen die Benutzerinteraktion in Form von normaler Tastatureingabe sowie Multiple-Choice-Optionen.
Swiftline wäre in einer pädagogischen Umgebung besonders nützlich, da die Schüler damit eine voll funktionsfähige und interaktive Anwendung entwickeln könnten, ohne sich um jegliche Art von Benutzeroberfläche kümmern zu müssen.
Dieses Repository enthält eine Vielzahl nützlicher Algorithmen zur Verwendung in Swift-Code. Dies umfasst Dinge wie Arrays mit fester Größe, Hash-Tabellen und Mischen. Das Repository enthält eine vollständige Liste aller derzeit unterstützten Algorithmen.
Swift AI ist ein Projekt künstlicher Intelligenz, das sich auf maschinelles Lernen konzentriert. Das im Projekt enthaltene Beispielprojekt zeigt, wie das KI-System lernen kann, eine grundlegende Sinusfunktion zu replizieren.
Beachten Sie, dass dieses Projekt derzeit nur unter iOS und OS X unterstützt wird, da es von Apples Accelerate-Framework abhängig ist, das eine verbesserte Leistung bei der Ausführung umfangreicher Berechnungen ermöglicht.
Es gibt so viele neue und aufregende Open Source Swift-Projekte, die im Laufe der Zeit die Karriere vieler Entwickler beeinflussen und beeinflussen werden. Wie Sie sehen können, hat Apple durch Open-Sourcing Swift nicht nur die Verbesserung der Sprache durch Community-Beiträge ermöglicht, sondern auch bei der Entwicklung für andere Plattformen als die von Apple.
Ich möchte Sie dazu ermutigen, einige der in diesem Artikel erwähnten Projekte zu überprüfen und zu sehen, was sie erreichen wollen. Wenn Sie sich noch mehr Projekte anschauen möchten, empfehle ich Ihnen, GitHub nach den beliebtesten und aktuellsten Swift-Repositories zu durchsuchen.
Hinterlassen Sie wie immer Ihre Kommentare und Rückmeldungen in den Kommentaren unten.