Thuta Learning
ရှာဖွေရန်
ExercisesMobile Developmentintermediate

လက်တွေ့ လေ့ကျင့်ခန်း အစုံ ၁

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • လက်တွေ့ လေ့ကျင့်ခန်း အစုံ ၁ ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် Android Studio/Compose code ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

ဒီ round က learn ခဲ့ပြီးသား Basic/Intermediate concept တွေကို လက်တွေ့ ပြန်စမ်းကြည့်ဖို့ round ပါ — Composable/State/Modifier ကို ခွဲသိခြင်း, Compose code ထဲက error ကို ရှာဖွေခြင်း, `remember` ကို မှန်ကန်စွာ သုံးတတ်ခြင်းကိုပဲ ကိုယ်တိုင် လက်တွေ့ လုပ်ကြည့်ရမှာပါ။ Task တစ်ခုချင်းစီက ၅ မိနစ်ထက် မကြာသင့်ပါဘူး။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Task 1: '@Composable function', 'State (remember)', 'Modifier' သုံးလုံးရဲ့ တာဝန် ကွာခြားချက်ကို ဝါကျတစ်ကြောင်းစီနဲ့ ရှင်းပြပါ။ Task 2: `var count = 0` (remember မပါ) ကို Composable function ထဲမှာ ရေးပြီး Button click ရင် `count++` လုပ်ထားရင် ဘာဖြစ်မလဲ ခန့်မှန်းပြီး ရေးပါ။ Task 3: LazyColumn ကို ဘယ်အခါ Column အစား သုံးသင့်လဲ ဥပမာနဲ့တကွ ရေးပါ။ Task 4: Screen rotate လုပ်လိုက်ရင် `remember` state ပျောက်သွားနိုင်တယ်ဆိုရင် ဘယ် solution ကို သုံးရမလဲ ရေးပါ။

အတူတူ ကြည့်မယ်

text
# Task 2 - state without remember
var count = 0   // NOT wrapped in remember!

Button(onClick = { count++ }) { Text("Count: $count") }

Result: clicking the button triggers recomposition, but
since `count` is a plain local variable (not remember'd),
it resets to 0 every time recomposition runs — the UI
never visibly changes past "Count: 1" (it recomposes
before you can see anything higher).

# Task 4 - surviving rotation
Use rememberSaveable instead of remember for state that
must survive a configuration change (screen rotation).
You should see
Composable/State/Modifier ကွာခြားချက်၊ remember-less state bug၊ rememberSaveable ဆုံးဖြတ်ချက် ရရှိလာမည်။

၅ မိနစ် စမ်းကြည့်

ကိုယ်ပိုင် Composable တစ်ခု ရေးပြီး တမင် `remember` မထည့်ဘဲ state bug ထည့်ကြည့်ပါ — run ကြည့်ပြီး ဘာဖြစ်လဲ ကိုယ်တိုင် သက်သေပြကြည့်ပါ။

သတိလေးတစ်ချက်

ဒီ round မှာ physical device setup လုပ်ဖို့ မလိုပါဘူး — emulator (ဒါမှမဟုတ် Preview panel) ကိုပဲ အဓိကထား practice လုပ်ခြင်းပါ။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Composable/State/Modifier ကို 'အားလုံးတူတူပဲ' လို့ ရှုပ်ထွေးနေခြင်း
  • Compose error message ကို terminal/Logcat ကနေ ဖတ်ရှုချသွားပြီး error ဘယ် line မှာလဲ မကြည့်ခြင်း

အခု ကိုယ်တိုင် စမ်းကြည့်

ကိုယ်ပိုင် Composable တစ်ခု ရေးပြီး တမင် `remember` မထည့်ဘဲ state bug ထည့်ကြည့်ပါ — run ကြည့်ပြီး ဘာဖြစ်လဲ ကိုယ်တိုင် သက်သေပြကြည့်ပါ။

You'll know it worked when: Composable/State/Modifier ကွာခြားချက်၊ remember-less state bug၊ rememberSaveable ဆုံးဖြတ်ချက် ရရှိလာမည်။

လက်တွေ့ လေ့ကျင့်ခန်း အစုံ ၁ | Thuta Learning