တစ်ပတ်စာ Android Development အတွက် လေ့လာစရာများ — May 4th

ဒီတစ်ပါတ်မှာတော့ ကျွန်တော်တို့ Google I/O 2017 မှာ Android အတွက် ကြေငြာသွားတဲ့ Architecture Components ဆိုတဲ့ အပိုင်းကို လေ့လာနိုင်ဖို့ စုစည်းပေးသွားမှာ ဖြစ်ပါတယ်

Android Application တစ်ခုကို မှန်ကန်တဲ့ Architecture နဲ့ တည်ဆောက်နိုင်ဖို့ဆိုတာ အတိုင်းအတာ တစ်ခုအထိ အတွေ့အကြုံရှိထားပြီးသား developer တစ်ယောက်အတွက်တောင် သိပ်မသေးတဲ့ challenge တစ်ခုဖြစ်ပါတယ် ။ အဲဒါကြောင့်လဲ Android Developer Community က MVP(model-view-presenter), MVvM(model-view-viewModel) စတဲ့ architecture နဲ့ ဆိုင်တဲ့ concept တွေကို ဖန်တီးလာကြတာပဲ ဖြစ်ပါတယ် ။

နောက်ထပ် Android App Development အတွက် challenge တစ်ခုကတော့ framework component တွေ ဖြစ်တဲ့ Activity တွေ Fragment တွေရဲ့ lifecycle လည်ပတ်ပုံ တွေနဲ့ App ထဲမှာ ရှိနေတဲ့ asynchronous logic တွေကို အချိန်ပြည့် ကိုက်ညီမှုရှိနေအောင် ချိန်ညှိပေးနေရတာပါပဲ ။ ဒါကြောင့်လဲ Android App Crushes တွေထဲက ဖြစ်လေ့ဖြစ်ထ အများဆုံး crash point က async: logic တစ်ခုက execute လုပ်ပြီး ပြန်လာတဲ့ result ကို ဖျက်ဆီးခံရပြီးသား framwork component မှာ ပြသဖို့ ကြိုးစားရင်း ဖြစ်လာတဲ့ crashes တွေပဲ ဖြစ်ပါတယ် ။

ဒီတစ်ခေါက် Google I/O မှာတော့ Android Framework ဘက်ကနေ App တစ်ခုကို မှန်ကန်တဲ့ architecture နဲ့ တည်ဆောက်နိုင်ဖို့ Architecture Component ဆိုတဲ့ component group တစ်ခုကို မိတ်ဆက်ပေးခဲ့ပါတယ် ။ Architecture Component ဆိုတာရဲ့ အဓိက ရည်ရွယ်ချက်ကတော့

- framework component တွေရဲ့ lifecycle ကို application component တွေဖန်တီးရာမှာ ပိုမို ထည့်သွင်းစဉ်းစား handle လုပ်နိုင်စေဖို့ နဲ့

- boiler-plate code တွေကို တတ်နိုင်သမျှ လျော့ချနိုင်ဖို့

တို့ပဲ ဖြစ်ပါတယ် ။

လောလောဆယ်မှာ component စုစုပေါင်း ၄ ခုပါဝင်ပါတယ် ။ အဲဒါတွေကတော့

- Lifecycle

- ViewModel

- LiveData နဲ့

- Room တို့ပဲ ဖြစ်ပါတယ် ။

Lifecycle Component ကတော့ Framework component တွေရဲ့ Lifecycle တွေကိုပါ ထည့်စဉ်းစားပေးမဲ့ life-cycle aware component တွေ တည်ဆောက်ရာမှာ အသုံးပြုနိုင်မဲ့ component တစ်ခုပဲ ဖြစ်ပါတယ် ။

ViewModel ဆိုတာက View layer အတွက် လိုအပ်တဲ့ data တွေကို framework component တွေရဲ့ life-cycle နဲ့ ကိုက်ညီအောင် retain လုပ်ပေးထားမဲ့ component ပါ ။

Live Data က Data Layer မှာ ရှိတဲ့ data တစ်ခုခု changes ဖြစ်တိုင်း UI layer ကို auto အကြောင်းကြားပေးမဲ့ component ပါပဲ ။

Room ကတော့ library တစ်ခုဖြစ်ပါတယ် ။ Persistent layer ကြီး တစ်ခုလုံးရဲ့ အပေါ်က abstraction အနေနဲ့ရော java object တွေနဲ့ SQLite က table structure တွေနဲ့ကြားမှာ mapping (object-relational-mapping) အနေနဲ့ ပါ အသုံးပြုနိုင်မှာ ဖြစ်ပါတယ် ။

ဒါကတော့ Architecture Component ဆိုတဲ့ သဘောတရား / ရည်ရွယ်ချက်နဲ့ ပါဝင်တဲ့ component တစ်ခုစီက ဘယ်လို ရည်ရွယ်ချက်တွေ အသုံးပြုတွေနဲ့ ဆိုတာကို အမြည်းသဘော ရှင်းပြပေးတာပါ ။ အောက်ပါ Link တွေကနေတဆင့် အသေးစိတ် သွားရောက် လေ့လာနိုင်ပါတယ် ။

Android and Architecture >> https://goo.gl/nyeih0

Architecture Component တွေအတွက် Android Blog က ရှင်းပြထားတာပါ ။ အပေါ်မှာ ရှင်းပြသလိုပါပဲ ။ လက်တွေ့အသုံးပြုပုံ အနည်းငယ်ပါဝင်ပါတယ် ။

Architecture Components — Improve your App’s Design >> https://goo.gl/2RlJjS

Architecture Component တွေ အချင်းချင်း အပြန်အလှန်ဆက်စပ်ပုံကို short video လေးအနေနဲ့ Google Developer Advocate Lyla က ရှင်းပြပေးထားတာ ဖြစ်ပါတယ် ။

Android Architecture Components >> https://goo.gl/W5fPhp

Component တွေအကုန်လုံးကို အသုံးပြုပုံတွေ in-depth explanation တွေနဲ့အကွ လေ့လာနိုင်မဲ့ study portal တစ်ခုပါ ။ Google က setup လုပ်ပေးထားတာပါ ။

Android Lifecycle-aware components codelab >> https://goo.gl/p93tWa

Architecture Component တွေထဲက တစ်ခုဖြစ်တဲ့ lifecycle component ကို အသုံးပြုပြီး lifecycle-aware component တွေကို ကိုယ်တိုင် တည်ဆောက် နိုင်ဖို့ စီစဉ်ထားတဲ့ codelab ဖြစ်ပါတယ် ။

Android Persistence Codelab >> https://goo.gl/PFZ5B3

Architecture Component တွေထဲက တစ်ခုဖြစ်တဲ့ room library ကို အသုံးပြုပြီး persistence layer တစ်ခု ဖန်တီးပုံကို ကိုယ်တိုင် ပြုလုပ်နိုင်ဖို့ စီစဉ်ထားတဲ့ codelab ဖြစ်ပါတယ် ။

Show your support

Clapping shows how much you appreciated Aung Pyae Phyo’s story.