RxSwift og Coroutines í Kotlin - Mobile Development Valfag frá AGIMA og GeekBrains

RxSwift og Coroutines í Kotlin - Mobile Development Valfag frá AGIMA og GeekBrains

Þekking er góð, bara frábær. En það þarf líka æfingu til að geta notað móttekin gögn, flytja þau úr stöðunni „óvirk geymsla“ í stöðu „virk notkun“. Sama hversu góð fræðileg þjálfun er, hún krefst samt vinnu „á sviði“. Þetta á við um nánast hvaða svið menntunar sem er, þar á meðal auðvitað hugbúnaðarþróun.

Á þessu ári byrjaði GeekBrains, innan ramma deildar netháskólans GeekUniversity um farsímaþróun, að vinna með gagnvirku stofnuninni AGIMA, en teymi hennar er faglegur þróunaraðili (þeir gera flókin verkefni með miklum álagi, fyrirtækjagáttir og farsímaforrit, það er allt og sumt ). AGIMA og GeekBrains hafa búið til valgrein til að kafa djúpt í hagkvæmni við þróun farsímaforrita.

Um daginn ræddum við við Igor Vedeneev, iOS sérfræðing, og Alexander Tizik, Android sérfræðing. Þökk sé þeim var valnámið í farsímaþróun auðgað með verklegu sérstakt námskeið um RxSwift ramma и Coroutines í Kotlin. Í þessari grein tala verktaki um mikilvægi hverrar áttar fyrir forritara.

Reactive forritun í iOS með RxSwift sem dæmi

RxSwift og Coroutines í Kotlin - Mobile Development Valfag frá AGIMA og GeekBrains
Valkennari Igor Vedeneev: „Með RxSwift mun umsókn þín fljúga“

Hvaða upplýsingar fá nemendur í valgreininni?

Við tölum ekki aðeins um getu rammans, heldur sýnum einnig hvernig á að nota það í klassíska MVVM + RxSwift búntinu. Nokkur hagnýt dæmi eru einnig tekin fyrir. Til að sameina gögnin sem aflað er skrifum við umsókn sem er eins nálægt vinnuskilyrðum og mögulegt er. Það verður tónlistarleitarforrit með iTunes leit API. Þar munum við beita öllum bestu starfsvenjum, auk þess að íhuga einfaldari notkun RxSwift í MVC hugmyndafræðinni.

RxSwift - hvers vegna þarf iOS forritara fyrir þessa ramma, hvernig auðveldar það þróunaraðila lífið?

RxSwift hagræðir vinnu við atburðarstrauma og tengsl milli hluta. Einfaldasta og augljósasta dæmið eru bindingar: til dæmis er hægt að uppfæra viðmótið með því einfaldlega að setja nýtt gildi á breytu í viewModel. Þannig verður viðmótið gagnadrifið. Að auki gerir RxSwift þér kleift að lýsa kerfinu í yfirlýsingarstíl, sem gerir þér kleift að hagræða kóðann og bæta læsileikann. Allt þetta hjálpar til við að þróa forrit á skilvirkari hátt.

Fyrir þróunaraðila er þekking á rammanum líka góður plús á ferilskrá, þar sem skilningur á viðbragðsforritun, og sérstaklega reynsla af RxSwift, er metin á markaðnum.

Af hverju að velja þennan tiltekna ramma en ekki aðra?

RxSwift er með stærsta samfélagið. Það er, það er líklegra að vandamálið sem verktaki stendur frammi fyrir hafi þegar verið leyst af einhverjum. Einnig mikið magn af bindingum úr kassanum. Þar að auki er RxSwift hluti af ReactiveX. Þetta þýðir að það er til hliðstæða fyrir Android, til dæmis (RxJava, RxKotlin), og samstarfsmenn í búðinni geta talað sama tungumál sín á milli, þrátt fyrir að sumir vinni með iOS, aðrir með Android.

Ramminn er stöðugt uppfærður, minniháttar villur eru lagaðar, stuðningur við eiginleika frá nýjum útgáfum af Swift er bætt við, nýjum bindingum bætt við. Þar sem RxSwift er opinn uppspretta geturðu fylgst með öllum breytingunum. Þar að auki er hægt að bæta þeim við sjálfur.

Hvar ættir þú að nota RxSwift?

  1. Bindingum. Að jafnaði erum við að tala um notendaviðmótið, getu til að breyta notendaviðmóti, eins og við bregðumst við gagnabreytingum, en ekki beinlínis að segja viðmótinu að það sé kominn tími til að uppfæra.
  2. Samskipti íhluta og aðgerða. Bara dæmi. Við þurfum að fá lista yfir gögn frá netinu. Reyndar er þetta ekki svo einföld aðgerð. Til að gera þetta þarftu að senda beiðni, kortleggja svarið í fjölda hluta, vista það í gagnagrunninum og gefa það til HÍ. Að jafnaði eru mismunandi þættir ábyrgir fyrir því að framkvæma þessar aðgerðir (við elskum og fylgjum meginreglunum SOLID?). Með því að hafa tæki eins og RxSwift við höndina, verður hægt að lýsa HVAÐ kerfið mun gera og HVERNIG það mun gera það verður staðsett á öðrum stöðum. Það er vegna þessa sem betra skipulag á kóðanum næst og læsileiki eykst. Tiltölulega séð má skipta kóðanum í efnisyfirlit og bókina sjálfa.

Coroutines í Kotlin

RxSwift og Coroutines í Kotlin - Mobile Development Valfag frá AGIMA og GeekBrains
Valkennari Alexander Tizik: „Nútímaleg þróun krefst nútíma tæknilegra leiða“

Hvað verður kennt við GeekBrains deildina sem hluti af vörumerkjafjórðungnum?

Kenning, samanburður við aðrar aðferðir, hagnýt dæmi í hreinu Kotlin og í Android forritalíkani. Hvað æfinguna varðar, þá verður nemendum sýnt forrit þar sem allt er bundið við coroutines. Staðreyndin er sú að flest forrit eru samfelld ósamstillt og samhliða tölvuvinnslu. En Kotlin coroutines leyfa ruglingslegum, ólíkum eða of flóknum og frammistöðu-krefjandi kóða að vera minnkaður í einn, auðvelt að skilja stíl, öðlast rétta framkvæmd og frammistöðu.

Við munum læra hvernig á að skrifa ídiomatic coroutine kóða sem leysir hagnýt vandamál og er skiljanlegur í fljótu bragði jafnvel án djúprar þekkingar á því hvernig coroutines virka (sem ekki er hægt að segja um bókasöfn eins og RxJava). Við munum einnig skilja hvernig á að nota flóknari hugtök, eins og leikaralíkanið, til að leysa flóknari vandamál, svo sem gagnageymslu í MVI hugtakinu.

Við the vegur, fleiri góðar fréttir. Á meðan verið var að skrifa valgreinina var gefin út uppfærsla á Kotlin Coroutines bókasafninu, þar sem bekkurinn birtist Flow - hliðstæða tegunda Flowable и Observable frá RxJava. Uppfærslan gerir í raun Coroutines eiginleikann fullkominn frá sjónarhóli forritara. Að vísu er enn pláss fyrir þróun: þrátt fyrir þá staðreynd að þökk sé stuðningi coroutines í kotlin/native er nú þegar hægt að skrifa fjölvettvangsforrit í Kotlin og þjást ekki af skorti á RxJava eða hliðstæðum í hreinu Kotlin, stuðningur við Coroutines í kotlin/native er ekki enn lokið. Til dæmis er ekkert hugtak um leikara. Almennt séð ætlar Kotlin-teymið að styðja flóknari leikara á öllum kerfum.

Kotlin Coroutines - hvernig hjálpa þeir Kotlin verktaki?

Coroutines veita frábært tækifæri til að skrifa læsilegan, viðhaldanlegan og öruggan, ósamstilltan og samhliða kóða. Þú getur líka búið til millistykki fyrir aðra ósamstillta ramma og aðferðir sem gætu þegar verið notaðar í kóðagrunninum.

Hvernig eru Coroutines ólíkar þráðum?

Kotlin teymið vísar til coroutines sem léttra þráða. Auk þess getur kórótína skilað einhverju gildi, vegna þess að í kjarna hennar er kórótína frestað útreikningur. Það er ekki beint háð kerfisþráðum, þræðir framkvæma aðeins coroutines.

Hvaða hagnýtu verkefni er hægt að leysa með Corutin, hver getur ekki eða er erfitt að leysa með því að nota „hreint“ Kotlin?

Öll ósamstillt, samhliða, "samkeppnishæf" verkefni eru vel leyst með hjálp coroutines - hvort sem það er að vinna úr smellum frá notanda, fara á netið eða gerast áskrifandi að uppfærslum úr gagnagrunninum.

Í hreinu Kotlin eru þessi verkefni leyst á sama hátt og í Java - með því að nota þúsundir ramma, sem hver um sig hefur sína kosti og galla, en ekkert þeirra hefur stuðning á tungumálastigi.

Sem niðurstaða má nefna að bæði valgreinar (og kjarnaáfangar líka) eru uppfærðar í samræmi við breytingar á ytri aðstæðum. Ef það eru mikilvægar uppfærslur á tungumálum eða ramma, taka kennarar tillit til þess og breyta forritinu. Allt þetta gerir þér kleift að fylgjast með þróunarferlinu, ef svo má segja.

Heimild: www.habr.com

Bæta við athugasemd