RxSwift sareng coroutines di Kotlin - pilihan dina pamekaran sélulér ti AGIMA sareng GeekBrains

RxSwift sareng coroutines di Kotlin - pilihan dina pamekaran sélulér ti AGIMA sareng GeekBrains

Pangaweruh téh alus, ngan hébat. Tapi latihan ogé diperlukeun ku kituna anjeun bisa ngagunakeun data narima, mindahkeun tina status "panyimpenan pasip" ka status "pamakéan aktip". Perkara teu sabaraha alus latihan téoritis téh, gawé "di sawah" masih diperlukeun. Di luhur lumaku pikeun ampir sagala widang studi, kaasup, tangtosna, ngembangkeun software.

Taun ieu, GeekBrains, salaku bagian tina fakultas ngembangkeun mobile sahiji universitas online GeekUniversity, mimiti gawé bareng agénsi interaktif AGIMA, anu tim anu pamekar profésional (aranjeunna nyieun proyék tinggi-beban kompléks, portals perusahaan tur aplikasi mobile, éta sakabéh). AGIMA na GeekBrains geus nyieun hiji elective pikeun beuleum jero kana masalah praktis ngembangkeun aplikasi mobile.

Dinten anu sanés urang ngobrol sareng Igor Vedeneev, spesialis ios, sareng Alexander Tizik, khusus dina Android. Hatur nuhun ka aranjeunna, elective on ngembangkeun mobile ieu enriched kalawan praktis tangtu husus dina kerangka RxSwift и coroutines di Kotlin. Dina artikel ieu, pamekar ngobrol ngeunaan pentingna unggal wewengkon pikeun programer.

Program réaktif dina ios nganggo RxSwift sabagé conto

RxSwift sareng coroutines di Kotlin - pilihan dina pamekaran sélulér ti AGIMA sareng GeekBrains
Guru pilihan Igor Vedeneev: "Kalayan RxSwift, aplikasi anjeun bakal ngapung"

Inpormasi naon anu ditampi ku murid salami pamilihan?

Urang ngobrol teu ukur ngeunaan kamampuhan kerangka, tapi ogé némbongkeun kumaha carana make eta dina MVVM Palasik + kombinasi RxSwift. Sababaraha conto praktis ogé dibahas. Pikeun ngahijikeun data anu diala, urang nyerat aplikasi anu sacaket mungkin pikeun kaayaan operasi lapangan. Ieu bakal aplikasi pilarian musik ngagunakeun iTunes Search API. Di dinya urang bakal nerapkeun sagala Praktek Pangalusna, tambah mertimbangkeun pilihan anu langkung saderhana pikeun ngagunakeun RxSwift dina paradigma MVC.

RxSwift - naha programmer ios peryogi kerangka ieu, kumaha carana ngagampangkeun kahirupan pikeun pamekar?

RxSwift streamlines dianggo kalayan aliran acara sareng sambungan antara objék. Conto pangbasajanna sareng paling atra nyaéta beungkeutan: contona, anjeun tiasa ngamutahirkeun antarmuka ku ngan saukur netepkeun nilai anyar dina variabel dina viewModel. Ku kituna, panganteur jadi data-disetir. Sajaba ti éta, RxSwift ngidinan Anjeun pikeun ngajelaskeun sistem dina gaya déklaratif, nu ngidinan Anjeun pikeun ngatur kode anjeun sarta ngaronjatkeun readability. Sadaya ieu ngabantosan ngembangkeun aplikasi langkung éfisién.

Pikeun pamekar a, pangaweruh ngeunaan kerangka ogé tambah alus dina neruskeun a, saprak hiji pamahaman programming réaktif, sarta hususna pangalaman kalawan RxSwift, hargana di pasar.

Naha milih kerangka khusus ieu pikeun anu sanés?

RxSwift boga komunitas panggedéna. Nyaéta, aya kasempetan anu langkung ageung yén masalah anu disanghareupan ku pamekar parantos direngsekeun ku batur. Ogé angka nu gede ngarupakeun bindings out of the box. Sumawona, RxSwift mangrupikeun bagian tina ReactiveX. Ieu ngandung harti yén aya analog pikeun Android, contona (RxJava, RxKotlin), sareng kolega di bengkel tiasa nyarios basa anu sami saling, sanaos kanyataan yén sababaraha damel sareng ios, anu sanés nganggo Android.

Kerangka ieu terus diropéa, bug minor dilereskeun, rojongan pikeun fitur ti versi anyar Swift ditambahkeun, sarta bindings anyar ditambahkeun. Kusabab RxSwift mangrupikeun sumber terbuka, anjeun tiasa nuturkeun sadaya parobihan. Leuwih ti éta, kasebut nyaéta dimungkinkeun pikeun nambahkeun aranjeunna sorangan.

Dimana RxSwift kedah dianggo?

  1. Binding. Sakumaha aturan, urang ngobrol ngeunaan UI, kamampuhan pikeun ngarobah UI, saolah-olah ngaréaksikeun kana parobahan data, sarta teu eksplisit ngabejaan panganteur yén éta waktu pikeun ngapdet.
  2. Hubungan antara komponén jeung operasi. Sakadar conto. Urang kudu meunang daptar data tina jaringan. Kanyataanna, ieu teu sapertos operasi basajan. Jang ngalampahkeun ieu, anjeun kudu ngirim pamundut a, peta respon kana Asép Sunandar Sunarya objék, simpen ka database jeung ngirim ka UI. Sakumaha aturan, komponén anu béda tanggung jawab pikeun ngalakukeun operasi ieu (urang resep sareng nuturkeun prinsip SIDID?). Ngabogaan alat kawas RxSwift di leungeun, janten mungkin pikeun ngajelaskeun naon sistem bakal ngalakukeun, sarta kumaha eta bakal ngalakukeun eta bakal di tempat séjén. Kusabab ieu organisasi kode anu langkung saé kahontal sareng kabacaan ningkat. Sacara rélatif, kodeu tiasa dibagi kana daptar eusi sareng bukuna sorangan.

Coroutines di Kotlin

RxSwift sareng coroutines di Kotlin - pilihan dina pamekaran sélulér ti AGIMA sareng GeekBrains
Guru kursus elektif Alexander Tizik: "Pamekaran modern merlukeun sarana téknis modern"

Naon anu bakal diajarkeun di fakultas GeekBrains salaku bagian tina kuartal branded?

Téori, ngabandingkeun sareng pendekatan anu sanés, conto praktis dina Kotlin murni sareng dina modél aplikasi Android. Sedengkeun pikeun latihan, siswa bakal dipintonkeun hiji aplikasi nu sagalana geus dihijikeun ka coroutines. Kanyataan yén kalolobaan aplikasi lengkep asynchronous sareng komputasi paralel. Tapi Kotlin coroutines ngidinan kode matak ngabingungkeun, hétérogén atawa overly kompléks jeung kinerja-nuntut diréduksi jadi hiji, gaya gampang-to-ngarti, gaining mangpaat dina palaksanaan bener jeung kinerja.

Urang bakal diajar nulis kode idiomatic dina coroutines nu solves masalah praktis tur kaharti dina glance kahiji sanajan tanpa pangaweruh jero kumaha coroutines jalan (anu teu bisa disebutkeun ngeunaan perpustakaan kawas RxJava). Urang ogé bakal ngartos kumaha ngagunakeun konsép anu langkung kompleks, sapertos modél aktor, pikeun ngarengsekeun masalah anu langkung kompleks, sapertos gudang data dina konsép MVI.

Ku jalan kitu, leuwih warta alus. Nalika élektif dirékam, pembaruan ka perpustakaan Kotlin Coroutines dileupaskeun, dimana kelasna muncul. Flow - jenis analog Flowable и Observable ti RxJava. Pembaruan dasarna ngajantenkeun fitur coroutine lengkep tina sudut pandang pamekar aplikasi. Leres, masih aya rohangan pikeun perbaikan: sanaos kanyataan yén berkat dukungan coroutines dina kotlin / pribumi, parantos tiasa nyerat aplikasi multi-platform di Kotlin sareng henteu kakurangan tina RxJava atanapi analog dina Kotlin murni. rojongan pikeun coroutines di kotlin / pribumi teu acan lengkep. Contona, euweuh konsép aktor. Sacara umum, tim Kotlin gaduh rencana pikeun ngadukung aktor anu langkung kompleks dina sadaya platform.

Kotlin Coroutines - kumaha aranjeunna ngabantosan pamekar Kotlin?

Coroutines nyadiakeun kasempetan gede pikeun nulis kode nu bisa dibaca, maintainable, jeung aman, Asynchronous, sarta concurrency. Anjeun oge bisa nyieun adapters pikeun frameworks Asynchronous sejen tur pendekatan nu mungkin geus dipaké dina codebase nu.

Kumaha Coroutines béda ti benang?

Tim Kotlin nelepon coroutines threads lightweight. Tambih Deui, coroutine tiasa ngabalikeun sababaraha nilai, sabab, dina inti na, coroutine mangrupikeun itungan anu ditunda. Éta henteu langsung gumantung kana utas sistem; utas ngan ukur ngalaksanakeun coroutines.

Masalah praktis naon anu tiasa direngsekeun nganggo Coroutine, anu henteu tiasa atanapi sesah direngsekeun nganggo Kotlin "murni"?

Sakur tugas anu teu sinkron, paralel, "kompetitif" direngsekeun saé nganggo coroutines - janten ngolah klik pangguna, online, atanapi ngalanggan apdet tina pangkalan data.

Dina Kotlin murni, masalah ieu direngsekeun dina cara nu sarua sakumaha di Java - kalayan bantuan rébuan frameworks, nu masing-masing boga pro jeung kontra sorangan, tapi taya sahijina boga rojongan tingkat basa.

Salaku kacindekan, éta patut disebutkeun yen duanana electives (jeung kursus utama teuing) diropéa luyu jeung parobahan dina kaayaan éksternal. Upami apdet penting némbongan dina basa atanapi kerangka, guru ngémutan ieu sareng ngarobih program. Sadaya ieu ngamungkinkeun anjeun pikeun ngajaga ramo anjeun dina pulsa prosés pangwangunan, janten nyarios.

sumber: www.habr.com

Tambahkeun komentar