RxSwift және Котлиндегі корутиндер - AGIMA және GeekBrains ұсынған мобильді дамудағы таңдаулы пән

RxSwift және Котлиндегі корутиндер - AGIMA және GeekBrains ұсынған мобильді дамудағы таңдаулы пән

Білім жақсы, тек керемет. Алынған деректерді «пассивті сақтау» күйінен «белсенді пайдалану» күйіне көшіру үшін де тәжірибе қажет. Теориялық дайындық қаншалықты жақсы болса да, «далада» жұмыс істеу керек. Жоғарыда айтылғандар кез келген дерлік оқу саласына, соның ішінде, әрине, бағдарламалық жасақтаманы әзірлеуге қатысты.

Биылғы жылы GeekBrains GeekUniversity онлайн университетінің мобильді даму факультетінің бір бөлігі ретінде AGIMA интерактивті агенттігімен жұмыс істей бастады, оның командасы кәсіби әзірлеушілер болып табылады (олар күрделі жүктемелі жобаларды, корпоративтік порталдарды және мобильді қосымшаларды жасайды, барлығы осы). AGIMA және GeekBrains мобильді қосымшаларды әзірлеудің практикалық мәселелеріне терең бойлау үшін таңдау курсын жасады.

Күні кеше iOS маманы Игорь Веденеевпен және Android жүйесіне маманданған Александр Тизикпен сөйлестік. Олардың арқасында мобильді даму бойынша факультативтік пән практикалық тұрғыдан байыды RxSwift шеңбері бойынша арнайы курс и Котлиндегі корутиндер. Бұл мақалада әзірлеушілер бағдарламашылар үшін әр саланың маңыздылығы туралы айтады.

Мысал ретінде RxSwift көмегімен iOS жүйесінде реактивті бағдарламалау

RxSwift және Котлиндегі корутиндер - AGIMA және GeekBrains ұсынған мобильді дамудағы таңдаулы пән
Таңдау пәнінің мұғалімі Игорь Веденеев: «RxSwift көмегімен сіздің өтініміңіз ұшып кетеді»

Факультативтік сабақ кезінде студенттер қандай ақпарат алады?

Біз рамканың мүмкіндіктері туралы ғана емес, сонымен қатар оны классикалық MVVM + RxSwift комбинациясында қалай пайдалану керектігін көрсетеміз. Бірнеше практикалық мысалдар да талқыланады. Алынған деректерді біріктіру үшін біз өрістің жұмыс жағдайларына мүмкіндігінше жақын қосымшаны жазамыз. Бұл музыканы іздеу қолданбасы болады iTunes іздеу API. Онда біз барлық ең жақсы тәжірибелерді қолданамыз, сонымен қатар MVC парадигмасында RxSwift пайдаланудың қарапайым нұсқасын қарастырамыз.

RxSwift - iOS бағдарламашысына бұл негіз не үшін қажет, ол әзірлеушінің өмірін қалай жеңілдетеді?

RxSwift ықшамдары оқиғалар ағындарымен және нысандар арасындағы байланыстармен жұмыс істейді. Ең қарапайым және ең айқын мысал - байланыстырулар: мысалы, интерфейсті жай ғана viewModel айнымалысында жаңа мәндерді орнату арқылы жаңартуға болады. Осылайша, интерфейс деректерге негізделген. Сонымен қатар, RxSwift жүйені декларативті стильде сипаттауға мүмкіндік береді, бұл кодты ұйымдастыруға және оқу мүмкіндігін арттыруға мүмкіндік береді. Мұның бәрі қосымшаларды тиімдірек дамытуға көмектеседі.

Әзірлеуші ​​үшін құрылымды білу де түйіндемеде жақсы плюс болып табылады, өйткені реактивті бағдарламалауды түсіну, әсіресе RxSwift тәжірибесі нарықта бағаланады.

Неліктен осы нақты құрылымды басқаларға қарағанда таңдау керек?

RxSwift ең үлкен қауымдастыққа ие. Яғни, әзірлеушінің алдында тұрған мәселені біреу шешіп қойған болуы ықтимал. Сондай-ақ қораптан көптеген байлаулар. Сонымен қатар, RxSwift ReactiveX бөлігі болып табылады. Бұл Android үшін аналогы бар екенін білдіреді, мысалы (RxJava, RxKotlin) және шеберханадағы әріптестер кейбіреулер iOS-пен, басқалары Android-пен жұмыс істейтініне қарамастан, бір-бірімен бір тілде сөйлесе алады.

Фреймворк үнемі жаңартылып отырады, кішігірім қателер түзетіледі, Swift-тің жаңа нұсқаларының мүмкіндіктеріне қолдау көрсетіледі және жаңа байланыстар қосылады. RxSwift ашық бастапқы код болғандықтан, сіз барлық өзгерістерді қадағалай аласыз. Сонымен қатар, оларды өзіңіз қосуға болады.

RxSwift қай жерде қолданылуы керек?

  1. Байланыстар. Әдетте, біз UI туралы, деректердің өзгеруіне жауап беретіндей интерфейсті өзгерту мүмкіндігі туралы айтып отырмыз және интерфейске жаңарту уақыты келді деп нақты айтпаймыз.
  2. Компоненттер мен операциялар арасындағы байланыс. Бір ғана мысал. Біз желіден деректер тізімін алуымыз керек. Шындығында, бұл қарапайым операция емес. Ол үшін сұрауды жіберу, жауапты объектілер массивіне салыстыру, оны дерекқорға сақтау және UI-ге жіберу қажет. Әдетте, бұл операцияларды орындау үшін әртүрлі компоненттер жауап береді (біз принциптерді жақсы көреміз және ұстанамыз СОЛИД?). Қолда RxSwift сияқты құрал болса, жүйе НЕ істейтінін және оны ҚАЛАЙ істейтінін басқа жерлерде сипаттауға болады. Осының арқасында кодты жақсырақ ұйымдастыруға қол жеткізіледі және оқылу мүмкіндігі артады. Салыстырмалы түрде айтқанда, кодты мазмұн кестесіне және кітаптың өзіне бөлуге болады.

Котлиндегі корутиндер

RxSwift және Котлиндегі корутиндер - AGIMA және GeekBrains ұсынған мобильді дамудағы таңдаулы пән
Таңдау курсының мұғалімі Александр Тизик: «Заманауи даму заманауи техникалық құралдарды қажет етеді»

GeekBrains факультетінде брендтік тоқсанның бөлігі ретінде не оқытылады?

Теория, басқа тәсілдермен салыстыру, таза Котлиндегі және Android қолданбалы моделіндегі практикалық мысалдар. Тәжірибеге келетін болсақ, студенттерге барлығы корутиндерге байланыстырылған қосымша көрсетіледі. Өйткені, қосымшалардың көпшілігі толығымен асинхронды және параллельді есептеулер болып табылады. Бірақ Котлин корутиндері шатастыратын, гетерогенді немесе тым күрделі және өнімділікті талап ететін кодты біртұтас, түсінуге оңай стильге дейін қысқартуға мүмкіндік береді, бұл дұрыс орындау мен өнімділікте артықшылықтарға ие болады.

Біз корутиндерде практикалық мәселелерді шешетін және бір қарағанда түсінікті, тіпті корутиндердің қалай жұмыс істейтінін терең білмей-ақ түсінікті болатын идиоматикалық кодты жазуды үйренеміз (бұл RxJava сияқты кітапханалар туралы айту мүмкін емес). Сондай-ақ, біз MVI тұжырымдамасындағы деректер қоймасы сияқты күрделі есептерді шешу үшін актер моделі сияқты күрделі ұғымдарды қалай пайдалану керектігін түсінеміз.

Айтпақшы, жақсы жаңалықтар көп. Таңдау пәні жазылып жатқанда, Kotlin Coroutines кітапханасының жаңартуы шығарылды, онда сынып пайда болды. Flow - түрлерінің аналогы Flowable и Observable RxJava сайтынан. Жаңарту іс жүзінде қолданба әзірлеушісінің көзқарасы бойынша coroutines мүмкіндігін толық етеді. Рас, әлі де жетілдіретін орын бар: kotlin/native тіліндегі корутиндерді қолдаудың арқасында Kotlin-де көп платформалы қосымшаларды жазуға және RxJava немесе таза Котлиндегі аналогтардың жетіспеушілігінен зардап шекпейтініне қарамастан, kotlin/native тіліндегі корутиндерге қолдау әлі аяқталмаған. Мысалы, актерлер деген ұғым жоқ. Жалпы, Котлин командасы барлық платформаларда күрделірек актерлерді қолдауды жоспарлап отыр.

Kotlin Coroutines - олар Kotlin әзірлеушісіне қалай көмектеседі?

Корутиндер оқылатын, қолдау көрсетілетін және қауіпсіз, асинхронды және параллельді кодты жазуға тамаша мүмкіндік береді. Сондай-ақ код базасында бұрыннан пайдаланылуы мүмкін басқа асинхронды құрылымдар мен тәсілдер үшін адаптерлер жасай аласыз.

Корутиндердің жіптерден айырмашылығы неде?

Котлин командасы корутиндерді жеңіл жіптер деп атайды. Сонымен қатар, корутин кейбір мәнді қайтара алады, өйткені оның негізінде корутин тоқтатылған есептеу болып табылады. Ол жүйелік ағындарға тікелей тәуелді емес; ағындар тек корутиндерді орындайды.

«Таза» Котлин көмегімен шешуге болмайтын немесе қиын болатын Корутин көмегімен қандай практикалық мәселелерді шешуге болады?

Кез келген асинхронды, параллельді, «бәсекелестік» тапсырмалар корутиндердің көмегімен жақсы шешіледі - ол пайдаланушы шертулерін өңдеу, желіге өту немесе дерекқордан жаңартуларға жазылу.

Таза Котлинде бұл мәселелер Java-дағы сияқты шешіледі - мыңдаған фреймворктардың көмегімен, олардың әрқайсысының өз артықшылықтары мен кемшіліктері бар, бірақ олардың ешқайсысы тілдік деңгейде қолдау көрсетпейді.

Қорытындылай келе, екі элективті пән де (негізгі пәндер де) сыртқы жағдайлардың өзгеруіне сәйкес жаңартылғанын айта кеткен жөн. Маңызды жаңартулар тілдерде немесе фреймворктарда пайда болса, мұғалімдер мұны ескереді және бағдарламаны өзгертеді. Мұның бәрі, былайша айтқанда, даму процесінің импульсінде саусағыңызды ұстауға мүмкіндік береді.

Ақпарат көзі: www.habr.com

пікір қалдыру