Kotlin-də RxSwift və coroutines - AGIMA və GeekBrains-dən mobil inkişafda seçmə.

Kotlin-də RxSwift və coroutines - AGIMA və GeekBrains-dən mobil inkişafda seçmə.

Bilik yaxşıdır, sadəcə əladır. Alınan məlumatları "passiv saxlama" vəziyyətindən "aktiv istifadə" vəziyyətinə köçürmək üçün istifadə etmək üçün təcrübə də lazımdır. Nəzəri təlim nə qədər yaxşı olsa da, “sahədə” işləmək hələ də tələb olunur. Yuxarıda göstərilənlər demək olar ki, hər hansı bir təhsil sahəsinə, o cümlədən, əlbəttə ki, proqram təminatına aiddir.

Bu il GeekBrains onlayn universitet GeekUniversity-nin mobil inkişaf fakültəsinin bir hissəsi olaraq, komandası peşəkar tərtibatçılardan ibarət (onlar mürəkkəb yüksək yüklü layihələr, korporativ portallar və mobil proqramlar yaradırlar, hamısı) AGIMA interaktiv agentliyi ilə işləməyə başladı. AGIMA və GeekBrains mobil proqramların işlənib hazırlanmasının praktiki məsələlərinə dərindən nəzər salmaq üçün seçmə dərsi yaratmışdır.

Ötən gün iOS üzrə mütəxəssis İqor Vedeneyev və Android üzrə ixtisaslaşmış Aleksandr Tiziklə danışdıq. Onların sayəsində mobil inkişaf üzrə seçmə fənni praktiki ilə zənginləşdirdi RxSwift çərçivəsində xüsusi kurs и Kotlindəki korutinlər. Bu yazıda tərtibatçılar proqramçılar üçün hər bir sahənin əhəmiyyətindən danışırlar.

Nümunə olaraq RxSwift-dən istifadə edərək iOS-da reaktiv proqramlaşdırma

Kotlin-də RxSwift və coroutines - AGIMA və GeekBrains-dən mobil inkişafda seçmə.
Seçilmiş müəllim İqor Vedeneev: "RxSwift ilə ərizəniz uçacaq"

Seçmə zamanı tələbələr hansı məlumatları alırlar?

Biz təkcə çərçivənin imkanları haqqında danışmırıq, həm də klassik MVVM + RxSwift birləşməsində necə istifadə olunacağını göstəririk. Bir neçə praktik nümunə də müzakirə olunur. Əldə edilən məlumatları birləşdirmək üçün sahənin iş şərtlərinə mümkün qədər yaxın olan bir ərizə yazırıq. Bu istifadə edərək musiqi axtarış proqramı olacaq iTunes Axtarış API. Orada biz bütün Ən Yaxşı Təcrübələri tətbiq edəcəyik, üstəlik MVC paradiqmasında RxSwift-dən istifadə üçün daha sadə variantı nəzərdən keçirəcəyik.

RxSwift - iOS proqramçısına bu çərçivə niyə lazımdır, o, tərtibatçının həyatını necə asanlaşdırır?

RxSwift aerodinamikləri hadisə axınları və obyektlər arasında əlaqə ilə işləyir. Ən sadə və ən bariz nümunə bağlamalardır: məsələn, siz sadəcə olaraq viewModel-də dəyişəndə ​​yeni dəyərlər təyin etməklə interfeysi yeniləyə bilərsiniz. Beləliklə, interfeys verilənlərə əsaslanan olur. Bundan əlavə, RxSwift sistemi deklarativ üslubda təsvir etməyə imkan verir ki, bu da kodunuzu təşkil etməyə və oxunaqlılığı artırmağa imkan verir. Bütün bunlar tətbiqləri daha səmərəli şəkildə inkişaf etdirməyə kömək edir.

Bir tərtibatçı üçün çərçivə haqqında bilik də CV-də yaxşı bir üstünlükdür, çünki reaktiv proqramlaşdırma anlayışı və xüsusən RxSwift ilə təcrübə bazarda qiymətləndirilir.

Niyə başqaları üzərində bu xüsusi çərçivəni seçirsiniz?

RxSwift ən böyük icmaya malikdir. Yəni, tərtibatçının qarşılaşdığı problemin artıq kimsə tərəfindən həll olunma şansı daha çoxdur. Həmçinin qutudan çoxlu sayda bağlamalar. Üstəlik, RxSwift ReactiveX-in bir hissəsidir. Bu o deməkdir ki, Android üçün analoq var, məsələn (RxJava, RxKotlin) və emalatxanadakı həmkarlar bəzilərinin iOS, digərlərinin Android ilə işləməsinə baxmayaraq, bir-biri ilə eyni dildə danışa bilərlər.

Çərçivə daim yenilənir, kiçik səhvlər düzəldilir, Swift-in yeni versiyalarının xüsusiyyətlərinə dəstək əlavə edilir və yeni bağlamalar əlavə olunur. RxSwift açıq mənbə olduğundan, bütün dəyişiklikləri izləyə bilərsiniz. Üstəlik, onları özünüz əlavə etmək mümkündür.

RxSwift harada istifadə edilməlidir?

  1. Bağlamalar. Bir qayda olaraq, UI-dən, UI-ni dəyişdirmək qabiliyyətindən danışırıq, sanki məlumat dəyişikliklərinə reaksiya veririk və interfeysə yeniləmə vaxtının gəldiyini açıq şəkildə bildirmirik.
  2. Komponentlər və əməliyyatlar arasında əlaqə. Sadəcə bir misal. Şəbəkədən məlumatların siyahısını almalıyıq. Əslində bu elə də sadə əməliyyat deyil. Bunu etmək üçün siz sorğu göndərməli, cavabı obyektlər massivinə çəkməli, verilənlər bazasında saxlayıb UI-yə göndərməlisiniz. Bir qayda olaraq, bu əməliyyatları yerinə yetirmək üçün müxtəlif komponentlər məsuliyyət daşıyır (biz prinsipləri sevir və onlara əməl edirik SOLID?). Əlinizdə RxSwift kimi bir alətə sahib olmaqla, sistemin NƏ edəcəyini və NECƏ edəcəyini başqa yerlərdə təsvir etmək mümkün olur. Bunun sayəsində kodun daha yaxşı təşkilinə nail olunur və oxunaqlılığı artır. Nisbətən desək, kodu məzmun cədvəlinə və kitabın özünə bölmək olar.

Kotlindəki korutinlər

Kotlin-də RxSwift və coroutines - AGIMA və GeekBrains-dən mobil inkişafda seçmə.
Seçmə fənn müəllimi Aleksandr Tizik: “Müasir inkişaf müasir texniki vasitələr tələb edir”

Brendli rübün bir hissəsi olaraq GeekBrains fakültəsində nə öyrədiləcək?

Nəzəriyyə, digər yanaşmalarla müqayisə, təmiz Kotlin və Android proqram modelində praktiki nümunələr. Təcrübəyə gəlincə, tələbələrə hər şeyin koroutinlərə bağlı olduğu bir tətbiq göstəriləcək. Fakt budur ki, tətbiqlərin əksəriyyəti tamamilə asinxron və paralel hesablamalardır. Lakin Kotlin koroutinləri çaşdırıcı, heterojen və ya həddən artıq mürəkkəb və performans tələb edən kodu vahid, asan başa düşülən bir üsluba endirməyə imkan verir, düzgün icra və performansda üstünlüklər əldə edir.

Biz praktiki problemləri həll edən və ilk baxışdan başa düşülən koroutinlərdə idiomatik kod yazmağı öyrənəcəyik, hətta koroutinlərin necə işlədiyini dərindən bilmədən (bunu RxJava kimi kitabxanalar haqqında demək olmaz). MVI konsepsiyasındakı məlumat anbarı kimi daha mürəkkəb problemləri həll etmək üçün aktyor modeli kimi daha mürəkkəb anlayışlardan necə istifadə edəcəyimizi də anlayacağıq.

Yeri gəlmişkən, daha yaxşı xəbər. Seçmə dərsi qeydə alınarkən, sinifin göründüyü Kotlin Coroutines kitabxanasına bir yeniləmə buraxıldı. Flow - növlərin analoqu Flowable и Observable RxJava-dan. Yeniləmə mahiyyətcə proqram tərtibatçısının nöqteyi-nəzərindən koroutin funksiyasını tam edir. Düzdür, hələ də təkmilləşdirmə üçün yer var: kotlin/native-də koroutinlərin dəstəyi sayəsində artıq Kotlin-də çox platformalı proqramlar yazmaq mümkündür və RxJava və ya təmiz Kotlin-də analoqlardan əziyyət çəkmir, kotlin/native-də koroutinlərə dəstək hələ tamamlanmayıb. Məsələn, aktyor anlayışı yoxdur. Ümumiyyətlə, Kotlin komandasının bütün platformalarda daha mürəkkəb aktyorları dəstəkləmək planları var.

Kotlin Coroutines - onlar Kotlin tərtibatçısına necə kömək edirlər?

Coroutines oxuna bilən, saxlanıla bilən və təhlükəsiz, asinxron və paralel kod yazmaq üçün əla fürsət təqdim edir. Siz həmçinin kod bazasında artıq istifadə oluna bilən digər asinxron çərçivələr və yanaşmalar üçün adapterlər yarada bilərsiniz.

Coroutines iplərdən nə ilə fərqlənir?

Kotlin komandası koroutinləri yüngül iplər adlandırır. Üstəlik, bir koroutin müəyyən dəyər qaytara bilər, çünki koroutin əsas etibarilə dayandırılmış hesablamadır. O, birbaşa sistem iplərindən asılı deyil, iplər yalnız koroutinləri yerinə yetirir.

“Saf” Kotlin istifadə edərək həll edə bilməyən və ya çətin olan Coroutine ilə hansı praktiki problemləri həll etmək olar?

İstənilən asinxron, paralel, “rəqabətli” vəzifələr koroutinlərdən istifadə etməklə yaxşı həll olunur - istər istifadəçi kliklərini emal edir, istər onlayn rejimdə olur, istərsə də verilənlər bazasından yeniləmələrə abunə olur.

Təmiz Kotlin-də bu problemlər Java-da olduğu kimi - minlərlə çərçivənin köməyi ilə həll edilir, hər birinin öz müsbət və mənfi cəhətləri var, lakin heç birində dil səviyyəsində dəstək yoxdur.

Nəticə olaraq qeyd etmək yerinə düşər ki, hər iki seçmə fən (və əsas kurslar da) xarici şəraitdə baş verən dəyişikliklərə uyğun olaraq yenilənir. Dillərdə və ya çərçivələrdə vacib yeniləmələr görünsə, müəllimlər bunu nəzərə alır və proqramı dəyişdirirlər. Bütün bunlar barmağınızı inkişaf prosesinin nəbzində tutmağa imkan verir, belə deyək.

Mənbə: www.habr.com

Добавить комментарий