RxSwift ja korutiinit Kotlinissa - valinnainen mobiilikehitys AGIMAlta ja GeekBrainsilta

RxSwift ja korutiinit Kotlinissa - valinnainen mobiilikehitys AGIMAlta ja GeekBrainsilta

Tieto on hyvää, vain hienoa. Mutta harjoittelua tarvitaan myös, jotta voit käyttää vastaanotettuja tietoja siirtämällä ne passiivisen tallennustilan tilasta aktiiviseen käyttöön. Riippumatta siitä, kuinka hyvä teoreettinen koulutus on, työtä "kentällä" tarvitaan silti. Yllä oleva koskee melkein mitä tahansa opiskelualaa, mukaan lukien tietysti ohjelmistokehitys.

Tänä vuonna GeekBrains osana verkkoyliopiston GeekUniversityn mobiilikehitystiedekuntaa aloitti työskentelyn interaktiivisen toimiston AGIMA:n kanssa, jonka tiimi on ammattikehittäjiä (he luovat monimutkaisia ​​kuormittavia projekteja, yritysportaaleja ja mobiilisovelluksia, siinä kaikki). AGIMA ja GeekBrains ovat luoneet valinnaisen sukeltaakseen syvälle mobiilisovelluskehityksen käytännön kysymyksiin.

Keskustelimme toissapäivänä iOS-asiantuntijan Igor Vedenejevin ja Androidiin erikoistuneen Alexander Tizikin kanssa. Heidän ansiostaan ​​mobiilikehityksen valinnainen ainesosa rikastui käytännönläheisillä erikoiskurssi RxSwift-kehyksestä и Korutiinit Kotlinissa. Tässä artikkelissa kehittäjät puhuvat kunkin alueen tärkeydestä ohjelmoijille.

Reaktiivinen ohjelmointi iOS:ssä käyttämällä esimerkkinä RxSwiftiä

RxSwift ja korutiinit Kotlinissa - valinnainen mobiilikehitys AGIMAlta ja GeekBrainsilta
Valinnainen opettaja Igor Vedeneev: "RxSwiftin avulla hakemuksesi lentää"

Mitä tietoa opiskelijat saavat valinnaisten opintojen aikana?

Puhumme paitsi kehyksen ominaisuuksista, myös näytämme, kuinka sitä käytetään klassisessa MVVM + RxSwift -yhdistelmässä. Myös useita käytännön esimerkkejä käsitellään. Saatujen tietojen yhdistämiseksi kirjoitamme sovelluksen, joka on mahdollisimman lähellä kentän käyttöolosuhteita. Tämä on musiikin hakusovellus, joka käyttää iTunes Search API. Sovellamme siellä kaikkia parhaita käytäntöjä ja harkitsemme yksinkertaisempaa vaihtoehtoa RxSwiftin käyttämiseksi MVC-paradigmassa.

RxSwift – miksi iOS-ohjelmoija tarvitsee tätä kehystä, miten se helpottaa kehittäjän elämää?

RxSwift virtaviivaiset toimivat tapahtumavirtojen ja objektien välisten yhteyksien kanssa. Yksinkertaisin ja ilmeisin esimerkki ovat sidokset: voit esimerkiksi päivittää käyttöliittymän asettamalla uudet arvot muuttujaan viewModelissa. Näin käyttöliittymästä tulee dataohjattu. Lisäksi RxSwiftin avulla voit kuvata järjestelmää deklaratiivisella tyylillä, jonka avulla voit järjestää koodisi ja parantaa luettavuutta. Kaikki tämä auttaa kehittämään sovelluksia tehokkaammin.

Kehittäjälle viitekehyksen tuntemus on myös hyvä plussa ansioluettelossa, koska reaktiivisen ohjelmoinnin ymmärrystä ja erityisesti kokemusta RxSwiftistä arvostetaan markkinoilla.

Miksi valita tämä tietty kehys muiden edelle?

RxSwiftillä on suurin yhteisö. Toisin sanoen on suurempi mahdollisuus, että joku on jo ratkaissut kehittäjän kohtaaman ongelman. Myös suuri määrä sidoksia laatikosta. Lisäksi RxSwift on osa ReactiveX:ää. Tämä tarkoittaa, että esimerkiksi Androidille on olemassa analogia (RxJava, RxKotlin), ja työpajan kollegat voivat puhua keskenään samaa kieltä huolimatta siitä, että toiset toimivat iOS:llä, toiset Androidilla.

Kehystä päivitetään jatkuvasti, pieniä virheitä korjataan, uusien Swift-versioiden ominaisuuksien tuki lisätään ja uusia sidoksia lisätään. Koska RxSwift on avoimen lähdekoodin, voit seurata kaikkia muutoksia. Lisäksi on mahdollista lisätä niitä itse.

Missä RxSwiftiä tulisi käyttää?

  1. Sidokset. Pääsääntöisesti puhumme käyttöliittymästä, mahdollisuudesta muuttaa käyttöliittymää, ikään kuin reagoidaan tietojen muutoksiin, emmekä nimenomaisesti kertomasta käyttöliittymälle, että on aika päivittää.
  2. Komponenttien ja toimintojen välinen suhde. Vain esimerkki. Meidän on saatava luettelo tiedoista verkosta. Itse asiassa tämä ei ole niin yksinkertainen toimenpide. Tätä varten sinun on lähetettävä pyyntö, yhdistettävä vastaus objekteihin, tallennettava se tietokantaan ja lähetettävä se käyttöliittymään. Pääsääntöisesti eri komponentit vastaavat näiden toimintojen suorittamisesta (rakastamme ja noudatamme periaatteita SOLID?). Kun RxSwiftin kaltainen työkalu on käsillä, on mahdollista kuvata MITÄ järjestelmä tekee, ja MITEN se tekee sen muissa paikoissa. Tämän ansiosta koodin organisointi paranee ja luettavuus paranee. Suhteellisesti katsoen koodi voidaan jakaa sisällysluetteloon ja itse kirjaan.

Korutiinit Kotlinissa

RxSwift ja korutiinit Kotlinissa - valinnainen mobiilikehitys AGIMAlta ja GeekBrainsilta
Valinnaisen kurssin opettaja Alexander Tizik: ”Nykyaikainen kehitys vaatii nykyaikaisia ​​teknisiä keinoja”

Mitä GeekBrainsin tiedekunnassa opetetaan osana merkkikorttelia?

Teoria, vertailut muihin lähestymistapoihin, käytännön esimerkkejä puhtaassa Kotlinissa ja Android-sovellusmallissa. Käytännössä opiskelijoille näytetään sovellus, jossa kaikki on sidottu korutiineihin. Tosiasia on, että useimmat sovellukset ovat täysin asynkronisia ja rinnakkaisia. Mutta Kotlin-korutiinit mahdollistavat hämmentävän, heterogeenisen tai liian monimutkaisen ja suorituskykyä vaativan koodin pelkistämisen yhdeksi, helposti ymmärrettäväksi tyyliksi, mikä hyödyttää oikeaa suoritusta ja suorituskykyä.

Opimme kirjoittamaan korutiineihin idiomaattista koodia, joka ratkaisee käytännön ongelmia ja on ensisilmäyksellä ymmärrettävää myös ilman syvällistä tietoa korutiinien toiminnasta (mitä ei voi sanoa RxJavan kaltaisista kirjastoista). Ymmärrämme myös kuinka käyttää monimutkaisempia käsitteitä, kuten toimijamallia, ratkaisemaan monimutkaisempia ongelmia, kuten MVI-konseptin tietovarastoa.

Muuten, lisää hyviä uutisia. Samalla kun valittavaa nauhoitettiin, Kotlin Coroutines -kirjastoon julkaistiin päivitys, jossa luokka esiintyi Flow - tyyppien analogi Flowable и Observable RxJavasta. Päivitys tekee corutines-ominaisuuden käytännössä valmiiksi sovelluskehittäjän näkökulmasta. Totta, parantamisen varaa on vielä: huolimatta siitä, että kotlin/native-korutiinien tuen ansiosta Kotlinissa on jo mahdollista kirjoittaa usean alustan sovelluksia eikä kärsiä RxJavan tai analogien puutteesta puhtaassa Kotlinissa, Korutiinien tuki kotlin/natiivissa ei ole vielä valmis. Esimerkiksi näyttelijöistä ei ole käsitystä. Yleisesti ottaen Kotlin-tiimillä on suunnitelmia tukea monimutkaisempia toimijoita kaikilla alustoilla.

Kotlin-korutiinit – miten ne auttavat Kotlin-kehittäjää?

Korutiinit tarjoavat loistavan mahdollisuuden kirjoittaa koodia, joka on luettavaa, ylläpidettävää ja turvallista, asynkronista ja samanaikaista. Voit myös luoda sovittimia muille asynkronisille kehyksille ja lähestymistavoille, joita voidaan jo käyttää koodikannassa.

Miten Corutines eroaa säikeistä?

Kotlin-tiimi kutsuu korutiineja kevyiksi langoiksi. Lisäksi korutiini voi palauttaa jonkin arvon, koska ytimessä korutiini on keskeytetty laskenta. Se ei ole suoraan riippuvainen järjestelmäsäikeistä; säikeet suorittavat vain korutiineja.

Mitä käytännön ongelmia voidaan ratkaista Corutinen avulla, joita ei voida tai on vaikea ratkaista "puhtaalla" Kotlinilla?

Kaikki asynkroniset, rinnakkaiset, "kilpailevat" tehtävät ratkaistaan ​​hyvin korutiinien avulla - olipa kyseessä sitten käyttäjien napsautusten käsittely, verkkoon siirtyminen tai päivitysten tilaaminen tietokannasta.

Puhtaassa Kotlinissa nämä ongelmat ratkaistaan ​​samalla tavalla kuin Javassa - tuhansien kehysten avulla, joista jokaisella on omat hyvät ja huonot puolensa, mutta millään niistä ei ole kielitason tukea.

Johtopäätöksenä on syytä todeta, että molemmat valinnaiset (ja myös pääkurssit) päivitetään ulkoisten olosuhteiden muutosten mukaisesti. Jos tärkeitä päivityksiä ilmestyy kieliin tai kehyksiin, opettajat ottavat tämän huomioon ja muokkaavat ohjelmaa. Kaiken tämän avulla voit pitää sormesi kehitysprosessin tahdissa niin sanotusti.

Lähde: will.com

Lisää kommentti