Vi listar de vanligaste ramverken för webbutveckling i Swift

Mikael har testat flera ramverk för att köra Swift på servern. Vilka fördelar finns och vilka är aktörerna?

När Apple utannonserade Swift 2014 under sin utvecklarkonferens visste ingen riktigt vart skutan var på väg. Vi lärde oss snabbt att det nya språket var betydligt mer flexibelt än sin föregångare, Objective-C. På mindre än tre år toppade Swift "TIOBE programming index" över det mest använda språket världen över och i en omröstning på den kända utvecklarhjälpsiten Stackoverflow röstades språket fram som det näst mest älskade av alla språk. Mycket har hänt på kort tid men största katalysatorn för språket var troligtvis att språkets källkod gjordes tillgänglig för alla. Nu kunde tredjepartutvecklare hjälpa till men viktigaste av allt vågade de satsa på Swift fullt ut.

IBM går in

Ironiskt nog skulle en nyckelspelare bli IBM, samma företag som Apple hånade i sin reklam 1984, med just temat 1984 - en storebror som ser dig. IBM berättade att de hade en dedikerad avdelning som enbart arbetade med Swift. IBMs fokus var att göra Swift tillgänglig på servern. I Samband med att Apple öppnade upp källkoden såg Apple till att Swift även fungerade på Linux. Med Linux som roburst serverplattoform kunde vi nu börja exekvera kod i molnet.

Varför Swift på servern?

Swift är ett kompilerat språk tillskillnad från interpreterade språk så som Java, eller .C# (.Net). Swift ligger närmare C och C++ i prestanda än .Net eller Java. Prestanda är inte bara hur snabbt något exekveras (CPU-tid) utan även hur mycket minnes som används under exekvering. Molntjänster växer och du betalar ofta per CPU eller hur mycket minne som används, och här finns som du kanske förstår pengar att spara - har du en plattform som kräver väldigt lite minne och har snabb exekvering står du inför en så kallad Win-Win situation. En server skriven i Swift tar i jämförelse 15 gånger så lite minne som en skriven i Node.js, genomsnittsresponstiden är även den åtta gånger snabbare än Node.js. 

De vanliga webblösningarna för Swift

Kitura

Kitura är både en webbserver och ett ramverk där du skriver din kod i Swift. Denna lösning presenterades på Apples WWDC 2016 och är här för att stanna. IBM satsar stenhårt på Kitura och erbjuder även olika molntjänster (Bluemix) för den som vill. Källkoden är öppen och fri att användas, molntjänsterna kostar troligtvis en viss summa pengar. En rätt häftig sak är att du köra en webbserver på din iPhone med Kitura.  

Källahttp://www.kitura.io/

Vapor

Nodes, ett bolag inte helt olikt Meridium, har utvecklat en egen plattform för utveckla Swift på webben. Deras lösning känns tyvärr lite klumpig i dagsläget och när jag utvärderade den hade jag lite problem med xCode eftersom genereringen av projekten blev lite väl stora. Senaste xCode löser många av dessa problem och Vapor och Nodes är definitivt en aktör att räkna med i framtiden. Nodes utvecklade IronMan-siten för Köpenhamn i Vapor och Swift. 

Källahttps://vapor.codes 

Perfect

Organisationen PerfectlySoft ligger bakom Perfect. Detta projekt känns som det kommer mer från gräsrötterna än från en organisation, på gott och ont. Det finns bra dokumentation och hjälpgränssnitt för att snabbt komma igång med din server.

Källahttp://perfect.org

Zewo

Istället för att bygga in allt i ramverket har Zewo valt att bygga en mer modulär design. De utlovas fantastiskt prestanda och litet minnesavtryck. Har tyvärr inte testat detta ramverk.

Källahttps://github.com/Zewo/Zewo

Curassow

Detta är i stortsett en enmansshow. Men låt dig inte luras för det. Det är oerhört enkelt att komma i gång och få upp något som är testbart. Perfekt för den som vill kommunicera med en endpoint under utecklingen innan produktionsmiljöerna är på plats. 

Källahttps://github.com/kylef/Curassow

Swift är här för att stanna och det blir allt vanligare att vi kommer få se Swift på servrar. Samtliga ramverk känns väldigt lika i sitt utförande, hur man sätter upp routing och tar hand om de olika CRUD-metoderna (create, read, update, delete). Att sätta upp ett projekt med databaskoppling och returnera JSON samt att installera det på en server i molnet gör man som ensam utvecklare på en timme eller två.

Nedan ser du ett exempel på Hello, world skrivet för Kitura i Swift. 

Molntjänster som erbjuder Swift:

Samtliga tjänster som tillåter att du kör en Docker Container eller en linux-distro kan köra Swift-server. Några säkra tips på tjänster som klarar köra Swift på servern ser du nedan. 

Bluemix

Heroku

Google Cloud

Ett bra sätt att fördjupa sig ytterligare i ämnet är att följa hashtaggen #serversideswift på Twitter:

I nästa bloggpost tänkte jag guida er hur man sätter upp en webblösning i Kitura för enkel prototyping.