လွယ်လွယ်ပြောရရင် SDK (Software Development Kit) ဆိုတာ app တစ်ခုဆောက်ဖို့ လိုတဲ့ ကိရိယာတွေ၊ စာကြည့်တိုက်တွေ၊ နမူနာ code တွေကို တစ်ဗူးတည်း ထုပ်ပေးထားတာပါ။ အိမ်ဆောက်ဖို့ အုတ်ခဲတစ်ခဲချင်း ကိုယ်တိုင် ဖုတ်စရာ မလိုဘဲ၊ အဆင်သင့် အုတ်တွေ၊ ဘိလပ်မြေတွေ ဝယ်လာသလိုပေါ့။

ကျွန်တော် ပထမဆုံး Android app စဆောက်တုန်းက SDK ဆိုတာ ဘာမှန်းကို မသိခဲ့ဘူး။ Android Studio ကို install လုပ်လိုက်ရင် Android SDK က အလိုလို ပါလာတယ်။ Button နှိပ်ရင် ပေါ်လာတာ၊ ဖုန်း screen ပေါ်မှာ စာပြတာ၊ GPS က နေရာရှာတာ — ဒါတွေအားလုံးကို ကိုယ်တိုင် အစအဆုံး ရေးစရာ မလိုဘူး။ SDK က ပေးထားတဲ့ Function တွေကို ခေါ်သုံးရုံပဲ။

SDK ထဲမှာ ဘာတွေ ပါလဲ?

SDK တစ်ဗူးထဲမှာ အဓိက ၄ မျိုးလောက် ပါတတ်တယ်။

Libraries — အဆင်သင့် code အတုံးတွေ။ ဥပမာ ဖုန်းကင်မရာကို ဖွင့်ဖို့ Camera Library၊ မြေပုံ ပြဖို့ Map Library။ ကိုယ်တိုင် ရေးရင် ရက်သတ္တပတ်ချီ ကြာမယ့် အလုပ်ကို တစ်ကြောင်းတည်းနဲ့ ခေါ်သုံးရုံပဲ။
API Documentation — ဘယ် Function က ဘာလုပ်တယ်၊ ဘယ်လို သုံးရတယ်ဆိုတဲ့ လက်စွဲစာအုပ်။ Documentation ကောင်းတဲ့ SDK က သုံးရတာ အများကြီး လွယ်တယ်။
Sample Code — နမူနာ app အသေးလေးတွေ။ ဘယ်လို စရမယ်ဆိုတာ မသိရင် နမူနာကို ကြည့်ပြီး လိုက်လုပ်ရုံပဲ။
Tools — Emulator လို စမ်းသပ်ဖို့ ကိရိယာတွေ။ ဖုန်းအစစ် မရှိဘဲ ကွန်ပျူတာပေါ်မှာ ဖုန်းပုံစံ အတုနဲ့ app ကို စမ်းလို့ရတယ်။

SDK နဲ့ API နဲ့ Library ဘာကွာလဲ?

ဒီ ၃ ခုက ဆင်တူသလို ထင်ရပေမယ့် မတူဘူး။

Library ဆိုတာ code အတုံးတစ်ခုတည်း။ ဥပမာ စာရင်းတွက်ဖို့ Library တစ်ခု။ API ဆိုတာ Library နဲ့ စကားပြောတဲ့ နည်းလမ်း — ဘယ် Function ကို ဘယ်လို ခေါ်ရမယ်ဆိုတဲ့ စည်းကမ်း။ SDK ဆိုတာ အဲဒီအရာတွေအားလုံးကို တစ်ဗူးတည်း ထုပ်ထားတာ။ Library တွေ + API + Documentation + Tools အစုံ။

လက်ဖက်ရည်ဆိုင်နဲ့ ပြောရရင် Library က လက်ဖက်ခြောက်တစ်ထုပ်၊ API က လက်ဖက်ရည်ဖျော်တဲ့ နည်းလမ်း၊ SDK က လက်ဖက်ရည်၊ နို့၊ သကြား၊ ခွက်၊ ဇွန်း အစုံပါတဲ့ အဆင်သင့် Set တစ်ခုလုံးပေါ့။

နာမည်ကြီး SDK တွေ

Android SDK — Android app ဆောက်ဖို့ မရှိမဖြစ်။ Android Studio ထဲမှာ ပါပြီးသား။
iOS SDK — iPhone app ဆောက်ဖို့။ Xcode နဲ့အတူ လာတယ်။
Facebook SDK — ကိုယ့် app ထဲမှာ Facebook Login ထည့်ချင်ရင် ဒီ SDK ကို သုံးတယ်။ ကိုယ်တိုင် Login စနစ် ဆောက်စရာ မလိုဘူး။
Google Maps SDK — ကိုယ့် app ထဲမှာ မြေပုံ ပြချင်ရင် ဒါသုံးတယ်။ Grab, Foodpanda တို့လို app တွေက ဒါကို သုံးထားတာ။
Stripe SDK — Online ငွေပေးချေမှု ထည့်ဖို့။ ငွေပေးချေမှုလို အရေးကြီးတဲ့ အပိုင်းကို ကိုယ်တိုင် မရေးဘဲ၊ စမ်းသပ်ပြီးသား SDK ကို သုံးတာက ပိုလုံခြုံတယ်။
Firebase SDK — Google ရဲ့ Backend အဆင်သင့် Set။ Database၊ Login၊ Notification တွေကို ကိုယ်တိုင် Server ဆောက်စရာ မလိုဘဲ ရတယ်။

SDK သုံးရင် ဘာတွေ သတိထားရမလဲ?

Version — SDK အသစ်ထွက်တိုင်း ချက်ချင်း Update လုပ်စရာ မလိုဘူး။ ကိုယ့် app နဲ့ ကိုက်မကိုက် အရင် စမ်းပါ။ Version အဟောင်းနဲ့ အသစ် ပြောင်းရင် Function နာမည် ပြောင်းသွားတတ်တယ်။
Size — SDK ကြီးလေ ကိုယ့် app ကြီးလေပဲ။ မလိုတဲ့ SDK တွေ ထည့်ထားရင် user တွေက app ကို Download လုပ်ရတာ လေးတယ်။
Permission — SDK တချို့က user data ကို တောင်းတယ်။ ဘာလို့ တောင်းလဲဆိုတာ မသိဘဲ ထည့်မိရင် user ရဲ့ Privacy ထိခိုက်နိုင်တယ်။ နာမည်ကြီး၊ ယုံကြည်ရတဲ့ SDK ပဲ သုံးပါ။
မှီခိုမှု — SDK ကို သုံးလိုက်တာနဲ့ အဲဒီ Company ကို မှီခိုသွားတယ်။ Company က SDK ကို ရပ်လိုက်ရင် ကိုယ့် app လည်း ထိတယ်။ ဒါကြောင့် ကိုယ်ပိုင် အရေးကြီးတဲ့ Logic ကို SDK ပေါ် အကုန် ပုံမထားပါနဲ့။

ကိုယ့်အတွက် ဘာထူးလဲ?

သင် app သုံးတိုင်း SDK နဲ့ ထိတွေ့နေတယ်။ ဖုန်းထဲက app တစ်ခုမှာ Google Map ပေါ်လာတာ၊ Facebook နဲ့ Login ဝင်လို့ရတာ၊ QR Code Scan ဖတ်လို့ရတာ — ဒါတွေအားလုံး SDK တွေရဲ့ အလုပ်ပဲ။ Developer တွေ အတွက်တော့ SDK ဆိုတာ အချိန်ကုန်သက်သာစေတဲ့ အကောင်းဆုံး မိတ်ဆွေပဲ။ ဘီးကို ပြန်မတီထွင်ဘဲ၊ ရှိပြီးသား ဘီးကို ယူသုံးရုံပဲ။

တစ်ခုတော့ မှတ်ထားပါ — SDK က ကိရိယာပဲ။ အိမ်ကောင်းကောင်း ဆောက်ဖို့ ကိရိယာကောင်းရှိရုံနဲ့ မလုံလောက်ဘူး။ Design နဲ့ အတွေးအခေါ်က ကိုယ့်အလုပ်ပဲ။ Tool Box ကောင်းကောင်းရှိရင် အလုပ်မြန်တယ်၊ ဒါပေမယ့် ဘာဆောက်မယ်ဆိုတာကတော့ ဆောက်တဲ့သူပဲ ဆုံးဖြတ်ရတယ်။ 🙂

Avatar photo
Min SiThu
@itsmeminsithu

Software Engineer & Tech Content Creator

View all posts