RxSwift ja korutiinid Kotlinis – mobiiliarenduse valikaine firmadelt AGIMA ja GeekBrains

RxSwift ja korutiinid Kotlinis – mobiiliarenduse valikaine firmadelt AGIMA ja GeekBrains

Teadmised on head, lihtsalt suured. Kuid harjutamist on vaja ka selleks, et saaksite saadud andmeid kasutada, kandes need passiivse salvestuse olekust olekusse "aktiivne kasutamine". Ükskõik kui hea teoreetiline väljaõpe ka poleks, töö “põllul” on ikkagi vajalik. Eelnev kehtib peaaegu iga õppesuuna kohta, sealhulgas loomulikult tarkvaraarenduse kohta.

Sel aastal alustas GeekBrains veebiülikooli GeekUniversity mobiiliarenduse teaduskonna osana koostööd interaktiivse agentuuriga AGIMA, mille meeskond on professionaalsed arendajad (need loovad keerulisi suure koormusega projekte, ettevõtteportaale ja mobiilirakendusi, see on kõik). AGIMA ja GeekBrains on loonud valikaine mobiilirakenduste arendamise praktilistesse probleemidesse süvenemiseks.

Teisel päeval rääkisime iOS-i spetsialisti Igor Vedenejevi ja Androidile spetsialiseerunud Aleksander Tizikiga. Tänu neile rikastus mobiiliarenduse valikaine praktilisega RxSwifti raamistiku erikursus и korutiinid Kotlinis. Selles artiklis räägivad arendajad iga valdkonna tähtsusest programmeerijate jaoks.

Reaktiivne programmeerimine iOS-is, kasutades näitena RxSwifti

RxSwift ja korutiinid Kotlinis – mobiiliarenduse valikaine firmadelt AGIMA ja GeekBrains
Valikõpetaja Igor Vedenejev: "RxSwiftiga läheb teie taotlus lendu"

Millist teavet saavad õpilased valikainete ajal?

Me ei räägi mitte ainult raamistiku võimalustest, vaid näitame ka selle kasutamist klassikalises MVVM + RxSwift kombinatsioonis. Arutletakse ka mitmete praktiliste näidete üle. Saadud andmete koondamiseks kirjutame põllutöötingimustele võimalikult lähedase rakenduse. See on muusikaotsingu rakendus, mis kasutab iTunes'i otsingu API. Seal rakendame kõiki parimaid tavasid ja kaalume lihtsamat võimalust RxSwifti kasutamiseks MVC paradigmas.

RxSwift – miks iOS-i programmeerijale seda raamistikku vaja on, kuidas see arendaja elu lihtsamaks teeb?

RxSwift voolujooned töötavad sündmuste voogude ja objektide vaheliste ühendustega. Lihtsaim ja ilmsem näide on sidumised: näiteks saate liidest värskendada, määrates lihtsalt vaatemudelis muutujas uued väärtused. Seega muutub liides andmepõhiseks. Lisaks võimaldab RxSwift kirjeldada süsteemi deklaratiivses stiilis, mis võimaldab koodi korrastada ja loetavust suurendada. Kõik see aitab rakendusi tõhusamalt arendada.

Arendaja jaoks on raamistiku tundmine hea pluss ka CV-s, kuna reaktiivprogrammeerimise mõistmine ja eriti RxSwiftiga seotud kogemus on turul hinnatud.

Miks valida see konkreetne raamistik teiste asemel?

RxSwiftil on suurim kogukond. See tähendab, et on suurem tõenäosus, et arendaja ees seisva probleemi on keegi juba lahendanud. Samuti suur hulk karbist välja võetud köiteid. Lisaks on RxSwift osa ReactiveX-ist. See tähendab, et näiteks Androidile on olemas analoog (RxJava, RxKotlin) ning töökojas saavad kolleegid omavahel sama keelt rääkida, hoolimata sellest, et ühed töötavad iOS-iga, teised Androidiga.

Raamistiku uuendatakse pidevalt, parandatakse väiksemaid vigu, lisatakse Swifti uute versioonide funktsioonide tugi ja lisatakse uusi sidemeid. Kuna RxSwift on avatud lähtekoodiga, saate kõiki muudatusi jälgida. Lisaks on võimalik neid ise lisada.

Kus tuleks RxSwiftit kasutada?

  1. Köited. Reeglina räägime kasutajaliidest, kasutajaliidese muutmise võimalusest, justkui reageerides andmete muutustele, mitte aga sõnaselgelt ütlemisest liidesele, et on aeg värskendada.
  2. Komponentide ja operatsioonide vaheline seos. Lihtsalt näide. Peame saama võrgust andmete loendi. Tegelikult pole see nii lihtne toiming. Selleks tuleb saata päring, vastendada vastus objektide massiivi, salvestada andmebaasi ja saata kasutajaliidesesse. Reeglina vastutavad nende toimingute tegemise eest erinevad komponendid (me armastame ja järgime põhimõtteid SOLID?). Kui teil on käepärast selline tööriist nagu RxSwift, on võimalik kirjeldada, MIDA süsteem teeb, ja KUIDAS see seda teeb mujal. Tänu sellele saavutatakse koodi parem organiseeritus ja suureneb loetavus. Suhteliselt võib koodi jagada sisukorraks ja raamatuks endaks.

Korutiinid Kotlinis

RxSwift ja korutiinid Kotlinis – mobiiliarenduse valikaine firmadelt AGIMA ja GeekBrains
Valikkursuse õpetaja Alexander Tizik: “Kaasaegne areng nõuab kaasaegseid tehnilisi vahendeid”

Mida õpetatakse GeekBrainsi teaduskonnas kaubamärgikvartali raames?

Teooria, võrdlused teiste lähenemistega, praktilised näited puhtas Kotlinis ja Androidi rakendusmudelis. Mis puutub praktikasse, siis näidatakse õpilastele rakendust, milles kõik on seotud korutiinidega. Fakt on see, et enamik rakendusi on täiesti asünkroonsed ja paralleelsed. Kuid Kotlini korutiinid võimaldavad segadust tekitava, heterogeense või liiga keerulise ja jõudlust nõudva koodi taandada üheks, kergesti mõistetavaks stiiliks, mis toob kasu korrektsest täitmisest ja jõudlusest.

Õpime kirjutama korutiinidesse idiomaatilist koodi, mis lahendab praktilisi probleeme ja on esmapilgul arusaadav ka ilma sügavate teadmisteta korutiinide toimimisest (mida ei saa öelda RxJava-suguste teekide kohta). Samuti mõistame, kuidas kasutada keerukamaid kontseptsioone, näiteks näitlejamudelit, et lahendada keerukamaid probleeme, näiteks andmeladu MVI kontseptsioonis.

Muide, veel häid uudiseid. Valikaine salvestamise ajal ilmus Kotlin Coroutinesi teegi värskendus, milles tund ilmus Flow - tüüpide analoog Flowable и Observable RxJavast. Värskendus muudab rakenduste arendaja vaatenurgast korutiinifunktsiooni sisuliselt täielikuks. Tõsi, arenguruumi on veel: vaatamata sellele, et tänu korutiinide toele kotlinis/native’is on Kotlinis juba võimalik mitmeplatvormilisi rakendusi kirjutada ja mitte kannatada RxJava või analoogide puudumise all puhtas Kotlinis, kotlin/native'i korutiinide tugi pole veel lõppenud. Näiteks puudub näitlejate kontseptsioon. Üldiselt on Kotlini meeskonnal plaan toetada keerukamaid tegijaid kõigil platvormidel.

Kotlini korutiinid – kuidas need Kotlini arendajat aitavad?

Korutiinid annavad suurepärase võimaluse kirjutada loetavat, hooldatavat ja turvalist, asünkroonset ja samaaegset koodi. Samuti saate luua adaptereid muude asünkroonsete raamistike ja lähenemisviiside jaoks, mida võidakse koodibaasis juba kasutada.

Mille poolest korutiinid lõimedest erinevad?

Kotlini meeskond nimetab korotiini kergeteks niitideks. Lisaks võib korutiin anda teatud väärtuse, sest oma olemuselt on korutiin peatatud arvutus. See ei sõltu otseselt süsteemilõimedest, lõimed täidavad ainult korutiine.

Milliseid praktilisi probleeme saab Coroutine'iga lahendada, mida "puhta" Kotliniga ei saa või on raske lahendada?

Kõik asünkroonsed, paralleelsed, “konkureerivad” ülesanded lahendatakse hästi korutiinide abil – olgu selleks siis kasutajate klikkide töötlemine, võrgus liikumine või andmebaasist värskenduste tellimine.

Puhtal Kotlinis lahendatakse need probleemid samamoodi nagu Javas - tuhandete raamistike abil, millest igaühel on omad plussid ja miinused, kuid ühelgi neist pole keeletaseme tuge.

Kokkuvõtteks tasub öelda, et nii valikaineid (ja ka põhikursusi) uuendatakse vastavalt välistingimuste muutumisele. Kui keeltes või raamistikes ilmuvad olulised uuendused, võtavad õpetajad seda arvesse ja muudavad programmi. Kõik see võimaldab arendusprotsessil nii-öelda kätt pulsil hoida.

Allikas: www.habr.com

Lisa kommentaar