RxSwift och coroutines i Kotlin - ett valfritt ämne inom mobilutveckling från AGIMA och GeekBrains

RxSwift och coroutines i Kotlin - ett valfritt ämne inom mobilutveckling från AGIMA och GeekBrains

Kunskap är bra, bara bra. Men övning behövs också så att du kan använda mottagna data, överföra dem från statusen "passiv lagring" till statusen "aktiv användning". Oavsett hur bra den teoretiska utbildningen är, krävs fortfarande arbete "på fältet". Ovanstående gäller nästan alla studieområden, inklusive naturligtvis mjukvaruutveckling.

I år började GeekBrains, som en del av den mobila utvecklingsfakulteten vid onlineuniversitetet GeekUniversity, arbeta med den interaktiva byrån AGIMA, vars team är professionella utvecklare (de skapar komplexa högbelastningsprojekt, företagsportaler och mobilapplikationer, det är allt). AGIMA och GeekBrains har skapat ett valfritt ämne för en djupdykning i de praktiska frågorna kring mobilapplikationsutveckling.

Häromdagen pratade vi med Igor Vedeneev, en iOS-specialist, och Alexander Tizik, specialiserad på Android. Tack vare dem berikades det valfria mobilutvecklingsområdet med praktiskt specialkurs om RxSwift-ramverket и koroutiner i Kotlin. I den här artikeln berättar utvecklarna om vikten av varje område för programmerare.

Reaktiv programmering i iOS med RxSwift som exempel

RxSwift och coroutines i Kotlin - ett valfritt ämne inom mobilutveckling från AGIMA och GeekBrains
Valfri lärare Igor Vedeneev: "Med RxSwift kommer din ansökan att flyga"

Vilken information får eleverna under tillvalet?

Vi pratar inte bara om ramverkets möjligheter, utan visar också hur man använder det i den klassiska kombinationen MVVM + RxSwift. Flera praktiska exempel diskuteras också. För att konsolidera de erhållna uppgifterna skriver vi en ansökan som är så nära fältdriftsförhållandena som möjligt. Detta kommer att vara ett musiksökprogram som använder iTunes Search API. Där kommer vi att tillämpa alla bästa praxis, plus överväga ett enklare alternativ för att använda RxSwift i MVC-paradigmet.

RxSwift - varför behöver en iOS-programmerare detta ramverk, hur gör det livet lättare för en utvecklare?

RxSwift effektiviserar arbetet med händelseströmmar och kopplingar mellan objekt. Det enklaste och mest uppenbara exemplet är bindningar: till exempel kan du uppdatera gränssnittet genom att helt enkelt ställa in nya värden i en variabel i viewModel. Därmed blir gränssnittet datadrivet. Dessutom låter RxSwift dig beskriva systemet i en deklarativ stil, vilket gör att du kan organisera din kod och öka läsbarheten. Allt detta hjälper till att utveckla applikationer mer effektivt.

För en utvecklare är kunskap om ramverket också ett bra plus på ett CV, eftersom en förståelse för reaktiv programmering, och framförallt erfarenhet av RxSwift, värderas på marknaden.

Varför välja just detta ramverk framför andra?

RxSwift har den största communityn. Det vill säga att det finns en större chans att problemet som utvecklaren står inför redan har lösts av någon. Även ett stort antal bindningar ur kartongen. Dessutom är RxSwift en del av ReactiveX. Det betyder att det finns en analog för exempelvis Android (RxJava, RxKotlin) och kollegor i verkstaden kan prata samma språk med varandra, trots att vissa jobbar med iOS, andra med Android.

Ramverket uppdateras ständigt, mindre buggar korrigeras, stöd för funktioner från nya versioner av Swift läggs till och nya bindningar läggs till. Eftersom RxSwift är öppen källkod kan du följa alla ändringar. Dessutom är det möjligt att lägga till dem själv.

Var ska RxSwift användas?

  1. Bindningar. Som regel pratar vi om gränssnittet, möjligheten att ändra gränssnittet, som om vi reagerar på dataförändringar och inte uttryckligen säger till gränssnittet att det är dags att uppdatera.
  2. Samband mellan komponenter och verksamhet. Bara ett exempel. Vi måste få en lista med data från nätverket. I själva verket är detta inte en så enkel operation. För att göra detta måste du skicka en förfrågan, mappa svaret till en array av objekt, spara det i databasen och skicka det till användargränssnittet. Som regel är olika komponenter ansvariga för att utföra dessa operationer (vi älskar och följer principerna SOLID?). Med ett verktyg som RxSwift till hands blir det möjligt att beskriva VAD systemet kommer att göra, och HUR det kommer att göra det kommer att vara på andra ställen. Det är på grund av detta som bättre organisation av koden uppnås och läsbarheten ökar. Relativt sett kan koden delas upp i en innehållsförteckning och själva boken.

Coroutines i Kotlin

RxSwift och coroutines i Kotlin - ett valfritt ämne inom mobilutveckling från AGIMA och GeekBrains
Tillvalslärare Alexander Tizik: "Modern utveckling kräver moderna tekniska medel"

Vad kommer att läras ut på GeekBrains-fakulteten som en del av varumärkeskvartalet?

Teori, jämförelser med andra tillvägagångssätt, praktiska exempel i ren Kotlin och i Android-applikationsmodellen. När det gäller praktiken kommer studenterna att få se en applikation där allt är knutet till koroutiner. Faktum är att de flesta applikationer är helt asynkrona och parallella datorer. Men Kotlin-koroutiner tillåter att förvirrande, heterogen eller alltför komplex och prestandakrävande kod reduceras till en enda, lättförståelig stil, vilket får fördelar i korrekt exekvering och prestanda.

Vi kommer att lära oss att skriva idiomatisk kod i koroutiner som löser praktiska problem och är begriplig vid första anblick även utan djup kunskap om hur koroutiner fungerar (vilket inte kan sägas om bibliotek som RxJava). Vi kommer också att förstå hur man använder mer komplexa koncept, som t.ex. aktörsmodellen, för att lösa mer komplexa problem, som datalagret i MVI-konceptet.

Förresten, fler goda nyheter. Medan valfaget spelades in släpptes en uppdatering av Kotlin Coroutines-biblioteket, där klassen dök upp Flow - analog av typer Flowable и Observable från RxJava. Uppdateringen gör i huvudsak coroutines-funktionen komplett ur applikationsutvecklarens synvinkel. Det finns sant att det fortfarande finns utrymme för förbättringar: trots att det tack vare stödet av koroutiner i kotlin/native redan är möjligt att skriva multiplattformsapplikationer i Kotlin och inte lida av bristen på RxJava eller analoger i ren Kotlin, stöd för koroutiner i kotlin/native är ännu inte komplett. Det finns till exempel inget begrepp om skådespelare. I allmänhet har Kotlin-teamet planer på att stödja mer komplexa aktörer på alla plattformar.

Kotlin Coroutines - hur hjälper de en Kotlin-utvecklare?

Coroutines ger en fantastisk möjlighet att skriva kod som är läsbar, underhållbar och säker, asynkron och samtidig. Du kan också skapa adaptrar för andra asynkrona ramverk och metoder som redan kan användas i kodbasen.

Hur skiljer sig Coroutines från trådar?

Kotlin-teamet kallar coroutines för lättviktstrådar. Dessutom kan en coroutine returnera något slags värde, eftersom en coroutine i sin kärna är en suspenderad beräkning. Det beror inte direkt på systemtrådar, trådar kör bara koroutiner.

Vilka praktiska problem kan lösas med Coroutine, som inte kan eller är svåra att lösa med "ren" Kotlin?

Alla asynkrona, parallella, "konkurrenskraftiga" uppgifter löses väl med hjälp av coroutines - vare sig det är att bearbeta användarklick, gå online eller prenumerera på uppdateringar från en databas.

I ren Kotlin löses dessa problem på samma sätt som i Java – med hjälp av tusentals ramverk som vart och ett har sina för- och nackdelar, men inget av dem har stöd för språknivå.

Som avslutning är det värt att säga att båda valfria (och även huvudkurserna) uppdateras i enlighet med förändringar i yttre förhållanden. Om viktiga uppdateringar dyker upp i språk eller ramverk tar lärare hänsyn till detta och ändrar programmet. Allt detta gör att du kan hålla fingret på pulsen i utvecklingsprocessen, så att säga.

Källa: will.com

Lägg en kommentar