RxSwift և Coroutines in Kotlin-ում` բջջային զարգացման ընտրովի դասընթաց AGIMA-ից և GeekBrains-ից

RxSwift և Coroutines in Kotlin-ում` բջջային զարգացման ընտրովի դասընթաց AGIMA-ից և GeekBrains-ից

Գիտելիքը լավ է, պարզապես հիանալի: Բայց անհրաժեշտ է նաև պրակտիկա, որպեսզի կարողանաք օգտագործել ստացված տվյալները՝ դրանք «պասիվ պահեստավորման» կարգավիճակից տեղափոխելով «ակտիվ օգտագործման» կարգավիճակ։ Որքան էլ տեսական պատրաստվածությունը լավ լինի, «ոլորտում» աշխատանք դեռ պահանջվում է։ Վերոնշյալը վերաբերում է ուսումնասիրության գրեթե ցանկացած բնագավառին, ներառյալ, իհարկե, ծրագրային ապահովման մշակումը:

Այս տարի GeekBrains-ը, որպես GeekUniversity առցանց համալսարանի բջջային զարգացման ֆակուլտետի մաս, սկսեց աշխատել AGIMA ինտերակտիվ գործակալության հետ, որի թիմը պրոֆեսիոնալ ծրագրավորողներ են (նրանք ստեղծում են բարձր բեռնվածության բարդ նախագծեր, կորպորատիվ պորտալներ և բջջային հավելվածներ, ահա այս ամենը): AGIMA-ն և GeekBrains-ը ստեղծել են ընտրովի դասընթաց բջջային հավելվածների մշակման գործնական խնդիրների մեջ խորը ուսումնասիրության համար:

Օրերս զրուցեցինք iOS-ի մասնագետ Իգոր Վեդենեեւի եւ Android-ում մասնագիտացած Ալեքսանդր Տիզիկի հետ։ Նրանց շնորհիվ բջջային ծրագրավորման ընտրական առարկան հարստացավ գործնականով հատուկ դասընթաց RxSwift շրջանակի վերաբերյալ и կորուտիններ Կոտլինում. Այս հոդվածում մշակողները խոսում են ծրագրավորողների համար յուրաքանչյուր տարածքի կարևորության մասին:

Ռեակտիվ ծրագրավորում iOS-ում՝ օգտագործելով RxSwift-ը որպես օրինակ

RxSwift և Coroutines in Kotlin-ում` բջջային զարգացման ընտրովի դասընթաց AGIMA-ից և GeekBrains-ից
Ընտրովի ուսուցիչ Իգոր Վեդենեև. «RxSwift-ի հետ ձեր դիմումը կթռչի»

Ի՞նչ տեղեկատվություն են ստանում ուսանողները ընտրության ընթացքում:

Մենք խոսում ենք ոչ միայն շրջանակի հնարավորությունների մասին, այլև ցույց ենք տալիս, թե ինչպես օգտագործել այն դասական MVVM + RxSwift համակցությամբ: Քննարկվում են նաև մի քանի գործնական օրինակներ։ Ստացված տվյալները համախմբելու համար մենք գրում ենք ծրագիր, որը հնարավորինս մոտ է դաշտային աշխատանքային պայմաններին: Սա կլինի երաժշտության որոնման հավելված՝ օգտագործելով iTunes Search API. Այնտեղ մենք կկիրառենք բոլոր Լավագույն պրակտիկան, ինչպես նաև կքննարկենք RxSwift-ի օգտագործման ավելի պարզ տարբերակ MVC պարադիգմում:

RxSwift – ինչի՞ն է պետք iOS ծրագրավորողին այս շրջանակը, ինչպե՞ս է դա հեշտացնում ծրագրավորողի կյանքը:

RxSwift-ի հոսքերը աշխատում են իրադարձությունների հոսքերի և օբյեկտների միջև կապերի հետ: Ամենապարզ և ակնհայտ օրինակը կապերն են. օրինակ, դուք կարող եք թարմացնել ինտերֆեյսը` պարզապես նոր արժեքներ դնելով փոփոխականի մեջ viewModel-ում: Այսպիսով, ինտերֆեյսը դառնում է տվյալների վրա հիմնված: Բացի այդ, RxSwift-ը թույլ է տալիս նկարագրել համակարգը դեկլարատիվ ոճով, ինչը թույլ է տալիս կազմակերպել ձեր կոդը և բարձրացնել ընթերցելիությունը։ Այս ամենը նպաստում է հավելվածների ավելի արդյունավետ մշակմանը։

Մշակողի համար շրջանակի իմացությունը նույնպես լավ պլյուս է ռեզյումեի համար, քանի որ ռեակտիվ ծրագրավորման իմացությունը և հատկապես RxSwift-ի հետ ունեցած փորձը գնահատվում է շուկայում:

Ինչու՞ ընտրել այս կոնկրետ շրջանակը մյուսների փոխարեն:

RxSwift-ն ունի ամենամեծ համայնքը: Այսինքն՝ ավելի մեծ հավանականություն կա, որ ծրագրավորողի առջեւ ծառացած խնդիրն արդեն ինչ-որ մեկի կողմից լուծված է։ Նաև մեծ քանակությամբ կապանքներ տուփից դուրս: Ավելին, RxSwift-ը ReactiveX-ի մի մասն է: Սա նշանակում է, որ կա Android-ի անալոգը, օրինակ (RxJava, RxKotlin), և սեմինարի գործընկերները կարող են միմյանց հետ խոսել նույն լեզվով, չնայած այն հանգամանքին, որ ոմանք աշխատում են iOS-ով, մյուսները՝ Android-ով:

Շրջանակը մշտապես թարմացվում է, աննշան սխալները շտկվում են, ավելացվում է Swift-ի նոր տարբերակների գործառույթների աջակցությունը և ավելացվում են նոր կապեր: Քանի որ RxSwift-ը բաց կոդ է, կարող եք հետևել բոլոր փոփոխություններին: Ավելին, հնարավոր է դրանք ինքներդ ավելացնել։

Որտե՞ղ պետք է օգտագործվի RxSwift-ը:

  1. Ամրացումներ. Որպես կանոն, մենք խոսում ենք UI-ի մասին, UI-ն փոխելու ունակության մասին, կարծես արձագանքում ենք տվյալների փոփոխություններին և ինտերֆեյսին հստակորեն չասելով, որ ժամանակն է թարմացնել:
  2. Բաղադրիչների և գործողությունների միջև կապը: Պարզապես օրինակ. Մենք պետք է ստանանք տվյալների ցանկը ցանցից: Իրականում սա այնքան էլ պարզ գործողություն չէ։ Դա անելու համար դուք պետք է հարցում ուղարկեք, պատասխանը քարտեզագրեք օբյեկտների զանգվածի մեջ, պահեք այն տվյալների բազայում և ուղարկեք UI: Որպես կանոն, այս գործողությունների կատարման համար պատասխանատու են տարբեր բաղադրիչներ (մենք սիրում և հետևում ենք սկզբունքներին SOLID?): Ձեռքի տակ ունենալով RxSwift-ի նման գործիք՝ հնարավոր է դառնում նկարագրել, թե ԻՆՉ է անելու համակարգը և ԻՆՉՊԵՍ այն կանի դա այլ վայրերում: Դրա շնորհիվ է ձեռք բերվում կոդի ավելի լավ կազմակերպում և ընթեռնելիությունը մեծանում։ Համեմատաբար ասած՝ կոդը կարելի է բաժանել բովանդակության աղյուսակի և հենց գրքի։

Կորուտիններ Կոտլինում

RxSwift և Coroutines in Kotlin-ում` բջջային զարգացման ընտրովի դասընթաց AGIMA-ից և GeekBrains-ից
Ընտրությամբ դասախոս Ալեքսանդր Տիզիկ. «Ժամանակակից զարգացումը պահանջում է ժամանակակից տեխնիկական միջոցներ»

Ի՞նչ է դասավանդվելու GeekBrains-ի ֆակուլտետում որպես բրենդային եռամսյակի մաս:

Տեսություն, համեմատություններ այլ մոտեցումների հետ, գործնական օրինակներ մաքուր Կոտլինում և Android հավելվածի մոդելում։ Ինչ վերաբերում է պրակտիկային, ապա ուսանողներին կցուցադրվի մի հավելված, որտեղ ամեն ինչ կապված է կորուտինների հետ: Փաստն այն է, որ հավելվածների մեծ մասը լիովին ասինխրոն և զուգահեռ հաշվարկներ են: Բայց Kotlin-ի կոտորինները թույլ են տալիս շփոթեցնող, տարասեռ կամ չափազանց բարդ և կատարողականություն պահանջող ծածկագիրը վերածել մեկ, հեշտ հասկանալի ոճի՝ օգուտներ ստանալով ճիշտ կատարման և կատարման մեջ:

Մենք կսովորենք գրել իդիոմատիկ կոդ cooutine-ներում, որը լուծում է գործնական խնդիրներ և հասկանալի է առաջին հայացքից նույնիսկ առանց խորը իմացության, թե ինչպես են աշխատում cooutine-ները (ինչը չի կարելի ասել RxJava-ի նման գրադարանների մասին): Մենք նաև կհասկանանք, թե ինչպես օգտագործել ավելի բարդ հասկացություններ, ինչպիսին է դերասանի մոդելը, ավելի բարդ խնդիրներ լուծելու համար, ինչպես օրինակ տվյալների պահեստը MVI հայեցակարգում:

Ի դեպ, ավելի լավ նորություններ. Մինչ ընտրովի դասընթացը ձայնագրվում էր, թողարկվեց Kotlin Coroutines գրադարանի թարմացումը, որում հայտնվեց դասը Flow - տեսակների անալոգային Flowable и Observable RxJava-ից: Թարմացումը, ըստ էության, լրացնում է ծրագրերի գործառույթը հավելվածի մշակողի տեսանկյունից: Ճիշտ է, դեռ բարելավման տեղ կա. չնայած այն հանգամանքին, որ kotlin/native-ում coroutines-ի աջակցության շնորհիվ արդեն հնարավոր է գրել բազմահարթակ հավելվածներ Kotlin-ում և չտուժել RxJava-ի կամ մաքուր Կոտլինի անալոգների բացակայությունից, Կոտլինի/հայրենիի կորուտինների աջակցությունը դեռ ավարտված չէ: Օրինակ՝ դերասաններ հասկացություն չկա։ Ընդհանուր առմամբ, Կոտլինի թիմը ծրագրեր ունի աջակցելու ավելի բարդ դերասաններին բոլոր հարթակներում:

Kotlin Coroutines - ինչպե՞ս են նրանք օգնում Kotlin ծրագրավորողին:

Coroutine-ները հիանալի հնարավորություն են ընթեռնելի, պահպանվող և ապահով, ասինխրոն և միաժամանակյա կոդ գրելու համար: Կարող եք նաև ստեղծել ադապտերներ այլ ասինխրոն շրջանակների և մոտեցումների համար, որոնք կարող են արդեն օգտագործվել կոդերի բազայում:

Ինչպե՞ս են Coroutine-ները տարբերվում թելերից:

Կոտլինի թիմը կորուտիններն անվանում է թեթև թելեր: Բացի այդ, կորուտինը կարող է վերադարձնել որոշակի արժեք, քանի որ իր հիմքում կորուտինը կասեցված հաշվարկ է: Այն ուղղակիորեն կախված չէ համակարգի թելերից, թելերը կատարում են միայն կորուտիններ:

Ի՞նչ գործնական խնդիրներ կարելի է լուծել Coroutine-ի միջոցով, որոնք չեն կարող կամ դժվար է լուծել «մաքուր» Կոտլինի միջոցով:

Ցանկացած ասինխրոն, զուգահեռ, «մրցակցային» առաջադրանք լավ է լուծվում՝ օգտագործելով կորուտինները՝ լինի դա օգտագործողի կտտոցների մշակում, առցանց մտնելու, թե տվյալների բազայի թարմացումներին բաժանորդագրվելը:

Մաքուր Կոտլինում այս խնդիրները լուծվում են այնպես, ինչպես Java-ում՝ հազարավոր շրջանակների օգնությամբ, որոնցից յուրաքանչյուրն ունի իր դրական և բացասական կողմերը, բայց դրանցից ոչ մեկը չունի լեզվի մակարդակի աջակցություն:

Որպես վերջաբան, հարկ է նշել, որ և՛ ընտրովի առարկաները (և հիմնական դասընթացները նույնպես) թարմացվում են արտաքին պայմանների փոփոխությանը համապատասխան։ Եթե ​​կարևոր թարմացումները հայտնվում են լեզուներում կամ շրջանակներում, ուսուցիչները դա հաշվի են առնում և փոփոխում են ծրագիրը: Այս ամենը թույլ է տալիս մատը պահել զարգացման գործընթացի, այսպես ասած, զարկերակի վրա։

Source: www.habr.com

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