RxSwift en coroutines in Kotlin - 'n keusevak in mobiele ontwikkeling van AGIMA en GeekBrains

RxSwift en coroutines in Kotlin - 'n keusevak in mobiele ontwikkeling van AGIMA en GeekBrains

Kennis is goed, net wonderlik. Maar oefening is ook nodig sodat jy die ontvangde data kan gebruik en dit van die "passiewe berging"-status na die "aktiewe gebruik"-status kan oordra. Maak nie saak hoe goed die teoretiese opleiding is nie, werk "in die veld" word steeds vereis. Bogenoemde is van toepassing op byna enige studierigting, insluitend, natuurlik, sagteware-ontwikkeling.

Vanjaar het GeekBrains, as deel van die mobiele ontwikkelingsfakulteit van die aanlyn universiteit GeekUniversity, begin werk met die interaktiewe agentskap AGIMA, wie se span professionele ontwikkelaars is (hulle skep komplekse hoëladingsprojekte, korporatiewe portale en mobiele toepassings, dis al). AGIMA en GeekBrains het 'n keusevak geskep vir 'n diep duik in die praktiese kwessies van mobiele toepassingsontwikkeling.

Ons het nou die dag met Igor Vedeneev, 'n iOS-spesialis, en Alexander Tizik, wat in Android spesialiseer, gepraat. Danksy hulle is die keusevak oor mobiele ontwikkeling met prakties verryk spesiale kursus oor die RxSwift-raamwerk и koroutines in Kotlin. In hierdie artikel praat die ontwikkelaars oor die belangrikheid van elke area vir programmeerders.

Reaktiewe programmering in iOS met RxSwift as voorbeeld

RxSwift en coroutines in Kotlin - 'n keusevak in mobiele ontwikkeling van AGIMA en GeekBrains
Elektiewe onderwyser Igor Vedeneev: "Met RxSwift sal jou aansoek vlieg"

Watter inligting ontvang studente tydens die keusevak?

Ons praat nie net oor die vermoëns van die raamwerk nie, maar wys ook hoe om dit in die klassieke MVVM + RxSwift-kombinasie te gebruik. Verskeie praktiese voorbeelde word ook bespreek. Om die data wat verkry is, te konsolideer, skryf ons 'n toepassing wat so na as moontlik aan veldbedryfstoestande is. Dit sal 'n musieksoektoepassing wees wat gebruik word iTunes Soek API. Daar sal ons al die beste praktyke toepas, en 'n eenvoudiger opsie oorweeg om RxSwift in die MVC-paradigma te gebruik.

RxSwift - hoekom het 'n iOS-programmeerder hierdie raamwerk nodig, hoe maak dit die lewe makliker vir 'n ontwikkelaar?

RxSwift stroomlyn werk met gebeurtenisstrome en verbindings tussen voorwerpe. Die eenvoudigste en mees voor die hand liggende voorbeeld is bindings: u kan byvoorbeeld die koppelvlak bywerk deur eenvoudig nuwe waardes in 'n veranderlike in die viewModel in te stel. Die koppelvlak word dus data-gedrewe. Daarbenewens laat RxSwift jou toe om die stelsel in 'n verklarende styl te beskryf, wat jou toelaat om jou kode te organiseer en leesbaarheid te verhoog. Dit alles help om toepassings doeltreffender te ontwikkel.

Vir 'n ontwikkelaar is kennis van die raamwerk ook 'n goeie pluspunt op 'n CV, aangesien 'n begrip van reaktiewe programmering, en veral ondervinding met RxSwift, in die mark gewaardeer word.

Waarom hierdie spesifieke raamwerk bo ander kies?

RxSwift het die grootste gemeenskap. Dit wil sê, daar is 'n groter kans dat die probleem waarmee die ontwikkelaar te kampe het, reeds deur iemand opgelos is. Ook 'n groot aantal bindings uit die boks. Boonop is RxSwift deel van ReactiveX. Dit beteken daar is byvoorbeeld 'n analoog vir Android (RxJava, RxKotlin), en kollegas in die werkswinkel kan dieselfde taal met mekaar praat, ten spyte van die feit dat sommige met iOS werk, ander met Android.

Die raamwerk word voortdurend opgedateer, geringe foute word reggestel, ondersteuning vir kenmerke van nuwe weergawes van Swift word bygevoeg, en nuwe bindings word bygevoeg. Aangesien RxSwift oopbron is, kan jy al die veranderinge volg. Boonop is dit moontlik om dit self by te voeg.

Waar moet RxSwift gebruik word?

  1. Bindings. As 'n reël praat ons van die UI, die vermoë om die UI te verander, asof dit op dataveranderinge reageer, en nie eksplisiet vir die koppelvlak vertel dat dit tyd is om op te dateer nie.
  2. Verwantskap tussen komponente en bedrywighede. Net 'n voorbeeld. Ons moet 'n lys van data van die netwerk af kry. Trouens, dit is nie so 'n eenvoudige operasie nie. Om dit te doen, moet jy 'n versoek stuur, die antwoord in 'n verskeidenheid voorwerpe karteer, dit op die databasis stoor en dit na die UI stuur. As 'n reël is verskillende komponente verantwoordelik vir die uitvoering van hierdie operasies (ons is lief vir en volg die beginsels VASTE?). Met 'n instrument soos RxSwift byderhand, word dit moontlik om te beskryf WAT die stelsel sal doen, en HOE dit sal doen, sal dit op ander plekke wees. Dit is as gevolg hiervan dat 'n beter organisasie van die kode bereik word en leesbaarheid verhoog. Relatief gesproke kan die kode in 'n inhoudsopgawe en die boek self verdeel word.

Coroutines in Kotlin

RxSwift en coroutines in Kotlin - 'n keusevak in mobiele ontwikkeling van AGIMA en GeekBrains
Keusekursusonderwyser Alexander Tizik: "Moderne ontwikkeling vereis moderne tegniese middele"

Wat sal by die GeekBrains-fakulteit geleer word as deel van die handelsmerkkwartier?

Teorie, vergelykings met ander benaderings, praktiese voorbeelde in suiwer Kotlin en in die Android-toepassingsmodel. Wat oefening betref, sal studente 'n toepassing wys waarin alles aan koroutines gekoppel is. Die feit is dat die meeste toepassings heeltemal asinchrone en parallelle rekenaars is. Maar Kotlin-koroutines laat toe dat verwarrende, heterogene of te komplekse en prestasie-eisende kode gereduseer word tot 'n enkele, maklik verstaanbare styl, wat voordele in korrekte uitvoering en prestasie verkry.

Ons sal leer om idiomatiese kode in koroutines te skryf wat praktiese probleme oplos en met die eerste oogopslag verstaanbaar is selfs sonder diepgaande kennis van hoe koroutines werk (wat nie oor biblioteke soos RxJava gesê kan word nie). Ons sal ook verstaan ​​hoe om meer komplekse konsepte, soos die akteursmodel, te gebruik om meer komplekse probleme op te los, soos die datapakhuis in die MVI-konsep.

Terloops, nog goeie nuus. Terwyl die keusevak opgeneem is, is 'n opdatering van die Kotlin Coroutines-biblioteek vrygestel, waarin die klas verskyn het Flow - analoog van tipes Flowable и Observable van RxJava. Die opdatering maak in wese coroutines-funksie volledig vanuit die oogpunt van die toepassingsontwikkelaar. Dit is waar, daar is nog ruimte vir verbetering: ten spyte van die feit dat danksy die ondersteuning van koroutines in kotlin/native, dit reeds moontlik is om multi-platform-toepassings in Kotlin te skryf en nie te ly aan die gebrek aan RxJava of analoë in suiwer Kotlin nie, ondersteuning vir koroutines in kotlin/native is nog nie voltooi nie. Daar is byvoorbeeld geen konsep van akteurs nie. Oor die algemeen het die Kotlin-span planne om meer komplekse akteurs op alle platforms te ondersteun.

Kotlin Coroutines - hoe help hulle 'n Kotlin-ontwikkelaar?

Coroutines bied 'n wonderlike geleentheid om kode te skryf wat leesbaar, onderhoubaar en veilig, asinchronies en gelyktydig is. U kan ook adapters vir ander asynchrone raamwerke en benaderings skep wat reeds in die kodebasis gebruik kan word.

Hoe verskil Coroutines van drade?

Die Kotlin-span noem coroutines ligte drade. Boonop kan 'n koroutine 'n mate van waarde teruggee, want in sy kern is 'n koroutine 'n opgeskorte berekening. Dit hang nie direk van stelseldrade af nie; drade voer slegs koroutines uit.

Watter praktiese probleme kan opgelos word met Coroutine, wat nie of moeilik is om op te los met behulp van "suiwer" Kotlin?

Enige asynchrone, parallelle, "mededingende" take word goed opgelos met behulp van koroutines - of dit nou gebruikersklikke verwerk, aanlyn gaan of inteken op opdaterings vanaf 'n databasis.

In suiwer Kotlin word hierdie probleme op dieselfde manier as in Java opgelos - met behulp van duisende raamwerke, wat elkeen sy eie voor- en nadele het, maar nie een van hulle het taalvlakondersteuning nie.

As gevolgtrekking is dit die moeite werd om te sê dat beide keusevakke (en die hoofkursusse ook) bygewerk word in ooreenstemming met veranderinge in eksterne toestande. As belangrike opdaterings in tale of raamwerke verskyn, neem onderwysers dit in ag en wysig die program. Dit alles laat jou toe om so te sê jou vinger op die pols van die ontwikkelingsproses te hou.

Bron: will.com

Voeg 'n opmerking