Den 3 december 2015 öppnade Apple officiellt Swift-programmeringsspråket. Genom att öppna hela programseringsspråket har Apple nu tillåtit utvecklare från hela världen att bidra till språket och hjälpa till med utveckling och utveckling. Utöver detta kan Swift programmeringsspråket nu användas i miljöer utanför Apples plattformar, till exempel Linux.
I den här artikeln kommer jag att berätta om några av de mest populära och intressanta projekt som använder Swift och kommer över tid utvecklas bredvid själva språket.
Om du har gjort någon iOS-programmering före, speciellt med Objective-C, är du förmodligen bekant med klasser som NSDate
, NSArray
, NSString
, och NSURL
. Dessa klasser är alla en del av fundament ram, som är tillgängligt på alla Apple-plattformar (iOS, OS X, tvOS och watchOS).
Den grundläggande funktionaliteten Foundation APIs tillhandahålls dock också som ett Swift Core-bibliotek av Apple för att vara bärbart över plattformar. Projektet finns på Apples snabbkorrelationsförteckning på GitHub.
Många andra utvecklare jobbar aktivt för att få Foundation APIs att Swift på ett bärbart plattformsläge. Den mest populära av dessa projekt är SwiftFoundation, som vid tidpunkten för skrivandet av denna artikel har många viktiga differentiatorer från Apples implementering.
Det ger mer funktionalitet. Som projektets läsanteckningar markeras många metoder i Apples stiftprojekt med NSUnimplemented ()
, vilket innebär att endast grundläggande funktionalitet är tillgänglig för närvarande.
Från början har den utformats med bärbarhet i åtanke. Till skillnad från Apples stiftbibliotek bygger inte SwiftFoundation på CoreFoundation APIs skrivna i C. Detta gör det möjligt för SwiftFoundation att lättare stödja ett större utbud av plattformar i framtiden.
SwiftFoundation har designats och utvecklats helt med hjälp av en protokollinriktad struktur i stället för den mer traditionella objektorienterade programmeringsstilen. Att göra det erbjuder en rad fördelar, som du kan lära dig mer om i denna handledning.
Ännu viktigare, det moderniserar helt de 20 + åriga Foundation APIs. Apple kunde så småningom göra något liknande med sitt Foundations kärnbibliotek men README i deras förråd anger följande.
I vårt första år vill vi inte göra större API-ändringar i biblioteket. Vi anser att detta kommer att hindra det primära målet [av portabilitet utanför Apple-plattformar].
Båda dessa projekt uppdateras aktivt och kommer definitivt att bli avgörande i framtiden för Swift Development, eftersom de möjliggör grundläggande funktioner, till exempel nätverk, få / manipulera datum / tider och vidhållande lokal lagring på vilken plattform som helst som stöds av Swift-språket.
Förutom Foundation är Apple också ombyggande av två andra huvudbibliotek som ska användas med Swift på andra plattformar: XCTest och libdispatch (även kallat Grand Central Dispatch). Även om dessa projekt inte är lika populära eller har samma omfattning som Foundation, är de fortfarande mycket viktiga när det gäller snabb utveckling.
XCTest-projektet är utformat så att utvecklare kan skapa enhetsprov för deras Swift-kod. Om du inte känner till enhetsprovningar, ta en titt på den här artikeln för att lära dig mer om dem. Medan endast de grundläggande testerna stöds, kommer XCTest-projektet under tiden att bli väldigt viktigt för alla Swift-utvecklare när de testar och felsöker deras kod.
Libdispatch-projektet möjliggör samtidiga (multithreaded) arbetsflöden när de körs på stödd maskinvara. Detta är särskilt viktigt för åtgärder, till exempel nätverksförfrågningar, så att huvudtråden inte blockeras av andra operationer.
Medan båda dessa repos ägs och underhålls av Apple, liksom Swift, har de blivit öppna för att uppmuntra utvecklarinsats. Jag uppmanar dig att ta en titt på dem, även om det bara är av intresse att titta på implementeringen av API: erna. Det finns mycket du kan lära av att surfa på källkoden.
En av de mest spännande möjligheterna till öppen sourcing Swift är möjligheten att använda den som det primära programmeringsspråket för serverbackends och webbplatser. Medan HTML och CSS kommer att förbli standard för webben när det gäller att presentera innehåll för användaren, när Swift och dess bibliotek är mogna och funktionella nog kan Swift användas i nästan alla situationer där andra språk, till exempel PHP och JavaScript, används.
Detta är särskilt spännande för kakaoutvecklare eftersom de färdigheter och kunskaper de redan har fått genom att använda Swift för frontend-utveckling kommer då att hjälpa dem väldigt om de vill göra backend utveckling.
Det finns många projekt som alla arbetar för att ta med Swift på nätet, bland annat Damp, Zewo och Caramel. Den mest avancerade och funktionella av dessa projekt är dock perfekt.
Perfekt omfattar många olika Swift-komponenter, som alla har sitt eget unika syfte.
När de kombineras tillåter dessa komponenter en fullt fungerande webbserver, vilket skulle fungera exakt samma som en traditionell server som drivs av PHP eller JavaScript skulle. Möjligheterna för webbservrar som kör Swift är väldigt spännande och projekt, som Perfect, banar vägen för dagen Swift kan användas för praktiskt taget alla delar av ett projekt.
Om du tittar på de arkiv som nämns tidigare i den här artikeln kommer du att märka att några av dem, i deras rotkatalog, har en fil som heter Package.swift. Projekt som innehåller den här filen gör det för att kunna användas med Swift Package Manager.
Swift Package Manager är ett beroendehanteringssystem som liknar CocoaPods och Carthage, vilket gör det möjligt för utvecklare att länka till tredje parts bibliotek och använda dem i egna projekt.
Den här pakethanteraren utvecklas så att varje plattform som använder Swift kan länka till och importera kod på exakt samma sätt, istället för att förlita sig på en plattformsspecifik lösning. Swift Package Manager finns fortfarande i det tidiga utvecklingsstadiet med många specifikationer som kan ändras. Men den syftar till att slutföras och släppas tillsammans med Swift 3.
Om du vill titta närmare på projektet och lära dig hur du använder det i din egen kod rekommenderar jag att du besöker projektets sida på Swift.org eller förvaret på GitHub.
Förutom de ovan nämnda open source Swift-projekten finns det också många andra som är mycket intressanta och unika.
Detta projekt syftar till att logga. Det gör det möjligt för utvecklare att skriva ut mycket mer detaljer till systemkonsolen utan att behöva skriva en hel massa extra kod. Med det här loggverktyget kan du automatiskt logga in en rad attribut, inklusive trådnamn, källkodsfilnamn, radnummer och nuvarande räckviddsmetod.
Målet med detta projekt är att skapa kommandoradsapplikationer med Swift. Dessa applikationer stöder användarinteraktion i form av både vanlig tangentbordsinmatning och multipelval.
Swiftline skulle vara särskilt användbart i en pedagogisk miljö eftersom eleverna kunde använda den för att utveckla en fullt fungerande och interaktiv applikation utan att behöva oroa sig för något slags användargränssnitt.
Detta förråd innehåller ett brett utbud av användbara algoritmer alla för användning i Swift-kod. Det här inkluderar saker, till exempel storlekar med fast storlek, hash-tabeller och shuffling. Förvaret innehåller en fullständig lista över alla redan stödda algoritmer.
Swift AI är ett artificiellt intelligensprojekt med inriktning mot maskininlärning. Exempelprojektet som ingår i förvaret visar hur AI-systemet kan lära sig att replikera en grundläggande sinusfunktion.
Observera att detta projekt bara stöds för iOS och OS X på grund av dess beroende av Apples accelerationsramar, vilket möjliggör förbättrad prestanda vid utförande av stora beräkningar.
Det finns så många nya och spännande open source Swift-projekt där ute, som över tiden kommer att utveckla och påverka karriärerna hos många utvecklare. Apple har inte bara tillåtit språket att bli bättre genom gemenskapsbidrag, utan också att bli användbar när man utvecklar för andra plattformar än Apples.
Jag uppmanar dig att kolla in några av de projekt som nämns i denna artikel och titta på vad de försöker uppnå. Om du vill titta på ännu fler projekt rekommenderar jag att du surfar GitHub för de mest populära och aktuella trenderna för Swift-repositories.
Lämna alltid dina kommentarer och feedback i kommentarerna nedan.