ကျွန်တော်ဟာ Flutter ကို ကိုဗစ်ဒုတိယလှိုင်း မြန်မာပြည်မှာ ဖြစ်ပြီးတဲ့ အချိန်ကနေ စပြီး လေ့လာခဲ့ပါတယ်။ ပုံမှန်ဆိုရင် အသစ်တစ်ခုကို လေ့လာဖို့ အချိန်လိုအပ်ပါတယ်။ တစ်ခြားအလုပ်တွေလဲ လုပ်နေရတဲ့ အတွက် တော်ရုံနဲ့ Flutter ကို မလေ့လာဖြစ်ခဲ့ပါဘူး။ ဒါပေမဲ့ ကိုဗစ်ဒုတိယလှိုင်းဖြစ်တော့ အိ်မ်မှာပဲ နေရပါတယ်။ ကျွန်တော့်အတွက် လေ့လာဖို့ အချိန်တွေ ထွက်လာတဲ့အတွက် Flutter ကို လေ့လာဖြစ်ခဲ့ပါတယ်။
ကျွန်တော်လေ့လာတဲ့ အခါမှာလဲ အခြာနည်းပညာတွေကို လေ့လာသလိုပဲ Official Documentation တွေကိုပဲ အဓိကထားပြီးလေ့လာသွားမှာ ဖြစ်ပါတယ်။ ကျွန်တော်လေ့လာခဲ့တဲ့ နမူနာပရိုဂျက်များကို ဒီ Repository ပေါ်မှာ တင်သွားမှာ ဖြစ်ပါတယ်။
Flutter ကို Self Study လုပ်ပြီး လေ့လာနေသူတွေအတွက် အထောက်အကူတစ်ခုဖြစ်မယ်လို့ ရည်ရွယ်ပြီးရေးသားသွားမှာ ဖြစ်ပါတယ်။
ဒီနေရာကတော့ အခြေခံသိသင့်သိထိုက်တာတွေကို စမ်းသပ်ထားတဲ့ နေရာဖြစ်ပါတယ်။ အခြေခံတွေဖြစ်ကြတဲ့ Stateless Widget, Stateful Widget, Inherited Widget ဒါတွေကို ဒီနေရာမှာလေ့လာသွားမှာဖြစ်ပါတယ်။
တဖန် Flutter မှာ Layout Widget တွေရှိိကြပါတယ်။ UI ကို ရေးသားတဲ့ နေရာမှာ Layout ဆိုတာလဲ မရှိမဖြစ် အရေးပါတဲ့ အချက်တစ်ခုဖြစ်ပါတယ်။ ဒီနေရာမှာ ဒါတွေကို လေ့လာသွားမှာ ဖြစ်ပါတယ်။
Flutter ရဲ့ Basice of the basic တွေကို ဒီနေရာမှာ လေ့လာသွားမှာ ဖြစ်ပါတယ်။
အခြေခံ UI လေးတွေကို ရေးသားလာနိုင်တဲ့နောက်မှာ View တစ်ခုကနေ တစ်ခုကို ဘယ်လို Route လုပ်ကြမလဲဆိုတာကို လိုချင်လာကြမှာ ဖြစ်ပါတယ်။ Widget တွေကို Route လုပ်လို့ရသလို Route Name တွေကို သတ်မှတ်ပြီး Route လုပ်လို့လဲရပါတယ်။ Application တစ်ခုကို ရေးသားပြီဆိုရင်တော့ Route Name တွေကို အသုံးပြုတာပိုပြီး သင့်တော်မယ်ထင်ပါတယ်။
တဖန် Route Target Widget ဆီကို Data တွေကိုဘယ်လို Pass လုပ်မှာလဲ၊ ပြီးတော့ Route လုပ်လိုက်တဲ့ Page ဆီက ပြန်ပြီးပေးလိိုက်တဲ့ Data တွေကို ဘယ်လို လက်ခံမှာလဲ ဆိုတာက ဒီနေရာမှာ လေ့လာသွားမှာ ဖြစ်ပါတယ်။
Application တစ်ခုမှာ အပါအများဆုံးအရာထဲမှာ Form ဟာလဲ တစ်ခုအပါအဝင်ဖြစ်ပါတယ်။ User Input တွေကို လက်ခံရယူတဲ့ နေရာမှာ Form တွေကို အသုံးပြုရပါတယ်။ Text တွေကို လက်ခံရယူတဲ့ Input တွေရှိသလို၊ တစ်ခုကို ရွေးချယ်ရတဲ့ Selection Input တွေရှိကြပါတယ်။ တဖန် Date, Time, Date Range, Time Range တို့ကို လက်ခံရယူတဲ့ Picker တွေရှိကြပါတယ်။ ဒီနေရာမှာတော့ Form Inputs တွေ၊ Validation တွေကို လေ့လာသွားမှာ ဖြစ်ပါတယ်။
Application တွေမှာ လက်ရှိ အသုံးပြုသူတွေက ဘယ်အထိ အလုပ်လုပ်ထားပြီးပြီဆိုတာကို ဖေါ်ပြနိုင်တဲ့ Satate တွေဆိုတာရှိပါတယ်။ မိုဘိုင်း အပလီကေးရှင်းတွေဟာ အပလီကေးရှင်းတစ်ခုကို အသုံးပြုနေရင်း အခြားအပလီကေးရှင်းတစ်ခုကို အသုံးပြုခဲ့မိရင် လက်ရှိအပလီကေးရှင်းဟာ ရပ်သွားပြီး နောက်အပလီကေးရှင်းကို အသုံးပြုစေမှာ ဖြစ်တယ်။
အရင်အသုံးပြုနေတဲ့ အပလီကို ပြန်ပြီးသုံးရင် ဘာမှမလုပ်ထားဘူးဆိုရင် အရင်အသုံးပြုနေခဲ့တဲ့ State တွေဟာပျက်သွားပြီး အသစ်ကနေပြန်ပြီး စရမှာ ဖြစ်ပါတယ်။ ဒါ့ကြောင့် ဒီလိုနေရာမျိုးတွေမှာ Current ကို သိမ်းထားနိုင်ဖို့ ဘယ်လိုလုပ်ကြမယ်ဆိုတာကို လေ့လာသွားကြမှာ ဖြစ်ပါတယ်။ ဒီနေရာမှာတော့ Share Preferences တွေ Database တွေကို အသုံးပြုပြီး State တွေကို သိမ်းသွားဖို့ လေ့လာသွားကြပါမယ်။
Database ကို အသုံးပြုတဲ့ နေရာမှာလဲ Flutter မှာ Sqflite API အပြင် အခြားသော ORM API များကိုလဲ လေ့လာသွားပါမယ်။
Mobile Application တစ်ခုကို ရေးသားပြီး လိုအပ်တဲ့ Data တွေကို Local Storage တွေ၊ ပြီးတော့ Local Database တွေမှာသာ သိမ်းထားမယ်ဆိုရင် ဒါဟာ Stand Alone Application တစ်ခုသာဖြစ်ပါမယ်။ Multi User တွေ အသုံးပြုနိုင်တဲ့ Application တစ်ခုကို ရေးကြမယ်ဆိုရင်တော့ Back End ကို မသုံးလို့ မဖြစ်တော့ပါဘူး။ REST API တွေကို အသုံးပြုပြီး ရေးသားမှာလား Google ရဲ့ Firebase ကို အသုံးပြုမှာလား ဆိုတာဟာ ရွေးချယ်စရာဖြစ်လာပါမယ်။
ဒီနေရာမှာတော့ REST API တွေကိုကော Firebase ကိုပါ အသုံးပြုပြီး လေ့လာသွားမှာ ဖြစ်ပါတယ်။