RxSwift agus coroutines ann an Kotlin - roghainn ann an leasachadh gluasadach bho AGIMA agus GeekBrains

RxSwift agus coroutines ann an Kotlin - roghainn ann an leasachadh gluasadach bho AGIMA agus GeekBrains

Tha eòlas math, dìreach sgoinneil. Ach tha feum air cleachdadh cuideachd gus an urrainn dhut an dàta a fhuaireadh a chleachdadh, gan gluasad bhon inbhe “stòradh fulangach” chun inbhe “cleachdadh gnìomhach”. Ge bith dè cho math sa tha an trèanadh teòiridheach, tha feum fhathast air obair “san raon”. Tha na tha gu h-àrd a’ buntainn ri cha mhòr raon ionnsachaidh sam bith, a’ gabhail a-steach, gu dearbh, leasachadh bathar-bog.

Am-bliadhna, thòisich GeekBrains, mar phàirt de dhàmh leasachadh gluasadach an oilthigh air-loidhne GeekUniversity, ag obair leis a’ bhuidheann eadar-ghnìomhach AGIMA, aig a bheil an sgioba nan luchd-leasachaidh proifeasanta (bidh iad a’ cruthachadh phròiseactan iom-fhillte làn luchd, puirt corporra agus tagraidhean gluasadach, sin uile). Tha AGIMA agus GeekBrains air taghadh taghte a chruthachadh airson dàibheadh ​​​​domhainn a-steach do chùisean practaigeach leasachadh tagradh gluasadach.

An latha eile bhruidhinn sinn ri Igor Vedeneev, eòlaiche iOS, agus Alexander Tizik, a tha a 'speisealachadh ann an Android. Taing dhaibh, bha an roghainn roghnach air leasachadh gluasadach air a bheairteachadh le practaigeach cùrsa sònraichte air frèam RxSwift и coroutines ann an Kotlin. Anns an aiste seo, an luchd-leasachaidh a 'bruidhinn air cho cudromach' sa tha gach raon airson luchd-prògramaidh.

Prògramadh ath-ghnìomhach ann an iOS a’ cleachdadh RxSwift mar eisimpleir

RxSwift agus coroutines ann an Kotlin - roghainn ann an leasachadh gluasadach bho AGIMA agus GeekBrains
Tidsear taghte Igor Vedeneev: "Le RxSwift, bidh an tagradh agad ag itealaich"

Dè am fiosrachadh a gheibh oileanaich rè an taghadh?

Bidh sinn a 'bruidhinn chan ann a-mhàin mu chomasan an fhrèam, ach cuideachd a' sealltainn mar a chleachdas tu e anns a 'mheasgachadh clasaigeach MVVM + RxSwift. Tha grunn eisimpleirean practaigeach air an deasbad cuideachd. Gus an dàta a fhuaras a dhaingneachadh, bidh sinn a’ sgrìobhadh tagradh a tha cho faisg ‘s a ghabhas air suidheachaidhean obrach làraich. Bidh seo na thagradh sgrùdaidh ciùil a’ cleachdadh iTunes Search API. An sin cuiridh sinn na cleachdaidhean as fheàrr an sàs, agus beachdaichidh sinn air roghainn nas sìmplidh airson RxSwift a chleachdadh ann am paradigm MVC.

RxSwift - carson a tha feum aig prògramadair iOS air an fhrèam seo, ciamar a nì e beatha nas fhasa do leasaiche?

Bidh RxSwift a’ sgioblachadh obair le sruthan tachartais agus ceanglaichean eadar nithean. Is e an eisimpleir as sìmplidh agus as fhollaisiche ceangalaichean: mar eisimpleir, faodaidh tu an eadar-aghaidh ùrachadh le bhith dìreach a’ suidheachadh luachan ùra ann an caochladair san viewModel. Mar sin, bidh an eadar-aghaidh air a stiùireadh le dàta. A bharrachd air an sin, leigidh RxSwift leat cunntas a thoirt air an t-siostam ann an stoidhle dearbhaidh, a leigeas leat do chòd a chuir air dòigh agus comas leughaidh àrdachadh. Tha seo uile a’ cuideachadh le bhith a’ leasachadh thagraidhean nas èifeachdaiche.

Airson leasaiche, tha eòlas air an fhrèam cuideachd na bhuannachd mhath air ath-thòiseachadh, leis gu bheil tuigse air prògramadh reactive, agus gu sònraichte eòlas le RxSwift, air a luachadh sa mhargaidh.

Carson a thaghas tu am frèam sònraichte seo thairis air feadhainn eile?

Tha a’ choimhearsnachd as motha aig RxSwift. Is e sin, tha barrachd teansa ann gu bheil an duilgheadas a tha fa chomhair an leasaiche air a bhith air fhuasgladh le cuideigin mar-thà. Cuideachd àireamh mhòr de cheangalaichean a-mach às a 'bhogsa. A bharrachd air an sin, tha RxSwift na phàirt de ReactiveX. Tha seo a 'ciallachadh gu bheil analogue ann airson Android, mar eisimpleir (RxJava, RxKotlin), agus faodaidh co-obraichean anns a' bhùth-obrach an aon chànan a bhruidhinn ri chèile, a dh'aindeoin gu bheil cuid ag obair le iOS, cuid eile le Android.

Tha am frèam air ùrachadh gu cunbhalach, tha mion-bhiastaidhean air an ceartachadh, tha taic airson feartan bho dhreachan ùra de Swift air a chur ris, agus thèid ceanglachan ùra a chur ris. Leis gu bheil RxSwift na stòr fosgailte, faodaidh tu na h-atharrachaidhean gu lèir a leantainn. A bharrachd air an sin, tha e comasach iad fhèin a chuir ris.

Càite am bu chòir RxSwift a chleachdadh?

  1. Ceangalaichean. Mar riaghailt, tha sinn a 'bruidhinn mun UI, an comas an UI atharrachadh, mar gum biodh e a' dèiligeadh ri atharrachaidhean dàta, agus gun a bhith ag innse don eadar-aghaidh gu bheil an t-àm ann ùrachadh.
  2. An dàimh eadar co-phàirtean agus gnìomhan. Dìreach eisimpleir. Feumaidh sinn liosta de dhàta fhaighinn bhon lìonra. Gu dearbh, chan e gnìomh cho sìmplidh a tha seo. Gus seo a dhèanamh, feumaidh tu iarrtas a chuir, am freagairt a mhapadh ann an grunn nithean, a shàbhaladh chun stòr-dàta agus a chuir chun UI. Mar riaghailt, tha uallach air diofar phàirtean airson na h-obraichean sin a choileanadh (tha sinn dèidheil air agus a ’leantainn nam prionnsapalan solid?). Le inneal mar RxSwift ri làimh, bidh e comasach cunntas a thoirt air DÈ nì an siostam, agus mar a nì e bidh e ann an àiteachan eile. Is ann air sgàth seo a tha eagrachadh a’ chòd nas fheàrr air a choileanadh agus àrdachadh ann an leughadh. An ìre mhath a’ bruidhinn, faodar an còd a roinn ann an clàr-innse agus an leabhar fhèin.

Coroutines ann an Kotlin

RxSwift agus coroutines ann an Kotlin - roghainn ann an leasachadh gluasadach bho AGIMA agus GeekBrains
Tidsear cùrsa taghte Alexander Tizik: “Feumaidh leasachadh ùr-nodha dòighean teicnigeach an latha an-diugh"

Dè a thèid a theagasg aig dàmh GeekBrains mar phàirt den chairteal ainmichte?

Teòiridh, coimeas ri dòighean-obrach eile, eisimpleirean practaigeach ann an Kotlin fìor-ghlan agus ann am modal tagraidh Android. A thaobh cleachdadh, thèid tagradh a shealltainn do dh’ oileanaich anns a bheil a h-uile càil ceangailte ri coroutines. Is e an fhìrinn gu bheil a’ mhòr-chuid de thagraidhean gu tur asyncronach agus coimpiutaireachd co-shìnte. Ach leigidh coroutines Kotlin le còd a tha troimh-chèile, ioma-ghnèitheach no ro iom-fhillte agus a tha ag iarraidh coileanadh a lughdachadh gu aon stoidhle a tha furasta a thuigsinn, a’ faighinn buannachdan ann an coileanadh agus coileanadh ceart.

Ionnsaichidh sinn còd gnàthasan-cainnte a sgrìobhadh ann an coroutines a dh ’fhuasglas duilgheadasan practaigeach agus a tha furasta a thuigsinn aig a’ chiad sealladh eadhon às aonais eòlas domhainn air mar a bhios coroutines ag obair (nach urrainnear a ràdh mu leabharlannan mar RxJava). Tuigidh sinn cuideachd mar a chleachdas sinn bun-bheachdan nas iom-fhillte, leithid modail an actair, gus fuasgladh fhaighinn air duilgheadasan nas iom-fhillte, leithid an taigh-bathair dàta ann am bun-bheachd MVI.

Co-dhiù, barrachd deagh naidheachd. Fhad ‘s a bha an taghadh taghte ga chlàradh, chaidh ùrachadh mu leabharlann Kotlin Coroutines fhoillseachadh, anns an do nochd an clas Flow - analogue de sheòrsan Flowable и Observable bho rxJava. Tha an t-ùrachadh gu bunaiteach a’ dèanamh feart coroutines coileanta bho shealladh leasaiche an tagraidh. Fìor, tha àite ann fhathast airson leasachadh: a dh ’aindeoin, le taic bho coroutines ann an kotlin / dùthchasach, gu bheil e comasach mar-thà tagraidhean ioma-àrd-ùrlar a sgrìobhadh ann an Kotlin agus gun a bhith a’ fulang le gainnead RxJava no analogues ann an Kotlin fìor-ghlan , chan eil taic airson coroutines ann an kotlin/dùthchasach fhathast deiseil. Mar eisimpleir, chan eil bun-bheachd cleasaichean ann. San fharsaingeachd, tha planaichean aig sgioba Kotlin gus taic a thoirt do chleasaichean nas iom-fhillte air gach àrd-ùrlar.

Kotlin Coroutines - ciamar a chuidicheas iad leasaiche Kotlin?

Tha Coroutines a’ toirt deagh chothrom airson còd a sgrìobhadh a tha furasta a leughadh, a chumail suas, agus tèarainte, asyncronach, agus co-ionnan. Faodaidh tu cuideachd innealan-atharrachaidh a chruthachadh airson frèaman asyncronach eile agus dòighean-obrach a dh’ fhaodadh a bhith air an cleachdadh mar-thà anns a ’bhun-chòd.

Ciamar a tha Coroutines eadar-dhealaichte bho snàithleanan?

Bidh sgioba Kotlin a’ gairm snàithleanan aotrom coroutines. A bharrachd air an sin, faodaidh coroutine beagan luach a thilleadh, oir, aig a chridhe, tha coroutine na àireamhachadh crochte. Chan eil e gu dìreach an urra ri snàithleanan an t-siostaim; chan eil snàithleanan a’ ruith ach coroutines.

Dè na duilgheadasan practaigeach a ghabhas fuasgladh le bhith a’ cleachdadh Coroutine, nach urrainn no a tha doirbh am fuasgladh le bhith a’ cleachdadh Kotlin “fìor-ghlan”?

Tha gnìomhan asyncronach, co-shìnte, “farpaiseach” air am fuasgladh gu math le bhith a’ cleachdadh coroutines - biodh e a’ giullachd chlican luchd-cleachdaidh, a’ dol air-loidhne, no a’ fo-sgrìobhadh airson ùrachaidhean bho stòr-dàta.

Ann an Kotlin fìor-ghlan, tha na duilgheadasan sin air am fuasgladh san aon dòigh ri Java - le cuideachadh bho mhìltean de fhrèamaichean, agus tha na buannachdan agus na cunntasan aca fhèin aig gach fear dhiubh, ach chan eil taic ìre cànain aig gin dhiubh.

Mar cho-dhùnadh, is fhiach a ràdh gu bheil an dà roghainn (agus na prìomh chùrsaichean cuideachd) air an ùrachadh a rèir atharrachaidhean ann an suidheachaidhean taobh a-muigh. Ma nochdas ùrachaidhean cudromach ann an cànanan no frèaman, bheir tidsearan aire don seo agus atharraichidh iad am prògram. Leigidh seo leat do mheur a chumail air buille a’ phròiseas leasachaidh, mar sin a bhruidhinn.

Source: www.habr.com

Cuir beachd ann