RxSwift dan coroutine dalam Kotlin - elektif dalam pembangunan mudah alih daripada AGIMA dan GeekBrains

RxSwift dan coroutine dalam Kotlin - elektif dalam pembangunan mudah alih daripada AGIMA dan GeekBrains

Ilmu itu bagus, cuma hebat. Tetapi latihan juga diperlukan supaya anda boleh menggunakan data yang diterima, memindahkannya daripada status "storan pasif" kepada status "penggunaan aktif". Tidak kira betapa baiknya latihan teori, kerja "di lapangan" masih diperlukan. Perkara di atas digunakan untuk hampir semua bidang pengajian, termasuk, sudah tentu, pembangunan perisian.

Tahun ini, GeekBrains, sebagai sebahagian daripada fakulti pembangunan mudah alih universiti dalam talian GeekUniversity, mula bekerjasama dengan agensi interaktif AGIMA, yang pasukannya adalah pembangun profesional (mereka mencipta projek beban tinggi yang kompleks, portal korporat dan aplikasi mudah alih, itu sahaja). AGIMA dan GeekBrains telah mencipta elektif untuk menyelami isu-isu praktikal pembangunan aplikasi mudah alih.

Pada hari lain kami bercakap dengan Igor Vedeneev, pakar iOS dan Alexander Tizik, pakar dalam Android. Terima kasih kepada mereka, elektif pembangunan mudah alih diperkaya dengan praktikal kursus khas pada rangka kerja RxSwift ΠΈ coroutine dalam Kotlin. Dalam artikel ini, pembangun bercakap tentang kepentingan setiap kawasan untuk pengaturcara.

Pengaturcaraan reaktif dalam iOS menggunakan RxSwift sebagai contoh

RxSwift dan coroutine dalam Kotlin - elektif dalam pembangunan mudah alih daripada AGIMA dan GeekBrains
Guru elektif Igor Vedeneev: "Dengan RxSwift, permohonan anda akan terbang"

Apakah maklumat yang pelajar terima semasa elektif?

Kami bercakap bukan sahaja tentang keupayaan rangka kerja, tetapi juga menunjukkan cara menggunakannya dalam gabungan MVVM + RxSwift klasik. Beberapa contoh praktikal juga dibincangkan. Untuk menyatukan data yang diperoleh, kami menulis aplikasi yang sedekat mungkin dengan keadaan operasi medan. Ini akan menjadi aplikasi carian muzik menggunakan API Carian iTunes. Di sana kami akan menggunakan semua Amalan Terbaik, serta mempertimbangkan pilihan yang lebih mudah untuk menggunakan RxSwift dalam paradigma MVC.

RxSwift - mengapa pengaturcara iOS memerlukan rangka kerja ini, bagaimanakah ia menjadikan hidup lebih mudah untuk pembangun?

RxSwift menyelaraskan berfungsi dengan aliran acara dan sambungan antara objek. Contoh paling mudah dan paling jelas ialah pengikatan: contohnya, anda boleh mengemas kini antara muka dengan hanya menetapkan nilai baharu dalam pembolehubah dalam viewModel. Oleh itu, antara muka menjadi dipacu data. Di samping itu, RxSwift membolehkan anda menerangkan sistem dalam gaya deklaratif, yang membolehkan anda mengatur kod anda dan meningkatkan kebolehbacaan. Semua ini membantu membangunkan aplikasi dengan lebih cekap.

Bagi pembangun, pengetahuan tentang rangka kerja juga merupakan tambahan yang baik pada resume, kerana pemahaman tentang pengaturcaraan reaktif, dan terutamanya pengalaman dengan RxSwift, dihargai di pasaran.

Mengapa memilih rangka kerja khusus ini berbanding yang lain?

RxSwift mempunyai komuniti terbesar. Iaitu, terdapat peluang yang lebih besar bahawa masalah yang dihadapi oleh pemaju telah diselesaikan oleh seseorang. Juga sejumlah besar pengikatan di luar kotak. Selain itu, RxSwift adalah sebahagian daripada ReactiveX. Ini bermakna terdapat analog untuk Android, contohnya (RxJava, RxKotlin), dan rakan sekerja dalam bengkel boleh bercakap bahasa yang sama antara satu sama lain, walaupun pada hakikatnya ada yang bekerja dengan iOS, yang lain dengan Android.

Rangka kerja sentiasa dikemas kini, pepijat kecil diperbetulkan, sokongan untuk ciri daripada versi baharu Swift ditambah dan pengikatan baharu ditambah. Memandangkan RxSwift adalah sumber terbuka, anda boleh mengikuti semua perubahan. Selain itu, adalah mungkin untuk menambahnya sendiri.

Di manakah RxSwift harus digunakan?

  1. Pengikatan. Sebagai peraturan, kita bercakap tentang UI, keupayaan untuk menukar UI, seolah-olah bertindak balas terhadap perubahan data, dan tidak secara eksplisit memberitahu antara muka bahawa sudah tiba masanya untuk mengemas kini.
  2. Hubungan antara komponen dan operasi. Sekadar contoh. Kita perlu mendapatkan senarai data daripada rangkaian. Sebenarnya, ini bukan operasi yang mudah. Untuk melakukan ini, anda perlu menghantar permintaan, memetakan respons ke dalam tatasusunan objek, menyimpannya ke pangkalan data dan menghantarnya ke UI. Sebagai peraturan, komponen yang berbeza bertanggungjawab untuk melaksanakan operasi ini (kami suka dan mengikut prinsip PEPEJAL?). Mempunyai alat seperti RxSwift di tangan, ia menjadi mungkin untuk menerangkan APA yang sistem akan lakukan, dan BAGAIMANA ia akan melakukannya di tempat lain. Disebabkan ini organisasi kod yang lebih baik dicapai dan kebolehbacaan meningkat. Secara relatifnya, kod tersebut boleh dibahagikan kepada jadual kandungan dan buku itu sendiri.

Coroutine di Kotlin

RxSwift dan coroutine dalam Kotlin - elektif dalam pembangunan mudah alih daripada AGIMA dan GeekBrains
Guru kursus elektif Alexander Tizik: "Pembangunan moden memerlukan cara teknikal moden"

Apakah yang akan diajar di fakulti GeekBrains sebagai sebahagian daripada suku berjenama?

Teori, perbandingan dengan pendekatan lain, contoh praktikal dalam Kotlin tulen dan dalam model aplikasi Android. Bagi latihan, pelajar akan ditunjukkan aplikasi di mana semuanya terikat dengan coroutine. Hakikatnya ialah kebanyakan aplikasi adalah pengkomputeran tak segerak dan selari sepenuhnya. Tetapi coroutine Kotlin membenarkan kod yang mengelirukan, heterogen atau terlalu kompleks dan menuntut prestasi dikurangkan kepada satu gaya yang mudah difahami, memperoleh manfaat dalam pelaksanaan dan prestasi yang betul.

Kami akan belajar menulis kod idiomatik dalam coroutine yang menyelesaikan masalah praktikal dan boleh difahami pada pandangan pertama walaupun tanpa pengetahuan mendalam tentang cara coroutine berfungsi (yang tidak boleh dikatakan tentang perpustakaan seperti RxJava). Kami juga akan memahami cara menggunakan konsep yang lebih kompleks, seperti model aktor, untuk menyelesaikan masalah yang lebih kompleks, seperti gudang data dalam konsep MVI.

By the way, lebih banyak berita baik. Semasa elektif sedang direkodkan, kemas kini kepada perpustakaan Kotlin Coroutines telah dikeluarkan, di mana kelas muncul Flow - jenis analog Flowable ΠΈ Observable daripada RxJava. Kemas kini pada dasarnya menjadikan ciri coroutine lengkap dari sudut pandangan pembangun aplikasi. Benar, masih ada ruang untuk penambahbaikan: walaupun pada hakikatnya terima kasih kepada sokongan coroutine dalam kotlin/asli, sudah mungkin untuk menulis aplikasi berbilang platform dalam Kotlin dan tidak mengalami kekurangan RxJava atau analog dalam Kotlin tulen, sokongan untuk coroutine dalam kotlin/asli masih belum lengkap. Sebagai contoh, tiada konsep pelakon. Secara umum, pasukan Kotlin mempunyai rancangan untuk menyokong pelakon yang lebih kompleks pada semua platform.

Kotlin Coroutines - bagaimana mereka membantu pembangun Kotlin?

Coroutines memberikan peluang yang baik untuk menulis kod yang boleh dibaca, boleh diselenggara dan selamat, tak segerak dan serentak. Anda juga boleh mencipta penyesuai untuk rangka kerja tak segerak dan pendekatan lain yang mungkin sudah digunakan dalam pangkalan kod.

Bagaimanakah Coroutine berbeza daripada benang?

Pasukan Kotlin memanggil coroutine sebagai benang ringan. Selain itu, coroutine boleh mengembalikan beberapa nilai kerana, pada terasnya, coroutine ialah pengiraan yang digantung. Ia tidak bergantung secara langsung pada urutan sistem; utas hanya melaksanakan coroutine.

Apakah masalah praktikal yang boleh diselesaikan menggunakan Coroutine, yang tidak boleh atau sukar diselesaikan menggunakan Kotlin "tulen"?

Sebarang tugasan tak segerak, selari, "berdaya saing" diselesaikan dengan baik menggunakan coroutine - sama ada memproses klik pengguna, pergi ke dalam talian atau melanggan kemas kini daripada pangkalan data.

Dalam Kotlin tulen, masalah ini diselesaikan dengan cara yang sama seperti di Jawa - dengan bantuan beribu-ribu rangka kerja, setiap satunya mempunyai kebaikan dan keburukan sendiri, tetapi tiada satu pun daripada mereka mempunyai sokongan tahap bahasa.

Sebagai kesimpulan, adalah wajar untuk mengatakan bahawa kedua-dua elektif (dan kursus utama juga) dikemas kini mengikut perubahan dalam keadaan luaran. Jika kemas kini penting muncul dalam bahasa atau rangka kerja, guru mengambil kira perkara ini dan mengubah suai program. Semua ini membolehkan anda mengekalkan jari anda pada nadi proses pembangunan, boleh dikatakan.

Sumber: www.habr.com

Tambah komen