Thuta Learning
How Mobile Apps Work
AdvancedMobile Developmentintermediate

Google Play နှင့် Apple App Store

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

  • Google Play နှင့် Apple App Store concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • Diagram/checklist ကို ဖတ်ပြီး mobile architecture/decision ဘယ်လို ဆက်စပ်နေသလဲ ခြေရာခံနိုင်ရန်
  • ကိုယ့် mobile app project အတွက် ဘယ်လို အသုံးချသင့်သလဲ ရှင်းပြနိုင်ရန်

နားလည်ထားရမယ့် အချက်

Google Play နဲ့ Apple App Store ဟာ လုပ်ငန်းစဉ် မတူညီပေမယ့် ပုံစံအနေနဲ့ တစ်ခုကို လေ့လာထားရင် တခြားတစ်ခုရဲ့ အများစုကို သင်ယူပြီးသားပါပဲ။ နှစ်ခုစလုံး platform ကိုယ်ပိုင် console ကနေ upload လုပ်တဲ့ signed build တစ်ခုကနေ စတင်ပါတယ်။

  • App name နှင့် description
  • Icon နှင့် screenshot
  • Category
  • data ဘာတွေကောက်ယူပြီး ဘာကြောင့်လဲ ဖော်ပြတဲ့ Privacy information
  • Support contact
  • Release notes

platform နှစ်ခုစလုံးက public release မလုပ်ခင် staged testing ကို ကမ်းလှမ်းပေမယ့် terminology ကွာဟပါတယ်။ Google Play က tester တွေကို internal, closed, open testing track တွေအဖြစ် စီစဉ်ပြီး Apple ရဲ့ equivalent ကတော့ invited tester တွေဆီ pre-release build ဖြန့်ဝေတဲ့ TestFlight ပါ။

ကဏ္ဍမျှော်လင့်ရမည့်အရာ
Build formatGoogle Play က AAB ကို လိုချင်ပြီး App Store ကတော့ platform tooling ကနေတဆင့် upload လုပ်တဲ့ signed build archive ကို လိုချင်ပါတယ်။
Testing tracksGoogle Play မှာ internal, closed, open testing track တွေ ရှိပြီး Apple ဘက်မှာတော့ TestFlight က invited tester များအတွက် အလားတူပါ။
Review processနှစ်ခုစလုံး technical correctness, policy compliance, privacy accuracy, quality တို့ကို review လုပ်ပြီး approval ဟာ automatic မဟုတ်ပါဘူး။
Staged rolloutplatform နှစ်ခုစလုံးက version အသစ်ကို user ရာခိုင်နှုန်းအနည်းငယ်ဆီ ဦးစွာ release လုပ်ပြီးမှ full release လုပ်နိုင်ပါတယ်။

store တစ်ခုခုမှာ approval ဟာ automatic မဟုတ်သလို သတ်မှတ်ထားတဲ့ timeline အတိအကျမှာ အာမခံချက် မရှိပါဘူး၊ platform နှစ်ခုစလုံးက guideline တွေကို ပုံမှန်ပြင်ဆင်ကြပါတယ်။ platform တစ်ခုမှ ရိုးရှင်းစွာ 'ပိုကောင်း' တယ်လို့ မရှိပါဘူး - ဒါက distribution problem တစ်ခုတည်းကို ဖြေရှင်းနေတဲ့ လုပ်ငန်းစဉ်နှစ်ခုပါပဲ။

text
TWO STORE RELEASE FLOWS
-----------------------
TWO STORE RELEASE FLOWS
-------------------------
GOOGLE PLAY
  Build -> Sign -> Upload AAB -> Automated Checks
        -> Testing Track -> Review -> Staged Rollout

APP STORE
  Build -> Sign -> Upload -> App Info -> TestFlight
        -> Review -> Release

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

console နှစ်ခုစလုံးကို မထိခင် store listing asset တွေကို build ပြီးမှ အလျင်စလို ထည့်တဲ့ item မဟုတ်ဘဲ ကိုယ်ပိုင် checklist item အဖြစ် စုစည်းပါ။

  • app အမှန်တကယ်လုပ်ဆောင်ချက်နဲ့ ကိုက်ညီတဲ့ description။
  • store တစ်ခုချင်းလိုအပ်တဲ့ size အလိုက် icon။
  • version သုံးလေးခုကျော်ခဲ့ပြီးသား ဟောင်းနေတာမဟုတ်ဘဲ လက်ရှိ screenshot။
  • ရိုးသားတဲ့ privacy disclosure နှင့် အလုပ်လုပ်တဲ့ support contact။

target release date မတိုင်ခင် testing track တွေအတွက် calendar time အစစ် ခွဲထားပါ - deadline နီးလို့ production ကို တိုက်ရိုက်ရှောင်ကျော်တာက ရှောင်လို့ရတဲ့ one-star review ကို ဖြစ်စေတတ်ပါတယ်။

fee ဒါမှမဟုတ် review timeline ကို hardcode မလုပ်ပါနဲ့

review turnaround time ဒါမှမဟုတ် လက်ရှိ fee အကြောင်း ယူဆချက်တွေကို planning document ထဲ hardcode မလုပ်ပါနဲ့ - နှစ်ခုစလုံး ပြောင်းလဲနေပြီး store နှစ်ခုစလုံးက ကိုယ်ပိုင် လက်ရှိ ကိန်းဂဏန်းတွေကို ထုတ်ပြန်ပါတယ်။

architecture က support လုပ်နိုင်ရင် risky တစ်ခုခုအတွက် platform နှစ်ခုစလုံးမှာ staged rollout ကို သုံးပါ - အမှားတစ်ခုက user အားလုံးမဟုတ်ဘဲ အစိတ်အပိုင်းတစ်ခုပဲ ထိရောက်ပြီး ရပ်တန့်နိုင်ဖို့ပါ။

အတူတူ စမ်းရေးကြည့်မယ်

javascript
function evaluateReleaseReadiness(app) {
  const missing = [];
  if (!app.hasSignedBuild) missing.push("signed build");
  if (!app.hasStoreListingComplete) missing.push("complete store listing");
  if (!app.hasPrivacyDisclosures) missing.push("privacy disclosures");
  if (!app.hasCompletedTesting) missing.push("completed testing round");
  return { ready: missing.length === 0, missing };
}

const notReady = {
  hasSignedBuild: true,
  hasStoreListingComplete: false,
  hasPrivacyDisclosures: false,
  hasCompletedTesting: true
};

const ready = {
  hasSignedBuild: true,
  hasStoreListingComplete: true,
  hasPrivacyDisclosures: true,
  hasCompletedTesting: true
};

console.log("Not ready app:", evaluateReleaseReadiness(notReady));
console.log("Ready app:", evaluateReleaseReadiness(ready));
You should see
not-ready app က { ready: false, missing: [ 'complete store listing', 'privacy disclosures' ] } ကို ပြန်ပေးပြီး ready app ကတော့ { ready: true, missing: [] } ဖြစ်ပါတယ်။

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

စိတ်ကူးထားတဲ့ app change တစ်ခု (ဥပမာ payment flow အသစ်) ရွေးပါ။ Google Play နဲ့ App Store listing update က ဘာတွေလိုမလဲ draft ရေးပြီး evaluateReleaseReadiness-စတိုင် function ကို အလျင်စလိုပြင်ဆင်ထားတဲ့ version နဲ့ စနစ်တကျပြင်ဆင်ထားတဲ့ version နှစ်ခုလုံးအတွက် run ကြည့်ပါ။

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

store တစ်ခုရဲ့ review process ကို automatic ဒါမှမဟုတ် သတ်မှတ်ထားတဲ့ အချိန်အတိုင်း အာမခံနိုင်တယ်လို့ ယူဆလိုက်တာ - နှစ်ခုလုံးမှာ ဒီလိုမဟုတ်ပါဘူး။

testing track တွေ ဖြတ်သန်းပြီးသားလို့ risky change တစ်ခုအတွက် staged rollout ကို ကျော်သွားတာ။

App store - WikipediaHow Mobile Apps Work

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

  • store တစ်ခုရဲ့ review process ကို automatic ဒါမှမဟုတ် သတ်မှတ်ထားတဲ့ အချိန်အတိုင်း အာမခံနိုင်တယ်လို့ ယူဆလိုက်တာ - နှစ်ခုလုံးမှာ ဒီလိုမဟုတ်ပါဘူး။
  • testing track တွေ ဖြတ်သန်းပြီးသားလို့ risky change တစ်ခုအတွက် staged rollout ကို ကျော်သွားတာ။
  • ဒီ course က Android Development, Flutter, iOS Development, React Native tutorial တွေကို ထပ်မသင်ပါ — framework hands-on depth အတွက် အဲဒီ course တွေဆီ ဆက်သွားပါ။ ဒီ course က framework-neutral mobile architecture, decision-making, build/deployment/security concept တွေကိုသာ သင်ပေးပါတယ်။

လေ့ကျင့်ခန်း

စိတ်ကူးထားတဲ့ app change တစ်ခု (ဥပမာ payment flow အသစ်) ရွေးပါ။ Google Play နဲ့ App Store listing update က ဘာတွေလိုမလဲ draft ရေးပြီး evaluateReleaseReadiness-စတိုင် function ကို အလျင်စလိုပြင်ဆင်ထားတဲ့ version နဲ့ စနစ်တကျပြင်ဆင်ထားတဲ့ version နှစ်ခုလုံးအတွက် run ကြည့်ပါ။

You'll know it worked when: not-ready app က { ready: false, missing: [ 'complete store listing', 'privacy disclosures' ] } ကို ပြန်ပေးပြီး ready app ကတော့ { ready: true, missing: [] } ဖြစ်ပါတယ်။

Google Play နှင့် Apple App Store | Thuta Learning