Hur Swift hjälper oss att hjälpa våra kunder

Viktor Rutberg
Avanza Tech

--

På Avanza använder vi Swift för att bygga vår iOS-app. Faktum är att vi inte har en enda kodrad Objective-C (om sanningen ska fram så hoppade jag på iOS-tåget på Avanza, och jag har inte skrivit en enda kodrad Objective-C). Vilket språk man ska välja när man börjar utveckla en iOS-app från scratch är omdebatterat, även om det idag troligtvis lutar åt Swift för de flesta. Vi valde Swift sent på hösten 2014, när senaste versionen av språket var 1.1 och det inte var äldre än ett halvår. Då var det inte alls självklart att välja Swift, långt ifrån.

Att välja Swift så tidigt innebar att man som utvecklare fick brottas med långa kompileringstider, tröga testkörningar, en kraschande kompilator och ett nästintill obefintligt IDE-stöd. Det har också inneburit att vi har behövt gå igenom flera migreringar till nya versioner av Swift, där övergången till Swift 3 har varit den hittills svåraste och mest tidskrävande (projektet kompilerade inte på ungefär en vecka).

Trots alla dessa utmaningar, som man nästan oundvikligen får brottas med när man väljer ett språk och en teknik som är i sin linda, så tycker jag att det var rätt val. Det var rätt val då, och det är definitivt rätt val nu. Det motiverar jag på tre sätt: stabilitet, rekrytering, och framtid. Låt oss beta av dem en efter en.

Stabilitet

Swift har ett fokus på säkerhet och stabilitet som gör det lättare för oss att bygga en stabil app åt våra kunder. Som användare förväntar man sig inte att en app kraschar — allra minst en bankapp. Swift underlättar och uppmuntrar till att skriva säker kod på en mängd olika sätt. Det här ämnet förtjänar egentligen ett eget blogginlägg, men för att nämna några saker: optionals och alla språkkonstruktioner kring det, den strikta typsäkerheten, fokus på immutability.

Den här siffran är förvisso avrundad, men ändå — 100 % kraschfri!

Alla dessa egenskaper gör det svårare för oss utvecklare att göra fel, fel som annars kanske hade lett till krascher, buggar eller andra hemskheter.

Rekrytering

Swift är, till skillnad från Objective-C som är det andra stora språket på iOS-plattformen, ett nytt och modernt språk. Det är ett språk som man, jämfört med Objective-C, känner igen sig i om man kommer från exempelvis Java eller JavaScript (Swift har ännu större likheter med Kotlin). Det är ett språk med många moderna funktioner som det dessutom sker aktiv utveckling i. Det är ett språk som man som utvecklare kan delta i utvecklingen av, tack vare att det är open source. Det jag försöker säga är att Swift är ett omtyckt språk bland utvecklare, vilket inte minst framgår i Stack Overflows Developer Survey:

Swift är det fjärde mest omtyckta språket enligt Stack Overflow Developer Survey 2017

Som utvecklare idag är man eftertraktad på arbetsmarknaden, och som växande företag är det svårt att hitta utvecklare. Det faktum att Swift är ett populärt och omtyckt språk som man vill jobba med underlättar för oss att rekrytera nya stjärnor till Avanza. Och om vi har fler stjärnor som levererar nytta till våra kunder, så, ja, kan vi leverera mer nytta till våra kunder.

Framtid

Det finns såklart områden där Swift behöver bli bättre. Pakethantering, bristen på reflection, förbättrat stöd för generics, tooling och IDE-stöd är exempel på områden där det fortfarande finns stort utrymme för förbättring. Med det sagt så ser framtiden för Swift ljus ut. Språket utvecklas i hög takt, och stora delar av språkets utveckling sker dessutom ute i det öppna med en stark community som aktivt bidrar med feedback, förslag och förbättringar.

Idag är Swift ett språk som i huvudsak används till att bygga iOS- och Macappar. Det kan dock redan användas till att bygga mjukvara som kan köras på Linux, helt oberoende av Apples plattformar. Även fast det finns ramverk och verktyg för att göra det skulle jag vilja påstå att Swift på serversidan fortfarande är i sin linda, men det är absolut ingen omöjlighet att Swift i framtiden (i konkurrens med Java, C#, mfl) används på serversidan i stor utsträckning. Om det är något vi på Avanza anammar får tiden utvisa.

Sammanfattningsvis så kan man väl säga att vi iOS-utvecklare på Avanza älskar Swift. Swift är ett språk som är roligt att jobba med, och som på massor av olika sätt hjälper oss att leverera värde till våra kunder varje dag — vilket är vårt existensberättigande.

--

--