RxSwift dhe korutina në Kotlin - një lëndë zgjedhore në zhvillimin celular nga AGIMA dhe GeekBrains

RxSwift dhe korutina në Kotlin - një lëndë zgjedhore në zhvillimin celular nga AGIMA dhe GeekBrains

Njohuria është e mirë, thjesht e madhe. Por praktika është gjithashtu e nevojshme në mënyrë që të mund të përdorni të dhënat e marra, duke i transferuar ato nga statusi i "ruajtjes pasive" në statusin "përdorim aktiv". Pavarësisht se sa i mirë është trajnimi teorik, ende kërkohet puna "në terren". Sa më sipër vlen për pothuajse çdo fushë studimi, duke përfshirë, natyrisht, zhvillimin e softuerit.

Këtë vit, GeekBrains, si pjesë e fakultetit të zhvillimit celular të universitetit në internet GeekUniversity, filloi të punojë me agjencinë interaktive AGIMA, ekipi i së cilës janë zhvillues profesionistë (ata krijojnë projekte komplekse me ngarkesë të lartë, portale të korporatave dhe aplikacione celulare, kjo është e gjitha). AGIMA dhe GeekBrains kanë krijuar një lëndë zgjedhore për një zhytje të thellë në çështjet praktike të zhvillimit të aplikacioneve celulare.

Kohët e fundit folëm me Igor Vedeneyev, një specialist i iOS, dhe Alexander Tizik, i cili specializohet në AndroidFalë tyre, kursi zgjedhor i zhvillimit celular është pasuruar me materiale praktike. kurs special mbi kornizën RxSwift О korutinat në Kotlin. Në këtë artikull, zhvilluesit flasin për rëndësinë e secilës zonë për programuesit.

Programimi reaktiv në iOS duke përdorur RxSwift si shembull

RxSwift dhe korutina në Kotlin - një lëndë zgjedhore në zhvillimin celular nga AGIMA dhe GeekBrains
Mësuesi me zgjedhje Igor Vedeneev: "Me RxSwift, aplikacioni juaj do të fluturojë"

ÇfarĂ« informacioni marrin studentĂ«t gjatĂ« lĂ«ndĂ«ve me zgjedhje?

Ne flasim jo vetëm për aftësitë e kornizës, por gjithashtu tregojmë se si ta përdorim atë në kombinimin klasik MVVM + RxSwift. Gjithashtu diskutohen disa shembuj praktik. Për të konsoliduar të dhënat e marra, ne shkruajmë një aplikacion që është sa më afër kushteve të funksionimit në terren. Ky do të jetë një aplikacion kërkimi muzikor duke përdorur iTunes Search API. Atje do të zbatojmë të gjitha praktikat më të mira, plus do të shqyrtojmë një opsion më të thjeshtë për përdorimin e RxSwift në paradigmën MVC.

RxSwift - pse një programues iOS ka nevojë për këtë kornizë, si e bën më të lehtë jetën për një zhvillues?

RxSwift riorganizon funksionon me rrjedhat e ngjarjeve dhe lidhjet midis objekteve. Shembulli më i thjeshtë dhe më i dukshëm janë lidhjet: për shembull, mund të përditësoni ndërfaqen thjesht duke vendosur vlera të reja në një variabël në ViewModel. Kështu, ndërfaqja bëhet e drejtuar nga të dhënat. Përveç kësaj, RxSwift ju lejon të përshkruani sistemin në një stil deklarativ, i cili ju lejon të organizoni kodin tuaj dhe të rrisni lexueshmërinë. E gjithë kjo ndihmon në zhvillimin e aplikacioneve në mënyrë më efikase.

Për një zhvillues, njohja e kornizës është gjithashtu një plus i mirë në një rezyme, pasi kuptimi i programimit reaktiv, dhe veçanërisht përvoja me RxSwift, vlerësohet në treg.

Pse të zgjidhni këtë kornizë të veçantë mbi të tjerët?

RxSwift ka komunitetin më të madh. Kjo do të thotë se ka më shumë mundësi që problemi me të cilin përballet një zhvillues të jetë zgjidhur tashmë. Ai gjithashtu ka një numër të madh lidhjesh të gatshme për përdorim. Për më tepër, RxSwift është pjesë e ReactiveX, që do të thotë se ka një ekuivalent për Android, për shembull (RxJava, RxKotlin), dhe kolegët në seminar mund të flasin me njëri-tjetrin në të njëjtën gjuhë, pavarësisht faktit se disa punojnë me iOS, të tjerë me Android.

Korniza përditësohet vazhdimisht, gabimet e vogla korrigjohen, shtohet mbështetja për veçoritë nga versionet e reja të Swift dhe shtohen lidhje të reja. Meqenëse RxSwift është me burim të hapur, mund të ndiqni të gjitha ndryshimet. Për më tepër, është e mundur t'i shtoni ato vetë.

Ku duhet përdorur RxSwift?

  1. Lidhjet. Si rregull, ne po flasim për UI, aftësinë për të ndryshuar UI, sikur të reagoni ndaj ndryshimeve të të dhënave dhe të mos i tregoni në mënyrë eksplicite ndërfaqes se është koha për të përditësuar.
  2. MarrĂ«dhĂ«nia ndĂ«rmjet komponentĂ«ve dhe operacioneve. VetĂ«m njĂ« shembull. Duhet tĂ« marrim njĂ« listĂ« tĂ« tĂ« dhĂ«nave nga rrjeti. NĂ« fakt, ky nuk Ă«shtĂ« njĂ« operacion kaq i thjeshtĂ«. PĂ«r ta bĂ«rĂ« kĂ«tĂ«, ju duhet tĂ« dĂ«rgoni njĂ« kĂ«rkesĂ«, tĂ« hartoni pĂ«rgjigjen nĂ« njĂ« grup objektesh, ta ruani atĂ« nĂ« bazĂ«n e tĂ« dhĂ«nave dhe ta dĂ«rgoni nĂ« UI. Si rregull, komponentĂ« tĂ« ndryshĂ«m janĂ« pĂ«rgjegjĂ«s pĂ«r kryerjen e kĂ«tyre operacioneve (ne i duam dhe i ndjekim parimet NGURTA?). Duke pasur nĂ« dorĂ« njĂ« mjet si RxSwift, bĂ«het e mundur tĂ« pĂ«rshkruhet ÇFARË do tĂ« bĂ«jĂ« sistemi dhe SI do tĂ« jetĂ« nĂ« vende tĂ« tjera. PĂ«r shkak tĂ« kĂ«saj arrihet organizimi mĂ« i mirĂ« i kodit dhe rritet lexueshmĂ«ria. Duke folur relativisht, kodi mund tĂ« ndahet nĂ« njĂ« tabelĂ« tĂ« pĂ«rmbajtjes dhe nĂ« vetĂ« librin.

Korutina në Kotlin

RxSwift dhe korutina në Kotlin - një lëndë zgjedhore në zhvillimin celular nga AGIMA dhe GeekBrains
Mësuesi i lëndës me zgjedhje Alexander Tizik: "Zhvillimi modern kërkon mjete teknike moderne"

ÇfarĂ« do tĂ« mĂ«sohet nĂ« fakultetin GeekBrains si pjesĂ« e tremujorit tĂ« markĂ«s?

Teoria, krahasimet me qasje tĂ« tjera, shembuj praktikĂ« nĂ« Kotlin tĂ« pastĂ«r dhe nĂ« model Android- aplikacione. Sa i pĂ«rket trajnimit praktik, studentĂ«ve do t'u tregohet njĂ« aplikacion qĂ« Ă«shtĂ« plotĂ«sisht i lidhur me korutinat. Shumica e aplikacioneve mbĂ«shteten shumĂ« nĂ« llogaritjet asinkrone dhe paralele. MegjithatĂ«, korutinat Kotlin lejojnĂ« kondensimin e kodit kompleks, heterogjen ose tepĂ«r kompleks dhe qĂ« kĂ«rkon shumĂ« performancĂ« nĂ« njĂ« stil tĂ« vetĂ«m, tĂ« lehtĂ« pĂ«r t’u kuptuar, duke arritur pĂ«rmirĂ«sime nĂ« korrektĂ«sinĂ« e ekzekutimit dhe performancĂ«n.

Do të mësojmë të shkruajmë kod idiomatik në korutina që zgjidh probleme praktike dhe është i kuptueshëm në shikim të parë edhe pa njohuri të thella se si funksionojnë korutinat (gjë që nuk mund të thuhet për bibliotekat si RxJava). Do të kuptojmë gjithashtu se si të përdorim koncepte më komplekse, siç është modeli i aktorit, për të zgjidhur probleme më komplekse, siç është magazina e të dhënave në konceptin MVI.

Nga rruga, më shumë lajme të mira. Gjatë regjistrimit të lëndës me zgjedhje, u lëshua një përditësim në bibliotekën Kotlin Coroutines, në të cilin u shfaq klasa Flow - analog i llojeve Flowable О Observable nga RxJava. Përditësimi në thelb e bën të plotë funksionin e korutinave nga këndvështrimi i zhvilluesit të aplikacionit. Vërtetë, ka ende vend për përmirësim: pavarësisht nga fakti se falë mbështetjes së korutinave në kotlin/native, tashmë është e mundur të shkruhen aplikacione me shumë platforma në Kotlin dhe të mos vuash nga mungesa e RxJava ose analoge në Kotlin të pastër, mbështetja për korutinat në kotlin/amtare nuk është ende e plotë. Për shembull, nuk ekziston koncepti i aktorëve. Në përgjithësi, ekipi Kotlin ka plane për të mbështetur aktorë më kompleksë në të gjitha platformat.

Kotlin Coroutines - si e ndihmojnë ata një zhvillues Kotlin?

Korutinat ofrojnë një mundësi të shkëlqyer për të shkruar kodin që është i lexueshëm, i mirëmbajtur dhe i sigurt, asinkron dhe i njëkohshëm. Ju gjithashtu mund të krijoni përshtatës për korniza dhe qasje të tjera asinkrone që mund të përdoren tashmë në bazën e kodeve.

Si ndryshojnë korutinat nga fijet?

Ekipi Kotlin i quan korutinat fije të lehta. Plus, një korutinë mund të kthejë një vlerë, sepse, në thelb, një korutinë është një llogaritje e pezulluar. Nuk varet drejtpërdrejt nga thread-et e sistemit; thread-et ekzekutojnë vetëm korutina.

Cilat probleme praktike mund të zgjidhen duke përdorur Coroutine, të cilat nuk mund ose janë të vështira për t'u zgjidhur duke përdorur Kotlin "të pastër"?

Çdo detyrĂ« asinkrone, paralele, "konkurruese" zgjidhet mirĂ« duke pĂ«rdorur korutina - qoftĂ« pĂ«rpunimi i klikimeve tĂ« pĂ«rdoruesve, futja nĂ« internet ose abonimi nĂ« pĂ«rditĂ«sime nga njĂ« bazĂ« tĂ« dhĂ«nash.

Në Kotlin të pastër, këto probleme zgjidhen në të njëjtën mënyrë si në Java - me ndihmën e mijëra kornizave, secila prej të cilave ka të mirat dhe të këqijat e veta, por asnjëra prej tyre nuk ka mbështetje të nivelit të gjuhës.

Si përfundim, vlen të thuhet se të dyja lëndët me zgjedhje (dhe lëndët kryesore gjithashtu) përditësohen në përputhje me ndryshimet në kushtet e jashtme. Nëse përditësime të rëndësishme shfaqen në gjuhë ose korniza, mësuesit e marrin parasysh këtë dhe modifikojnë programin. E gjithë kjo ju lejon të mbani gishtin në pulsin e procesit të zhvillimit, si të thuash.

Burimi: www.habr.com

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster