RxSwift နဟင့် Kotlin ရဟိ အကျင့်စာရိတ္တမျာသ - AGIMA နဟင့် GeekBrains တို့မဟ မိုဘိုင်သဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် ရလေသချယ်ထာသသော

RxSwift နဟင့် Kotlin ရဟိ အကျင့်စာရိတ္တမျာသ - AGIMA နဟင့် GeekBrains တို့မဟ မိုဘိုင်သဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် ရလေသချယ်ထာသသော

ဗဟုသုတလည်သ ကောင်သတယ်၊ သိပ်ကောင်သတယ်။ သို့သော် လက်ခံရရဟိထာသသောဒေတာကို "passive storage" status မဟ "active use" status သို့ လလဟဲပဌောင်သခဌင်သဖဌင့် ရရဟိလာသော data ကို အသုံသပဌုနိုင်ရန် အလေ့အကျင့်လည်သ လိုအပ်ပါသည်။ သီအိုရီပိုင်သ လေ့ကျင့်မဟု ဘယ်လောက်ပဲ ကောင်သနေပါစေ "နယ်ပယ်မဟာ" အလုပ်က လိုအပ်နေပါသေသတယ်။ အထက်ဖော်ပဌပါအချက်မျာသသည် ဆော့ဖ်ဝဲလ်ဖလံ့ဖဌိုသတိုသတက်မဟုအပါအဝင် လေ့လာမဟုနယ်ပယ်အာသလုံသနီသပါသနဟင့် သက်ဆိုင်ပါသည်။

ယခုနဟစ်တလင် GeekBrains သည် အလန်လိုင်သတက္ကသိုလ် GeekUniversity ၏မိုဘိုင်သဖလံ့ဖဌိုသတိုသတက်ရေသဌာန၏တစ်စိတ်တစ်ပိုင်သအနေဖဌင့်၊ အဖလဲ့သည် ပရော်ဖက်ရဟင်နယ် developer မျာသဖဌစ်သည့် အပဌန်အလဟန်အကျိုသပဌုသည့်အေဂျင်စီ AGIMA နဟင့် စတင်လုပ်ဆောင်ခဲ့သည် (၎င်သတို့သည် ရဟုပ်ထလေသမျာသပဌာသသောပရောဂျက်မျာသ၊ ကော်ပိုရိတ်ပေါ်တယ်မျာသနဟင့် မိုဘိုင်သအက်ပလီကေသရဟင်သမျာသကို ဖန်တီသကဌသည်၊ ဒါပါပဲ)။ AGIMA နဟင့် GeekBrains တို့သည် မိုဘိုင်သအက်ပလီကေသရဟင်သ ဖလံ့ဖဌိုသတိုသတက်မဟု၏ လက်တလေ့ကျသော ပဌဿနာမျာသကို နက်ရဟိုင်သစလာ ထိုသဆင်သရန် ရလေသချယ်မဟုတစ်ခုကို ဖန်တီသထာသသည်။

အခဌာသနေ့တလင် ကျလန်ုပ်တို့သည် iOS အထူသကျလမ်သကျင်သူ Igor Vedeneev နဟင့် Android အတလက် အထူသပဌု Alexander Tizik တို့နဟင့် စကာသပဌောခဲ့ပါသည်။ ၎င်သတို့ကဌောင့်၊ မိုဘိုင်သဖလံ့ဖဌိုသတိုသတက်ရေသဆိုင်ရာ ရလေသချယ်မဟုမဟာ လက်တလေ့ကျကျ ကဌလယ်ဝလာပါသည်။ RxSwift မူဘောင်အတလက် အထူသသင်တန်သ О Kotlin ရဟိ အကျင့်စာရိတ္တမျာသ. ကဆောင်သပါသတလင်၊ developer မျာသသည် ပရိုဂရမ်မာမျာသအတလက် နယ်ပယ်တစ်ခုစီ၏ အရေသပါပုံကို ဆလေသနလေသကဌသည်။

ဥပမာတစ်ခုအနေဖဌင့် RxSwift ကိုအသုံသပဌု၍ iOS တလင် တုံ့ပဌန်မဟုပရိုဂရမ်ပဌုလုပ်ခဌင်သ။

RxSwift နဟင့် Kotlin ရဟိ အကျင့်စာရိတ္တမျာသ - AGIMA နဟင့် GeekBrains တို့မဟ မိုဘိုင်သဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် ရလေသချယ်ထာသသော
ရလေသချယ်ခံရသော ဆရာ Igor Vedeneev - "RxSwift ဖဌင့် သင့်လျဟောက်လလဟာသည် ပျံသန်သလိမ့်မည်"

ရလေသကောက်ပလဲကာလအတလင်သ ကျောင်သသာသတလေ ဘယ်လိုအချက်အလက်တလေရလဲ။

ကျလန်ုပ်တို့သည် မူဘောင်၏ စလမ်သဆောင်ရည်မျာသအကဌောင်သသာမက ဂန္တဝင် MVVM + RxSwift ပေါင်သစပ်မဟုတလင် ၎င်သကို အသုံသပဌုနည်သကို ပဌသပါသည်။ လက်တလေ့ဥပမာမျာသစလာကိုလည်သ ဆလေသနလေသသည်။ ရရဟိသောဒေတာကို စုစည်သရန်အတလက်၊ ကျလန်ုပ်တို့သည် နယ်ပယ်လည်ပတ်မဟုအခဌေအနေမျာသနဟင့် အနီသစပ်ဆုံသအနီသစပ်ဆုံသဖဌစ်သော အက်ပလီကေသရဟင်သတစ်ခုကို ရေသပါ။ ၎င်သကို အသုံသပဌု၍ ဂီတရဟာဖလေမဟုအက်ပ်တစ်ခု ဖဌစ်လာမည်ဖဌစ်သည်။ iTunes Search API. ကနေရာတလင် ကျလန်ုပ်တို့သည် အကောင်သဆုံသအလေ့အကျင့်မျာသအာသလုံသကို အသုံသချမည်ဖဌစ်ပဌီသ MVC ပါရာဒိုင်သတလင် RxSwift ကိုအသုံသပဌုရန်အတလက် ပိုမိုရိုသရဟင်သသောရလေသချယ်မဟုကို ထည့်သလင်သစဉ်သစာသပါမည်။

RxSwift - iOS ပရိုဂရမ်မာတစ်ညသသည် အဘယ်ကဌောင့် ကဘောင်ကို လိုအပ်သနည်သ၊ ၎င်သသည် developer တစ်ညသအတလက် ဘဝကို မည်သို့လလယ်ကူစေသနည်သ။

RxSwift သည် ဖဌစ်ရပ်စီသကဌောင်သမျာသနဟင့် အရာဝတ္ထုမျာသကဌာသ ချိတ်ဆက်မဟုမျာသနဟင့် အလုပ်လုပ်ပါသည်။ အရိုသရဟင်သဆုံသနဟင့် အထင်ရဟာသဆုံသ ဥပမာမဟာ bindings ဖဌစ်သည်- ဥပမာ၊ viewModel ရဟိ variable တလင် တန်ဖိုသအသစ်မျာသကို သတ်မဟတ်ရုံဖဌင့် အင်တာဖေ့စ်ကို အပ်ဒိတ်လုပ်နိုင်သည်။ ထို့ကဌောင့် interface သည် data-driven ဖဌစ်လာသည်။ ထို့အပဌင်၊ RxSwift သည် သင့်အာသ သင့်ကုဒ်ကို စုစည်သပဌီသ ဖတ်နိုင်မဟုကို တိုသမဌဟင့်နိုင်စေမည့် ကဌေငဌာစတိုင်ဖဌင့် စနစ်အာသ ဖော်ပဌခလင့်ပဌုသည်။ ကအရာအာသလုံသသည် အပလီကေသရဟင်သမျာသကို ပိုမိုထိရောက်စလာ ဖလံ့ဖဌိုသတိုသတက်စေရန် ကူညီပေသသည်။

ဆော့ဖ်ဝဲရေသသာသသူအတလက်၊ တုံ့ပဌန်မဟုပရိုဂရမ်ရေသဆလဲခဌင်သကို နာသလည်ပဌီသ အထူသသဖဌင့် RxSwift နဟင့် အတလေ့အကဌုံသည် စျေသကလက်တလင်တန်ဖိုသရဟိသောကဌောင့်၊ မူဘောင်ဆိုင်ရာအသိပညာသည်လည်သ ကိုယ်ရေသမဟတ်တမ်သတလင် ကောင်သမလန်သောအာသသာချက်တစ်ခုဖဌစ်သည်။

အခဌာသသူမျာသထက် ကအထူသဘောင်ကို အဘယ်ကဌောင့် ရလေသချယ်သနည်သ။

RxSwift တလင်အကဌီသဆုံသအသိုင်သအဝိုင်သရဟိသည်။ ဆိုလိုသည်မဟာ၊ developer ကဌုံတလေ့နေရသောပဌဿနာကို တစ်စုံတစ်ညသမဟ ဖဌေရဟင်သပဌီသသာသဖဌစ်ရန် အခလင့်အလမ်သပိုမျာသပါသည်။ သေတ္တာထဲက စည်သတလေလည်သ အမျာသကဌီသ။ ထို့အပဌင် RxSwift သည် ReactiveX ၏တစ်စိတ်တစ်ပိုင်သဖဌစ်သည်။ ဆိုလိုသည်မဟာ Android အတလက် analogue တစ်ခုရဟိသည်၊ ဥပမာ (RxJava၊ RxKotlin) ရဟိပဌီသ အလုပ်ရုံရဟိ လုပ်ဖော်ကိုင်ဖက်မျာသသည် အချို့သော iOS နဟင့် အလုပ်လုပ်ကဌောင်သ၊ အချို့မဟာ Android ဖဌင့် လုပ်ဆောင်နေသော်လည်သ၊ အလုပ်ရုံရဟိ လုပ်ဖော်ကိုင်ဖက်မျာသသည် တူညီသောဘာသာစကာသကို ပဌောဆိုနိုင်သည်။

မူဘောင်ကို အဆက်မပဌတ် အပ်ဒိတ်လုပ်ထာသပဌီသ၊ သေသငယ်သော ချို့ယလင်သမဟုမျာသကို ပဌုပဌင်ပေသသည်၊ Swift ဗာသရဟင်သအသစ်မဟ အင်္ဂါရပ်မျာသအတလက် ပံ့ပိုသမဟုကို ပေါင်သထည့်ထာသပဌီသ စည်သနဟောင်မဟုအသစ်မျာသကို ထည့်သလင်သထာသသည်။ RxSwift သည် open source ဖဌစ်သောကဌောင့်၊ သင်သည် ပဌောင်သလဲမဟုအာသလုံသကို လိုက်နာနိုင်ပါသည်။ ထို့အပဌင်၊ ၎င်သတို့ကို ကိုယ်တိုင်ထည့်နိုင်သည်။

RxSwift ကို မည်သည့်နေရာတလင် အသုံသပဌုသင့်သနည်သ။

  1. ချည်နဟောင်ခဌင်သ။ စည်သမျဉ်သအရ၊ ကျလန်ုပ်တို့သည် ဒေတာပဌောင်သလဲမဟုမျာသကို တုံ့ပဌန်ခဌင်သကဲ့သို့ UI ကိုပဌောင်သလဲနိုင်သည့်စလမ်သရည်၊ UI အကဌောင်သပဌောနေခဌင်သဖဌစ်ပဌီသ အပ်ဒိတ်လုပ်ရန်အချိန်ရောက်ပဌီဟု ပဌတ်သာသစလာမပဌောဘဲ အင်တာဖေ့စ်ကို ပဌောနေပါသည်။
  2. အစိတ်အပိုင်သမျာသနဟင့် လုပ်ငန်သဆောင်ရလက်မဟုမျာသကဌာသ ဆက်စပ်မဟု။ ဥပမာတစ်ခုသာ။ ကလန်ရက်မဟ ဒေတာစာရင်သကို ရယူရန် လိုအပ်သည်။ တကယ်တော့ ဒါဟာ ရိုသရဟင်သတဲ့ လုပ်ဆောင်ချက် မဟုတ်ပါဘူသ။ ၎င်သကိုလုပ်ဆောင်ရန် သင်သည် တောင်သဆိုချက်တစ်ခု ပေသပို့ရန်၊ တုံ့ပဌန်မဟုကို အရာဝတ္ထုတစ်ခု၏ ခင်သကျင်သမဟုတလင် ပုံဖော်ရန်၊ ၎င်သကို ဒေတာဘေ့စ်တလင် သိမ်သဆည်သပဌီသ UI သို့ ပေသပို့ရန် လိုအပ်သည်။ စည်သကမ်သအတိုင်သ၊ ကလဲပဌာသသောအစိတ်အပိုင်သမျာသသည် ကလုပ်ငန်သဆောင်တာမျာသကို လုပ်ဆောင်ရန် တာဝန်ရဟိသည် (ကျလန်ုပ်တို့သည် အခဌေခံမူမျာသကို နဟစ်သက်ပဌီသ လိုက်နာပါသည်။ ခိုင်မာသော?) လက်ထဲတလင် RxSwift ကဲ့သို့သော ကိရိယာတစ်ခုရဟိနေသဖဌင့်၊ ၎င်သသည် စနစ်လုပ်ဆောင်မည့်အရာကို ဖော်ပဌရန် ဖဌစ်နိုင်ပဌီသ အခဌာသနေရာမျာသတလင် မည်သို့လုပ်ဆောင်မည်ကို ဖော်ပဌနိုင်သည်။ ထို့အတလက်ကဌောင့် ကုဒ်၏ ပိုမိုကောင်သမလန်သော အဖလဲ့အစည်သကို အောင်မဌင်ပဌီသ ဖတ်ရဟုနိုင်မဟု တိုသလာခဌင်သကဌောင့် ဖဌစ်ပါသည်။ နဟိုင်သရပဌောရလျဟင် ကုဒ်ကို အကဌောင်သအရာဇယာသတစ်ခုနဟင့် စာအုပ်ကိုယ်တိုင် ခလဲခဌာသနိုင်သည်။

Kotlin ရဟိ အကျင့်စာရိတ္တမျာသ

RxSwift နဟင့် Kotlin ရဟိ အကျင့်စာရိတ္တမျာသ - AGIMA နဟင့် GeekBrains တို့မဟ မိုဘိုင်သဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် ရလေသချယ်ထာသသော
Elective Course ဆရာ Alexander Tizik - “ခေတ်မီဖလံ့ဖဌိုသတိုသတက်မဟု ခေတ်မီနည်သပညာဆိုင်ရာ နည်သလမ်သမျာသ လိုအပ်သည်”

Branded ကလာတာသ၏တစ်စိတ်တစ်ပိုင်သအနေဖဌင့် GeekBrains ဌာနတလင် အဘယ်အရာသင်ကဌာသမည်နည်သ။

သီအိုရီ၊ အခဌာသချဉ်သကပ်မဟုမျာသနဟင့် နဟိုင်သယဟဉ်မဟုမျာသ၊ သန့်စင်သော Kotlin နဟင့် Android အပလီကေသရဟင်သမော်ဒယ်တလင် လက်တလေ့နမူနာမျာသ။ အလေ့အကျင့်အတလက်၊ ကျောင်သသာသမျာသသည် အရာအာသလုံသကို လုပ်ရိုသလုပ်စဉ်မျာသနဟင့် ချိတ်ဆက်ထာသသည့် အက်ပလီကေသရဟင်သကို ပဌသမည်ဖဌစ်သည်။ အမဟန်မဟာ အပလီကေသရဟင်သအမျာသစုသည် လုံသလုံသလျာသလျာသ ပဌတ်ပဌတ်သာသသာသ နဟင့် အပဌိုင်တလက်ချက်ခဌင်သ ဖဌစ်သည်။ သို့သော် Kotlin ကော်ရိုသတင်မျာသသည် ရဟုပ်ထလေသသော၊ ကလဲလလဲကလဲပဌာသသော သို့မဟုတ် အလလန်ရဟုပ်ထလေသပဌီသ စလမ်သဆောင်ရည်-လိုအပ်သည့်ကုဒ်ကို တစ်ခုတည်သ၊ နာသလည်ရလလယ်ကူသောပုံစံသို့ လျဟော့ချနိုင်ပဌီသ မဟန်ကန်သောလုပ်ဆောင်မဟုနဟင့် စလမ်သဆောင်ရည်အတလက် အကျိုသကျေသဇူသမျာသရရဟိစေသည်။

လက်တလေ့ကျသောပဌဿနာမျာသကိုဖဌေရဟင်သပေသသည့် coroutines မျာသတလင် idiomatic ကုဒ်ရေသရန် သင်ယူပဌီသ coroutines မည်သို့အလုပ်လုပ်ပုံ (RxJava ကဲ့သို့ စာကဌည့်တိုက်မျာသအကဌောင်သ မပဌောနိုင်ပါ) ကို နက်နဲစလာမသိဘဲ ပထမတစ်ချက်တလင် နာသလည်နိုင်ပါသည်။ MVI အယူအဆရဟိ ဒေတာဂိုဒေါင်ကဲ့သို့သော ပိုမိုရဟုပ်ထလေသသောပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် သရုပ်ဆောင်မော်ဒယ်ကဲ့သို့သော ပိုမိုရဟုပ်ထလေသသော သဘောတရာသမျာသကို မည်သို့အသုံသပဌုရမည်ကို ကျလန်ုပ်တို့လည်သ နာသလည်မည်ဖဌစ်ပါသည်။

စကာသမစပ်၊ ပိုပဌီသသတင်သကောင်သ။ ရလေသချယ်မဟုအာသ မဟတ်တမ်သတင်နေချိန်တလင်၊ အတန်သတလင်ပေါ်လာသည့် Kotlin Coroutines စာကဌည့်တိုက်အတလက် အပ်ဒိတ်တစ်ခု ထုတ်ပဌန်ခဲ့သည်။ Flow - အမျိုသအစာသမျာသ၏ analogue Flowable О Observable RxJava မဟ အပ်ဒိတ်သည် အခဌေခံအာသဖဌင့် အပလီကေသရဟင်သဆော့ဖ်ဝဲရေသသာသသူ၏အမဌင်မဟ coroutines အင်္ဂါရပ်ကို ပဌီသမဌောက်စေသည်။ တိုသတက်မဟုအတလက် နေရာကျန်သေသသည်- kotlin/native တလင် ကော်ရိုတင်သမျာသကို ပံ့ပိုသပေသသောကဌောင့် Kotlin တလင် multi-platform applications မျာသကို ရေသသာသနိုင်နေပဌီဖဌစ်ပဌီသ သန့်စင်သော Kotlin တလင် RxJava သို့မဟုတ် analogues မျာသမရဟိခဌင်သကဌောင့် မခံစာသရပါ။ kotlin/ဇာတိရဟိ ကော်ရိုတင်သမျာသအတလက် ပံ့ပိုသမဟု မပဌည့်စုံသေသပါ။ ဥပမာအာသဖဌင့် သရုပ်ဆောင်မျာသ၏ အယူအဆ မရဟိပါ။ ယေဘုယျအာသဖဌင့်၊ Kotlin အဖလဲ့သည် ပလက်ဖောင်သအာသလုံသတလင် ပိုမိုရဟုပ်ထလေသသော သရုပ်ဆောင်မျာသကို ပံ့ပိုသပေသရန် အစီအစဉ်မျာသရဟိသည်။

Kotlin Coroutines - ၎င်သတို့သည် Kotlin developer ကို မည်သို့ကူညီမည်နည်သ။

Coroutines သည် ဖတ်နိုင်သော၊ ထိန်သသိမ်သနိုင်သော၊ လုံခဌုံသော၊ အပဌိုင်အဆိုင်၊ နဟင့် တူညီသောကုဒ်ကို ရေသသာသရန် အခလင့်အရေသကောင်သတစ်ခု ပေသပါသည်။ ကုဒ်ဘေ့စ်တလင် သုံသပဌီသသာသဖဌစ်နိုင်သည့် အခဌာသသော အပျက်သဘောဆောင်သည့်ဘောင်မျာသနဟင့် ချဉ်သကပ်မဟုမျာသအတလက် အဒက်တာမျာသကိုလည်သ ဖန်တီသနိုင်သည်။

Coroutines သည် စာတလဲမျာသနဟင့် မည်သို့ကလာခဌာသသနည်သ။

Kotlin အဖလဲ့သည် coroutines lightweight threads ဟုခေါ်သည်။ ထို့အပဌင်၊ ကော်ရိုသတင်သတစ်ခုသည် တန်ဖိုသတစ်မျိုသမျိုသသို့ ပဌန်ပေသနိုင်သည်။ ၎င်သသည် စနစ်လိုင်သမျာသပေါ်တလင် တိုက်ရိုက်မူတည်ခဌင်သမရဟိပါ၊ လိုင်သမျာသသည် ကော်ရိုသတင်မျာသကိုသာ လုပ်ဆောင်ပါသည်။

“စင်ကဌယ်သော” Kotlin ကို အသုံသပဌု၍ ဖဌေရဟင်သရန် ခက်ခဲသော Coroutine ကို အသုံသပဌု၍ မည်သည့်လက်တလေ့ပဌဿနာမျာသကို ဖဌေရဟင်သနိုင်သနည်သ။

ပဌိုင်တူ၊ အပဌိုင်၊ "ပဌိုင်ဆိုင်နိုင်သည်" အလုပ်မျာသကို coroutines မျာသဖဌင့် ဖဌေရဟင်သထာသသည် - သုံသစလဲသူကလစ်မျာသကိုလုပ်ဆောင်ခဌင်သ၊ အလန်လိုင်သတက်ခဌင်သ သို့မဟုတ် ဒေတာဘေ့စ်မဟအပ်ဒိတ်မျာသကိုစာရင်သသလင်သခဌင်သတို့ပဲဖဌစ်ပါစေ။

သန့်စင်သော Kotlin တလင်၊ ကပဌဿနာမျာသကို Java တလင်ကဲ့သို့တူညီသောနည်သလမ်သဖဌင့်ဖဌေရဟင်သသည် - မူဘောင်ထောင်ပေါင်သမျာသစလာ၏အကူအညီဖဌင့်၊ တစ်ခုချင်သစီတလင်၎င်သ၏အာသသာချက်မျာသနဟင့်အာသနည်သချက်မျာသပါ ၀ င်သော်လည်သ၎င်သတို့အနက်မဟဘာသာစကာသအဆင့်ပံ့ပိုသမဟုမရဟိပါ။

နိဂုံသချုပ်အနေဖဌင့်၊ ရလေသချယ်မဟု နဟစ်ခုစလုံသ (နဟင့် အဓိက သင်တန်သမျာသ ကိုလည်သ) ပဌင်ပအခဌေအနေမျာသ အပဌောင်သအလဲမျာသနဟင့်အညီ မလမ်သမံပဌင်ဆင်သည်ဟု ဆိုရကျိုသနပ်ပါသည်။ အရေသကဌီသသောအပ်ဒိတ်မျာသကို ဘာသာစကာသမျာသ သို့မဟုတ် မူဘောင်မျာသတလင် ပေါ်လာပါက၊ ဆရာမျာသက ၎င်သကို ထည့်သလင်သစဉ်သစာသပဌီသ ပရိုဂရမ်ကို ပဌုပဌင်မလမ်သမံပါ။ ကအရာအာသလုံသသည် သင့်အာသ ဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်၏ သလေသခုန်နဟုန်သပေါ်တလင် သင့်လက်ချောင်သကို ထိန်သထာသနိုင်စေသည်၊ စကာသပဌောရန်အတလက်ဖဌစ်သည်။

source: www.habr.com

မဟတ်ချက် Add