RxSwift жана Котлиндеги coroutines - AGIMA жана GeekBrains мобилдик өнүктүрүү боюнча тандалма.

RxSwift жана Котлиндеги coroutines - AGIMA жана GeekBrains мобилдик өнүктүрүү боюнча тандалма.

Билим жакшы, жөн гана сонун. Ал эми алынган маалыматтарды “пассивдүү сактоо” абалынан “активдүү колдонуу” абалына өткөрүп берүү үчүн да практика керек. Теориялык даярдыгы канчалык жакшы болсо да, «талаада» иштөө талап кылынат. Жогоруда айтылгандар дээрлик бардык изилдөө тармагына, анын ичинде, албетте, программалык камсыздоону иштеп чыгууга тиешелүү.

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

Өткөн күнү iOS боюнча адис Игорь Веденеев жана Android боюнча адис Александр Тизик менен сүйлөштүк. Алардын аркасында мобилдик өнүктүрүү боюнча факультатив практикалык жактан байыды RxSwift алкагында атайын курс и Котлиндеги корутиндер. Бул макалада иштеп чыгуучулар программисттер үчүн ар бир аймактын маанилүүлүгү жөнүндө айтып беришет.

Мисал катары RxSwiftти колдонуп iOSто реактивдүү программалоо

RxSwift жана Котлиндеги coroutines - AGIMA жана GeekBrains мобилдик өнүктүрүү боюнча тандалма.
Тандалган мугалим Игорь Веденеев: "RxSwift менен сиздин арызыңыз учат"

Студенттер тандоо учурунда кандай маалыматтарды алышат?

Биз алкактын мүмкүнчүлүктөрү жөнүндө гана сүйлөшпөстөн, аны классикалык MVVM + RxSwift айкалышында кантип колдонууну көрсөтөбүз. Бир нече практикалык мисалдар да талкууланат. Алынган маалыматтарды консолидациялоо үчүн биз талаанын иштөө шарттарына мүмкүн болушунча жакын арыз жазабыз. Бул музыка издөө колдонмосу болот iTunes Search API. Ал жерде биз бардык мыкты тажрыйбаларды колдонобуз, ошондой эле MVC парадигмасында RxSwiftти колдонуунун жөнөкөй вариантын карап чыгабыз.

RxSwift - эмне үчүн iOS программистине бул алкак керек, ал иштеп чыгуучунун жашоосун кантип жеңилдетет?

RxSwift агымдары окуялардын агымдары жана объекттер ортосундагы байланыштар менен иштейт. Эң жөнөкөй жана эң айкын мисал - байламталар: мисалы, сиз интерфейсти жөн гана viewModelдеги өзгөрмөгө жаңы маанилерди коюу менен жаңырта аласыз. Ошентип, интерфейс маалыматтарга негизделген. Мындан тышкары, RxSwift системаны декларативдик стилде сүрөттөөгө мүмкүндүк берет, бул сиздин кодуңузду уюштурууга жана окулушун жогорулатууга мүмкүндүк берет. Мунун баары тиркемелерди натыйжалуу иштеп чыгууга жардам берет.

Иштеп чыгуучу үчүн алкакты билүү да резюмеде жакшы плюс, анткени реактивдүү программалоону түшүнүү, айрыкча RxSwift менен болгон тажрыйба рынокто бааланат.

Эмне үчүн башкаларга караганда бул өзгөчө алкакты тандап алган?

RxSwift эң чоң жамаатка ээ. Башкача айтканда, иштеп чыгуучунун алдында турган көйгөй кимдир бирөө тарабынан чечилип калганына көбүрөөк мүмкүнчүлүк бар. Ошондой эле кутудан чыккан көп сандагы байлоо. Мындан тышкары, RxSwift ReactiveX бир бөлүгү болуп саналат. Бул Android үчүн аналогу бар экенин билдирет, мисалы (RxJava, RxKotlin) жана кээ бирлери iOS менен, башкалары Android менен иштегенине карабастан, семинардагы кесиптештер бири-бири менен бир тилде сүйлөшө алышат.

Алкак тынымсыз жаңыланып турат, майда мүчүлүштүктөр оңдолот, Swiftтин жаңы версияларынан функциялар колдоого алынат жана жаңы байланыштар кошулат. RxSwift ачык булак болгондуктан, бардык өзгөрүүлөрдү байкай аласыз. Мындан тышкары, аларды өз алдынча кошууга болот.

RxSwift кайда колдонулушу керек?

  1. Байланыштар. Эреже катары, биз UI жөнүндө сөз болуп жатат, UIди өзгөртүү мүмкүнчүлүгү, маалыматтын өзгөрүшүнө реакция кылгандай жана интерфейске жаңыртуу убактысы келди деп ачык айтпайт.
  2. Компоненттер менен операциялардын ортосундагы байланыш. Жөн эле мисал. Тармактан маалыматтардын тизмесин алышыбыз керек. Чынында, бул анчалык жөнөкөй операция эмес. Бул үчүн сиз суроо-талапты жөнөтүп, жоопту объекттердин массивине түшүрүп, маалымат базасына сактап, UIге жөнөтүшүңүз керек. Эреже катары, бул операцияларды аткаруу үчүн ар кандай компоненттер жооптуу (биз принциптерди жакшы көрөбүз жана аткарабыз КАТУУ?). RxSwift сыяктуу инструментке ээ болгондо, система ЭМНЕ кылаарын жана аны КАНТИП жасай турганын башка жерлерде сүрөттөп берүүгө болот. Мунун аркасында коддун жакшыраак уюштурулушуна жетишилип, окууга жөндөмдүүлүгү жогорулайт. Салыштырмалуу айтканда, код мазмуну жана китептин өзүнө бөлүнөт.

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

RxSwift жана Котлиндеги coroutines - AGIMA жана GeekBrains мобилдик өнүктүрүү боюнча тандалма.
Тандоо курсунун мугалими Александр Тизик: “Заманбап өнүгүү заманбап техникалык каражаттарды талап кылат”

GeekBrains факультетинде бренддик кварталдын алкагында эмнелер окутулат?

Теория, башка ыкмалар менен салыштыруу, таза Котлиндеги практикалык мисалдар жана Android тиркеме моделиндеги. Практикага келсек, студенттерге баары корутиндерге байланган тиркеме көрсөтүлөт. Чындыгында, көпчүлүк колдонмолор толугу менен асинхрондуу жана параллелдүү эсептөөлөр. Бирок Котлин корутиндери чаташкан, гетерогендүү же өтө татаал жана аткарууну талап кылган кодду бирдиктүү, түшүнүктүү стилге түшүрүп, туура аткарууда жана аткарууда пайда алып келет.

Биз корутиндерге практикалык маселелерди чечүүчү жана бир караганда түшүнүктүү болгон идиоматикалык кодду жазууну үйрөнөбүз, атүгүл корутиндердин кантип иштээрин терең билбесе да (бул RxJava сыяктуу китепканалар жөнүндө айтууга болбойт). Биз ошондой эле MVI концепциясындагы маалыматтар кампасы сыяктуу татаал маселелерди чечүү үчүн актёр модели сыяктуу татаал түшүнүктөрдү кантип колдонууну түшүнөбүз.

Баса, дагы жакшы кабар. Тандоо сабагы жазылып жатканда, Котлин Корутинс китепканасынын жаңыртылышы жарык көрдү, анда класс пайда болду. Flow - типтердин аналогу Flowable и Observable RxJavaдан. Жаңыртуу негизинен корутиндерди колдонмону иштеп чыгуучунун көз карашынан толуктайт. Ырас, дагы деле өркүндөтүү үчүн орун бар: kotlin/native тилиндеги корутиндердин колдоосунун аркасында Котлинде көп платформалуу тиркемелерди жазууга мүмкүн болгонуна карабастан, RxJava же таза Котлиндеги аналогдорунун жоктугунан жапа чекпей, Котлинде/native тилдеринде корутиндерди колдоо али аягына чыга элек. Мисалы, актёр деген түшүнүк жок. Жалпысынан алганда, Котлин командасы бардык платформаларда татаалыраак актерлорду колдоо пландары бар.

Kotlin Coroutines - алар Kotlin иштеп чыгуучусуна кантип жардам беришет?

Корутиндер окула турган, сактала турган жана коопсуз, асинхрондуу жана параллелдүү код жазууга сонун мүмкүнчүлүк берет. Ошондой эле код базасында колдонулушу мүмкүн болгон башка асинхрондук алкактар ​​жана ыкмалар үчүн адаптерлерди түзө аласыз.

Coroutines жиптерден эмнеси менен айырмаланат?

Котлин командасы корутиндерди жеңил жип деп аташат. Мындан тышкары, корутин кандайдыр бир маанини кайтарып бере алат, анткени анын өзөгүн корутин убактылуу токтотулган эсептөө болуп саналат. Бул түздөн-түз система жиптеринен көз каранды эмес; жиптер корутиндерди гана аткарат.

Корутинди колдонуу менен кандай практикалык маселелерди чечсе болот, аларды "таза" Котлин менен чечүү мүмкүн эмес же кыйын?

Ар кандай асинхрондук, параллелдүү, "атаандаштык" тапшырмалар корутиндерди колдонуу менен жакшы чечилет - бул колдонуучунун чыкылдатууларын иштетүү, онлайнга өтүү же маалымат базасынан жаңыртууларга жазылуу.

Таза Котлинде бул көйгөйлөр Javaдагыдай эле чечилет - миңдеген фреймворктордун жардамы менен, алардын ар биринин өзүнүн жакшы жана жаман жактары бар, бирок алардын эч кимиси тил деңгээлинде колдоого ээ эмес.

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

Source: www.habr.com

Комментарий кошуу