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

Android အတွက် Kotlin Quick Refresher

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

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

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

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

Null Safety (`?`, `?:`, `!!`) ကို Android development မှာ constant သုံးရပါတယ် — UI element (nullable view reference) တွေမှာ crash ကို ကာကွယ်ဖို့ အရေးကြီးပါတယ်။ Lambda expression (`{ ... }`) ကို button click listener, list transformation တွေမှာ တွေ့ရမှာပါ။ Data Class (`data class User(val name: String, val age: Int)`) ကို app ရဲ့ data model (user, product, todo item) ကို ကိုယ်စားပြုဖို့ တွေ့ရမှာပါ — Compose UI state တွေကို ဒီ data class တွေနဲ့ ပုံဖော်ပါတယ်.

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

`var name: String? = null` လို့ ရေးထားရင် 'name' က null ဖြစ်နိုင်တယ် ဆိုတာ compiler ကို ပြောတာပါ — `name?.length` ရေးရင် name null ဖြစ်ရင် crash မဖြစ်ဘဲ null ကို ပြန်ပေးပါတယ်။ Button click ကို `Button(onClick = { println("clicked") })` လို့ lambda နဲ့ ရေးတာကို Compose (နောက် lesson) မှာ ထပ်ခါထပ်ခါ တွေ့ရမှာပါ.

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

kotlin
// Null safety
var name: String? = null
val length = name?.length ?: 0  // 0 if name is null

// Lambda
val greet = { userName: String -> "Hello, $userName!" }

// Data class — will represent our UI state later
data class TodoItem(
    val id: String,
    val title: String,
    val isDone: Boolean = false
)
You should see
$ println(length)
0
$ println(greet("Aye Aye"))
Hello, Aye Aye!

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

`TodoItem` data class ကို ကိုယ်တိုင် ရေးကြည့်ပြီး, instance ၂-၃ ခု create ကာ `println` နဲ့ output ကို ကြည့်ကြည့်ပါ (Kotlin Playground ဒါမှမဟုတ် Android Studio scratch file သုံးလို့ရပါတယ်)။

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

`!!` ကို 'null ဖြစ်နိုင်တဲ့အရာကို null မဟုတ်ဘူးလို့ force ပြောတာ' ဆိုတာ သတိထားပါ — အမှန်တကယ် null ဖြစ်နေရင် app crash ချက်ချင်း ဖြစ်ပါလိမ့်မယ်။

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

  • `!!` (non-null assertion) ကို null ဖြစ်နိုင်ခြေရှိတဲ့နေရာမှာ overuse ခြင်း — runtime crash (NullPointerException) ဖြစ်တတ်ပါတယ်
  • Data class ကို regular class (constructor/getter/setter manual ရေးထားတဲ့) နဲ့ ရောထင်ခြင်း — data class က `equals`/`toString`/`copy` auto-generate ပေးပါတယ်

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

`TodoItem` data class ကို ကိုယ်တိုင် ရေးကြည့်ပြီး, instance ၂-၃ ခု create ကာ `println` နဲ့ output ကို ကြည့်ကြည့်ပါ (Kotlin Playground ဒါမှမဟုတ် Android Studio scratch file သုံးလို့ရပါတယ်)။

You'll know it worked when: $ println(length) 0 $ println(greet("Aye Aye")) Hello, Aye Aye!

Android အတွက် Kotlin Quick Refresher | Thuta Learning