ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
ဒီ round က round ၁ ထက် အဆင့်မြင့်ပါတယ် — skill တစ်ခုချင်းစီကို ခွဲစမ်းမယ့်အစား တစ်ခါတည်း ပေါင်းသုံးရမှာပါ။ App တစ်ခုအတွက် MVVM layer ဘယ်လို ခွဲသင့်လဲ ဆုံးဖြတ်ခြင်း, View-local `@State` vs app-wide `ObservableObject` ကို scenario အလိုက် ရွေးချယ်ခြင်း, App Store submit ကို production document အနေနဲ့ ရေးဆွဲခြင်း — ဒါတွေ ပါဝင်ပါတယ်။ Task တစ်ခုကို ၁၀ မိနစ်ခန့် ယူပါ.
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Task 1: Note-taking app (offline-first, iCloud sync optional) တစ်ခုအတွက် MVVM layer (Data/ViewModel/View) ကို ဒီဇိုင်းရေးပြီး, layer တစ်ခုစီရဲ့ responsibility ဘာတွေဖြစ်သင့်လဲ ရေးပါ။ Task 2: 'search box ထဲက text (View local)' vs 'user login status (app-wide)' ဆိုတဲ့ scenario ၂ ခုအတွက် `@State` သုံးမလား `ObservableObject` သုံးမလား ဆုံးဖြတ်ပြီး ဘာကြောင့်လဲ ရှင်းပါ။ Task 3: App တစ်ခု App Store မှာ launch ပြီးနောက် crash rate (Xcode Organizer/Firebase Crashlytics) ရုတ်တရက် တက်လာရင် ဘယ် step အစီအစဉ်နဲ့ investigate/response လုပ်မလဲ ရေးပါ။ Task 4: 'App ရဲ့ camera permission ကို feature တစ်ခုတည်းအတွက်ပဲ (receipt scanner) သုံးချင်တယ်, photo library access မလိုချင်ဘူး' ဆိုတဲ့ requirement အတွက် permission declaration/request flow ကို ဒီဇိုင်းရေးဆွဲပါ။
အတူတူ ကြည့်မယ်
# Task 2 - @State vs ObservableObject
Search box text (used by one screen only) -> @State
(View-local, private, doesn't need to be shared)
User login status (needed across many screens) -> ObservableObject
(app-wide, injected via .environmentObject at the root)
# Task 3 - crash-rate incident response
1. Check Xcode Organizer / Crashlytics — which screen/exception spiked?
2. Check recent release notes — did a new version just roll out?
3. Reproduce locally on the affected iOS version/device if possible
4. If severe, consider phased release pause in App Store Connect
5. Document root cause once fixed, add a regression testMVVM layer design, @State-vs-ObservableObject ဆုံးဖြတ်ချက်, crash-rate incident response plan နှင့် scoped permission flow ရရှိလာမည်။၅ မိနစ် စမ်းကြည့်
Task 4 ရဲ့ permission flow ကို `LocationManager` (Intermediate chapter) ရဲ့ pattern အတိုင်း camera permission (`NSCameraUsageDescription`) အတွက် ကိုယ်တိုင် ရေးကြည့်ပါ။
သတိလေးတစ်ချက်
App Store review က permission scope creep ကို strict စစ်ဆေးပါတယ် — declared usage description နဲ့ app ရဲ့ actual behavior မကိုက်ညီရင် (ဥပမာ - 'receipt scan' လို့ ရေးထားပေမယ့် photo library ကိုပါ access လုပ်နေရင်) reject ခံရနိုင်ပါတယ်။