RxSwift un korutÄ«nas Kotlinā ā€” mobilās attÄ«stÄ«bas izvēles priekÅ”mets no AGIMA un GeekBrains

RxSwift un korutÄ«nas Kotlinā ā€” mobilās attÄ«stÄ«bas izvēles priekÅ”mets no AGIMA un GeekBrains

ZināŔanas ir labas, vienkārÅ”i lieliskas. Taču ir nepiecieÅ”ama arÄ« prakse, lai varētu izmantot saņemtos datus, pārceļot tos no statusa ā€œpasÄ«vā krātuveā€ uz statusu ā€œaktÄ«va izmantoÅ”anaā€. Lai cik laba bÅ«tu teorētiskā apmācÄ«ba, darbs ā€œlaukāā€ tomēr ir vajadzÄ«gs. IepriekÅ” minētais attiecas uz gandrÄ«z jebkuru studiju virzienu, tostarp, protams, programmatÅ«ras izstrādi.

Å ogad GeekBrains tieÅ”saistes universitātes GeekUniversity mobilās attÄ«stÄ«bas fakultātes ietvaros uzsāka sadarbÄ«bu ar interaktÄ«vo aÄ£entÅ«ru AGIMA, kuras komanda ir profesionāli izstrādātāji (tie veido sarežģītus augstas slodzes projektus, korporatÄ«vos portālus un mobilās aplikācijas, tas arÄ« viss). AGIMA un GeekBrains ir izveidojuÅ”i izvēles priekÅ”metu, lai dziļi izpētÄ«tu mobilo lietojumprogrammu izstrādes praktiskos jautājumus.

Citu dienu mēs runājām ar Igoru Vedeņejevu, iOS speciālistu, un Aleksandru Tiziku, kas specializējas operētājsistēmā Android. Pateicoties viņiem, izvēle par mobilo attÄ«stÄ«bu tika bagātināta ar praktisko Ä«paÅ”s kurss par RxSwift sistēmu Šø korutÄ«nas Kotlinā. Å ajā rakstā izstrādātāji runā par katras jomas nozÄ«mi programmētājiem.

ReaktÄ«vā programmÄ“Å”ana operētājsistēmā iOS, kā piemēru izmantojot RxSwift

RxSwift un korutÄ«nas Kotlinā ā€” mobilās attÄ«stÄ«bas izvēles priekÅ”mets no AGIMA un GeekBrains
Izvēles skolotājs Igors Vedeņejevs: ā€œAr RxSwift jÅ«su pieteikums lidosā€

Kādu informāciju studenti saņem izvēles laikā?

Mēs runājam ne tikai par ietvara iespējām, bet arÄ« parādām, kā to izmantot klasiskajā MVVM + RxSwift kombinācijā. Tiek apspriesti arÄ« vairāki praktiski piemēri. Lai apkopotu iegÅ«tos datus, mēs rakstām pieteikumu, kas ir pēc iespējas tuvāks lauka darbÄ«bas apstākļiem. Å Ä« bÅ«s mÅ«zikas meklÄ“Å”anas programma, kas izmantos iTunes meklÄ“Å”anas API. Å eit mēs izmantosim visas labākās prakses, kā arÄ« apsvērsim vienkārŔāku iespēju RxSwift izmantoÅ”anai MVC paradigmā.

RxSwift ā€“ kāpēc iOS programmētājam ir vajadzÄ«gs Å”is ietvars, kā tas atvieglo dzÄ«vi izstrādātājam?

RxSwift racionalizē darbu ar notikumu straumēm un savienojumiem starp objektiem. VienkārŔākais un acÄ«mredzamākais piemērs ir saistÄ«Å”ana: piemēram, interfeisu var atjaunināt, vienkārÅ”i iestatot jaunas vērtÄ«bas mainÄ«gajā programmā viewModel. Tādējādi saskarne kļūst balstÄ«ta uz datiem. Turklāt RxSwift ļauj aprakstÄ«t sistēmu deklaratÄ«vā stilā, kas ļauj sakārtot kodu un palielināt lasāmÄ«bu. Tas viss palÄ«dz efektÄ«vāk izstrādāt lietojumprogrammas.

Izstrādātājam zināŔanas par ietvaru ir arÄ« labs pluss CV, jo izpratne par reaktÄ«vo programmÄ“Å”anu un jo Ä«paÅ”i pieredze ar RxSwift tiek novērtēta tirgÅ«.

Kāpēc izvēlēties Å”o konkrēto sistēmu, nevis citus?

RxSwift ir lielākā kopiena. Tas nozīmē, ka pastāv lielāka iespēja, ka problēmu, ar kuru saskaras izstrādātājs, kāds jau ir atrisinājis. Arī liels skaits stiprinājumu no kastes. Turklāt RxSwift ir daļa no ReactiveX. Tas nozīmē, ka ir, piemēram, Android analogs (RxJava, RxKotlin), un kolēģi darbnīcā var runāt viens ar otru vienā valodā, neskatoties uz to, ka daži strādā ar iOS, citi ar Android.

Ietvars tiek pastāvīgi atjaunināts, tiek labotas nelielas kļūdas, tiek pievienots atbalsts jaunajām Swift versijām un tiek pievienoti jauni saitījumi. Tā kā RxSwift ir atvērtais avots, varat sekot līdzi visām izmaiņām. Turklāt ir iespējams tos pievienot pats.

Kur izmantot RxSwift?

  1. Saites. Parasti mēs runājam par lietotāja interfeisu, iespēju mainīt lietotāja interfeisu, it kā reaģējot uz datu izmaiņām, nevis skaidri paziņojot saskarnei, ka ir pienācis laiks atjaunināt.
  2. SaistÄ«ba starp komponentiem un operācijām. Tikai piemērs. Mums ir jāiegÅ«st datu saraksts no tÄ«kla. PatiesÄ«bā Ŕī nav tik vienkārÅ”a darbÄ«ba. Lai to izdarÄ«tu, jums ir jānosÅ«ta pieprasÄ«jums, jāsakārto atbilde objektu masÄ«vā, jāsaglabā datu bāzē un jānosÅ«ta lietotāja interfeisam. Parasti par Å”o darbÄ«bu veikÅ”anu ir atbildÄ«gas dažādas sastāvdaļas (mēs mÄ«lam un ievērojam principus SOLID?). Ja pa rokai ir tāds rÄ«ks kā RxSwift, kļūst iespējams aprakstÄ«t, KO sistēma darÄ«s, un KĀ tā to darÄ«s citās vietās. Pateicoties tam, tiek panākta labāka koda organizācija un palielinās lasāmÄ«ba. RelatÄ«vi runājot, kodu var iedalÄ«t satura rādÄ«tājā un paŔā grāmatā.

Korutīnas Kotlinā

RxSwift un korutÄ«nas Kotlinā ā€” mobilās attÄ«stÄ«bas izvēles priekÅ”mets no AGIMA un GeekBrains
Izvēles kursa pasniedzējs Aleksandrs Tiziks: ā€œMÅ«sdienu attÄ«stÄ«bai nepiecieÅ”ami mÅ«sdienÄ«gi tehniskie lÄ«dzekļiā€

Ko mācīs GeekBrains fakultātē zīmola kvartāla ietvaros?

Teorija, salÄ«dzinājumi ar citām pieejām, praktiski piemēri tÄ«rā Kotlinā un Android aplikācijas modelÄ«. Runājot par praksi, studentiem tiks parādÄ«ta aplikācija, kurā viss ir saistÄ«ts ar korutÄ«nām. Fakts ir tāds, ka lielākā daļa lietojumprogrammu ir pilnÄ«gi asinhrona un paralēla skaitļoÅ”ana. Taču Kotlin korutÄ«nas ļauj mulsinoÅ”u, neviendabÄ«gu vai pārāk sarežģītu un veiktspējas prasÄ«gu kodu reducēt lÄ«dz vienam, viegli saprotamam stilam, gÅ«stot priekÅ”rocÄ«bas pareizajā izpildē un veiktspējā.

MācÄ«simies korutÄ«nās rakstÄ«t idiomātisku kodu, kas atrisina praktiskas problēmas un ir no pirmā acu uzmetiena saprotams pat bez dziļām zināŔanām par korutÄ«nu darbÄ«bu (ko nevar teikt par tādām bibliotēkām kā RxJava). Mēs arÄ« sapratÄ«sim, kā izmantot sarežģītākus jēdzienus, piemēram, aktiera modeli, lai atrisinātu sarežģītākas problēmas, piemēram, datu noliktava MVI koncepcijā.

Starp citu, vairāk labu ziņu. Kamēr izvēles priekÅ”mets tika ierakstÄ«ts, tika izlaists Kotlin Coroutines bibliotēkas atjauninājums, kurā parādÄ«jās nodarbÄ«ba Flow - tipu analogs Flowable Šø Observable no RxJava. Atjauninājums bÅ«tÄ«bā padara korutÄ«nas funkciju pilnÄ«gu no lietojumprogrammu izstrādātāja viedokļa. Tiesa, joprojām ir vietas uzlabojumiem: neskatoties uz to, ka, pateicoties korutÄ«nu atbalstam kotlin/native, Kotlinā jau ir iespējams rakstÄ«t vairāku platformu lietojumprogrammas un neciest no RxJava vai analogu trÅ«kuma tÄ«rā Kotlin, KorutÄ«nu atbalsts kotlin/native vēl nav pabeigts. Piemēram, nav aktieru jēdziena. Kopumā Kotlin komanda plāno atbalstÄ«t sarežģītākus dalÄ«bniekus visās platformās.

Kotlin Coroutines ā€” kā tās palÄ«dz Kotlin izstrādātājam?

KorutÄ«nas sniedz lielisku iespēju rakstÄ«t kodu, kas ir lasāms, apkopjams un droÅ”s, asinhrons un vienlaicÄ«gs. Varat arÄ« izveidot adapterus citām asinhronām sistēmām un pieejām, kas jau var tikt izmantotas kodu bāzē.

Kā korutīnas atŔķiras no pavedieniem?

Kotlinas komanda korutÄ«nas sauc par vieglajiem pavedieniem. Turklāt korutÄ«na var atgriezt kādu vērtÄ«bu, jo pēc bÅ«tÄ«bas korutÄ«na ir apturēts aprēķins. Tas nav tieÅ”i atkarÄ«gs no sistēmas pavedieniem; pavedieni izpilda tikai korutÄ«nas.

Kādas praktiskas problēmas var atrisināt, izmantojot Coroutine, kuras nevar vai ir grÅ«ti atrisināt, izmantojot ā€œtÄ«roā€ Kotlinu?

Jebkuri asinhroni, paralēli, ā€œkonkurētspējÄ«giā€ uzdevumi tiek labi atrisināti, izmantojot korutÄ«nas ā€” neatkarÄ«gi no tā, vai tā ir lietotāja klikŔķu apstrāde, pāreja tieÅ”saistē vai atjauninājumu abonÄ“Å”ana no datu bāzes.

TÄ«rā Kotlinā Ŕīs problēmas tiek risinātas tāpat kā Java - ar tÅ«kstoÅ”iem ietvaru palÄ«dzÄ«bu, no kuriem katram ir savi plusi un mÄ«nusi, taču nevienam no tiem nav valodas lÄ«meņa atbalsta.

Noslēgumā jāsaka, ka gan izvēles priekÅ”meti (un arÄ« pamatkursi) tiek papildināti atbilstoÅ”i ārējo apstākļu izmaiņām. Ja valodās vai sistēmās parādās svarÄ«gi atjauninājumi, skolotāji to ņem vērā un pārveido programmu. Tas viss ļauj, tā teikt, turēt pirkstu uz attÄ«stÄ«bas procesa pulsa.

Avots: www.habr.com

Pievieno komentāru