Populära Open Source-projekt för Swift Development

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.

1. Foundation

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.

Mer funktionalitet

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.

portabilitet

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.

Protokoll Orienterad

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.

2. Övriga kärnbibliotek

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.

3. Webbservrar och webbplatser

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.

  • PerfectLib innehåller nätverks API och verktyg som behövs av både klienten och servern, inklusive förenklad HTTP-begäranhantering, JSON-analysering och annan datahantering.
  • Perfekt Server körs på serversidan och hanterar accepterande anslutningar, bearbetningsförfrågningar och återkommande svar. En server som använder Perfect Server kan använda antingen FastCGI eller fristående HTTP.
  • Olika kontakter som tillåter en server att förlänga sin funktionalitet och arbeta med andra API, inklusive mod_perfect för FastCGI-anslutning med Apache 2.4 och MySQL, PostgreSQL och MongoDB för att arbeta med dessa typer av databaser.

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.

4. Swift Package Manager

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.

5. Diverse verktyg

Förutom de ovan nämnda open source Swift-projekten finns det också många andra som är mycket intressanta och unika.

XCGlogger

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.

Swiftline

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.

Swift Algorithm Club

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

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.

Slutsats

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.