RxSwift ug Coroutines sa Kotlin - Mobile Development Elective gikan sa AGIMA ug GeekBrains

RxSwift ug Coroutines sa Kotlin - Mobile Development Elective gikan sa AGIMA ug GeekBrains

Ang kahibalo maayo, maayo lang. Apan gikinahanglan usab ang pagpraktis aron magamit ang nadawat nga datos, pagbalhin kanila gikan sa kahimtang sa "passive storage" ngadto sa status sa "aktibong paggamit". Bisan unsa pa ka maayo ang teoretikal nga pagbansay, nagkinahanglan gihapon kini og trabaho "sa uma". Kini magamit sa halos bisan unsang natad sa edukasyon, lakip, siyempre, pagpalambo sa software.

Karong tuiga, ang GeekBrains, sulod sa gambalay sa mga magtutudlo sa online nga unibersidad GeekUniversity sa mobile development, nagsugod sa pagtrabaho uban sa interactive nga ahensya nga AGIMA, kansang team mao ang mga propesyonal nga developers (sila naghimo sa mga komplikado nga high-load nga mga proyekto, corporate portals ug mobile applications, nga ang tanan. ). Ang AGIMA ug GeekBrains nakamugna ug elective para sa lawom nga pag-dive sa mga praktikalidad sa mobile app development.

Sa miaging adlaw nakigsulti kami ni Igor Vedeneev, usa ka espesyalista sa iOS, ug Alexander Tizik, usa ka espesyalista sa Android. Salamat sa kanila, ang elective nga kurso sa mobile development gipauswag sa praktikal usa ka espesyal nga kurso sa RxSwift framework ΠΈ coroutine sa Kotlin. Niini nga artikulo, ang mga developers naghisgot bahin sa kamahinungdanon sa matag direksyon alang sa mga programmer.

Ang reaktibo nga programming sa iOS gamit ang RxSwift isip pananglitan

RxSwift ug Coroutines sa Kotlin - Mobile Development Elective gikan sa AGIMA ug GeekBrains
Ang pinili nga magtutudlo nga si Igor Vedeneev: "Uban sa RxSwift ang imong aplikasyon molupad"

Unsa nga impormasyon ang madawat sa mga estudyante sa elective?

Naghisgot kami dili lamang bahin sa mga kapabilidad sa balangkas, apan gipakita usab kung giunsa kini gamiton sa klasiko nga bundle nga MVVM + RxSwift. Gikonsiderar usab ang daghang praktikal nga mga pananglitan. Aron makonsolida ang datos nga nakuha, nagsulat kami usa ka aplikasyon nga hapit sa mahimo sa mga kondisyon sa umahan sa trabaho. Kini usa ka aplikasyon sa pagpangita sa musika nga adunay iTunes Search API. Didto atong i-apply ang tanan nga Best Practices, ug ikonsiderar ang mas simple nga paggamit sa RxSwift sa paradigm sa MVC.

RxSwift - ngano nga kini nga balangkas nanginahanglan usa ka programmer sa iOS, giunsa kini pagpadali sa kinabuhi alang sa usa ka developer?

Ang RxSwift streamlines nagtrabaho sa mga stream sa panghitabo ug mga relasyon tali sa mga butang. Ang pinakayano ug labing klaro nga pananglitan mao ang mga pagbugkos: pananglitan, mahimo nimong i-update ang interface pinaagi lamang sa pagbutang og bag-ong bili sa usa ka variable sa viewModel. Busa, ang interface nahimo nga data-driven. Dugang pa, ang RxSwift nagtugot kanimo sa paghulagway sa sistema sa usa ka deklaratibo nga estilo, nga nagtugot kanimo sa pag-streamline sa code ug pagpalambo sa pagkabasa. Kining tanan makatabang sa pagpalambo sa mga aplikasyon nga mas episyente.

Alang sa usa ka developer, ang kahibalo sa balangkas usa usab ka maayong dugang sa usa ka resume, tungod kay ang usa ka pagsabut sa reaktibo nga programa, ug sa partikular nga kasinatian sa RxSwift, gipabilhan sa merkado.

Nganong pilion kining partikular nga gambalay ug dili ang uban?

RxSwift ang adunay pinakadako nga komunidad. Sa ato pa, mas lagmit nga ang problema nga giatubang sa developer nasulbad na sa usa ka tawo. Usab ang usa ka dako nga gidaghanon sa mga bindings gikan sa kahon. Dugang pa, ang RxSwift bahin sa ReactiveX. Kini nagpasabot nga adunay usa ka analogue alang sa Android, pananglitan (RxJava, RxKotlin), ug ang mga kauban sa shop makasulti sa samang pinulongan sa usag usa, bisan pa sa kamatuoran nga ang uban nagtrabaho sa iOS, ang uban sa Android.

Ang balangkas kanunay nga gi-update, ang mga menor de edad nga mga bug giayo, ang suporta alang sa mga bahin gikan sa bag-ong mga bersyon sa Swift gidugang, ang mga bag-ong binding gidugang. Tungod kay ang RxSwift bukas nga gigikanan, mahimo nimong sundon ang tanan nga mga pagbag-o. Dugang pa, posible nga idugang kini sa imong kaugalingon.

Asa nimo gamiton ang RxSwift?

  1. Mga pagbugkos. Ingon sa usa ka lagda, dinhi naghisgot kami bahin sa UI, ang abilidad sa pag-usab sa UI, ingon nga nag-reaksyon sa mga pagbag-o sa datos, ug dili tin-aw nga nagsulti sa interface nga panahon na sa pag-update.
  2. Komunikasyon sa mga sangkap ug operasyon. Pananglitan lang. Kinahanglan namon nga makakuha usa ka lista sa datos gikan sa network. Sa tinuud, dili kini usa ka yano nga operasyon. Aron mahimo kini, kinahanglan ka magpadala usa ka hangyo, mapa ang tubag sa usa ka han-ay sa mga butang, i-save kini sa database ug ihatag kini sa UI. Ingon sa usa ka lagda, lainlain nga mga sangkap ang responsable sa paghimo niini nga mga operasyon (gihigugma ug gisunod namon ang mga prinsipyo SOLID?). Ang pagbaton sa usa ka himan sama sa RxSwift, mahimong posible nga ihulagway UNSAY buhaton sa sistema, ug UNSAON kini buhaton mahimutang sa ubang mga lugar. Tungod niini nga ang usa ka mas maayo nga organisasyon sa code nakab-ot ug ang pagkabasa nadugangan. Sa medyo pagsulti, ang code mahimong bahinon sa usa ka talaan sa mga sulud ug sa libro mismo.

Mga Coroutine sa Kotlin

RxSwift ug Coroutines sa Kotlin - Mobile Development Elective gikan sa AGIMA ug GeekBrains
Ang pinili nga magtutudlo nga si Alexander Tizik: "Ang modernong pag-uswag nanginahanglan modernong teknikal nga paagi"

Unsa ang itudlo sa GeekBrains faculty isip bahin sa branded quarter?

Teorya, pagtandi sa ubang mga pamaagi, praktikal nga mga pananglitan sa lunsay nga Kotlin ug sa modelo sa aplikasyon sa Android. Sama sa praktis, ang mga estudyante ipakita sa usa ka aplikasyon diin ang tanan nahigot sa mga coroutine. Ang kamatuoran mao nga kadaghanan sa mga aplikasyon padayon nga asynchronous ug parallel computing. Apan ang Kotlin coroutines nagtugot sa makalibog, heterogeneous o sobra ka komplikado ug gikinahanglan sa performance nga code nga mapakunhod ngadto sa usa, sayon ​​​​sabton nga estilo, nga makaangkon sa pagkahusto sa pagpatuman ug performance.

Makakat-on kita kung unsaon pagsulat ang idiomatic nga coroutine code nga makasulbad sa praktikal nga mga problema ug masabtan sa usa ka pagtan-aw bisan kung wala’y lawom nga kahibalo kung giunsa ang mga coroutine molihok (nga dili masulti bahin sa mga librarya sama sa RxJava). Atong sabton kung unsaon paggamit ang mas komplikado nga mga konsepto, sama sa modelo sa aktor, aron masulbad ang mas komplikado nga mga problema, sama sa pagtipig sa datos sa konsepto sa MVI.

Pinaagi sa dalan, mas maayong balita. Samtang ang elective gisulat, usa ka update sa Kotlin Coroutines librarya gipagawas, diin ang klase nagpakita Flow - analogue sa mga tipo Flowable ΠΈ Observable gikan sa RxJava. Ang pag-update, sa tinuud, naghimo sa mga coroutine nga kompleto nga bahin gikan sa punto sa pagtan-aw sa usa ka developer sa aplikasyon. Tinuod, adunay pa lugar alang sa pag-uswag: bisan pa sa kamatuoran nga salamat sa suporta sa mga coroutine sa kotlin / lumad, posible na nga isulat ang mga aplikasyon sa multiplatform sa Kotlin ug dili mag-antos sa kakulang sa RxJava o mga analogue sa puro nga Kotlin, suporta alang sa Ang mga coroutine sa kotlin/native dili pa kompleto. Pananglitan, walay konsepto sa mga aktor. Sa kinatibuk-an, ang Kotlin team nagplano sa pagsuporta sa mas komplikado nga mga aktor sa tanan nga mga plataporma.

Kotlin Coroutines - giunsa nila pagtabang ang usa ka developer sa Kotlin?

Ang mga Coroutine naghatag ug dakong kahigayonan sa pagsulat nga mabasa, mamentinar ug luwas, asynchronous ug concurrency code. Makahimo ka usab og mga adapter alang sa ubang mga asynchronous nga mga balangkas ug mga pamaagi nga mahimo nang magamit sa codebase.

Sa unsang paagi lahi ang Coroutine sa mga thread?

Ang Kotlin team nagtumong sa mga coroutine isip gaan nga mga hilo. Dugang pa, ang usa ka coroutine mahimong makabalik sa pipila nga kantidad, tungod kay, sa kinauyokan niini, ang usa ka coroutine usa ka gisuspinde nga kalkulasyon. Wala kini direkta nga nagdepende sa mga hilo sa sistema, ang mga hilo nagpatuman lamang sa mga coroutine.

Unsang praktikal nga mga buluhaton ang masulbad gamit ang Corutin, diin ang dili o lisud sulbaron gamit ang "puro" nga Kotlin?

Ang bisan unsang asynchronous, parallel, "competitive" nga mga buluhaton maayo nga nasulbad sa tabang sa mga coroutine - kung kini nagproseso sa mga pag-klik gikan sa user, pag-adto sa network, o pag-subscribe sa mga update gikan sa database.

Sa lunsay nga Kotlin, kini nga mga buluhaton gisulbad sa parehas nga paagi sama sa Java - gamit ang libu-libo nga mga balangkas, nga ang matag usa adunay mga bentaha ug disbentaha, apan wala’y bisan usa kanila nga adunay suporta sa lebel sa sinultian.

Isip usa ka konklusyon, kinahanglan nga isulti nga ang duha nga mga elective (ug ang panguna nga mga kurso usab) gi-update sumala sa mga pagbag-o sa mga kondisyon sa gawas. Kung adunay hinungdanon nga mga pag-update sa mga sinultian o balangkas, tagdon kini sa mga magtutudlo ug usbon ang programa. Ang tanan niini nagtugot kanimo sa pagpadayon sa abreast sa proseso sa pag-uswag, ingnon ta.

Source: www.habr.com

Idugang sa usa ka comment