Flutter & Node.js သင်တန်း
👉 Server Side ကော Client Side ပါ အပြည့်အစုံ Develop လုပ်နိုင်ရန်အတွက်
👉 Node.js နှင့် Flutter တွဲထားသည့် Development သင်တန်း ဖွင့်လှစ်သင်ကြားပေးသွားမည်၊
👉 သင်ရိုးအသေးစိတ် ( အောက်ဆုံးတွင် Outline Detail ပါဝင်သည် )
Node.js
👉 Node.js ကို အသုံးပြုဖို့ အတွက် JavaScript ကို နားလည် ကျွမ်းကျင်ထားဖို့လိုပါတယ်၊
👉 ဒီ့အတွက် Node.js သင်တန်းမှာ JavaScript နဲ့ Develop လုပ်လို့ရအောင်ရော TypeScript ကို နားလည် ကျွမ်း ကျင်သွားအောင်ပါ အခြေခံကနေ စပြီး သင်ကြားပေးသွားမှာဖြစ်ပါတယ်၊
👉 JavaScript နဲ့ TypeScript ကို နားလည် ကျွမ်းကျင်သွားရင် JavaScript မှာ ကွဲထွက်သွားတဲ့ Node.js Concepts တွေကို သင်ကြားပေးသွားမှာဖြစ်ပါတယ်၊
👉 Node.js Concepts တွေ ပြီးရင် Client Server Communication အကြောင်း ကောင်းကောင်းနားလည် သွားမှာ ဖြစ်သလို
👉 Request, Request Params နှင့် Response Type အမျိုးမျိုးကို လဲ နားလည်အောင် သင်ကြားပေးမှာ ဖြစ်ပါတယ်၊
👉 Node.js Concepts တွေကို နားလည်သွားပြီးရင် ExpressJS ကို အသုံးပြုပြီး Express App ကို တည်ဆောက် ခြင်းအား အခြေခံကနေ စ၍ လေ့လာသွားရမှာ ဖြစ်ပါတယ်၊
👉 Express App ကနေ HTML Page Serving လုပ်ခြင်း Static Files တွေ Serving လုပ်ခြင်း၊ Dynamic Web Page တွေ Rendering လုပ်ခြင်း၊ JSON Data Serving လုပ်ခြင်းတို့ကို အဆင့်ဆင့် သင်ကြား ပေးသွားမှာဖြစ်ပါတယ်၊
ExpressJS
👉 ExpressJS အခြခံကို နားလည်သွားရင် Express Flow ဖြစ်တဲ့ Route, Controller, Model , Response တို့ အလုပ်လုပ်ပုံကို နားလည်အောင် တည်ဆောက်သင်ကြား ပေးသွားမှာဖြစ်ပါတယ်၊
👉 Route တွေကို Guarding လုပ်ဖို့ Middleware အမျိုးမျိုး အသုံးပြုပုံ၊ Input Data တွေကို Validate လုပ်ပုံ၊
👉 Security ပိုင်းအတွက် Token Base Authorization စစ်ဆေးပုံ၊
👉 User အမျိုးမျိုးအတွက် Role Base Authorization စစ်ဆေးပုံတို့ကို လေ့လာသွားရမှာဖြစ်ပါတယ်၊
👉 Server Side အတွက် Node.js အသုံး ပြု၍ Develop လုပ်သွားမည် ဖြစ်ပြီး Node.js, ExpressJS, MongoDB တို့နှင့် ပါတ်သတ်သမျှ သင်ခန်းစာအားလုံး ပါဝင်သွားမည်ဖြစ်သည်၊
👉 အခြေခံမှစ၍ လက်တွေ့ Sample Projects များ အဆင့်ဆင့် ပါဝင်မည်၊
👉 Main Projects အနေနှင့် သတင်းဝက်ဆိုဒ် ( Media Site ) နှင့် Ecommerce ဝက်ဆိုဒ်တို့ ကို အပြည့်အစုံ အစအဆုံး development လုပ်ခြင်းအား အဆင့်ဆင့် သင်ကြားပေးသွားမည်၊
👉 Dynamic Page Rendering လုပ်ဖို့လိုအပ်သည့် View Engine အကြောင်း လေ့လာလိုသူများအတွက်လဲ မတူညီတဲ့ View Engine အမျိုးမျိုးအားအသုံးပြု၍ HTML Page တွေ မှာ Compile Data များ ထည့်သွင်း၍ RealTime ပြန်တည်ဆောက်ပြီး Response ပေးပုံကိုလဲလေ့လာသွားရမှာ ဖြစ်ပါတယ်၊
👉 Node.js နှင့် ပါတ်သတ်သည့် Project တိုင်းတွင် ပြန်လည် အသုံးပြုရသည့် Common Codes များကို Library များအဖြစ် အသုံးပြု၍ နောက်ပိုင်း Project များတွင် အလွယ်တကူ ပြန်လည် သုံးနိုင်ရန် Custom Modules များ တည်ဆောက်ခြင်းကိုလဲလေ့လာသွားရမှာ ဖြစ်ပါတယ်၊
Database
👉 Node Package Manager ကို အသုံးပြု၍ Project အတွက် လိုအပ်သည့် Packages များကို ရယူအသုံးပြုပုံကို လဲလေ့လာသွားရမှာဖြစ်သလို Global Object တွေအကြောင်း Request Data မှာ Custom Data များ ထည့် သွင်း၍ Route ကနေ Controller သို့ Data Passing လုပ်ပုံ အကြောင်းတွေကိုလဲ သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊
👉 File Handling အတွက် Node.js ကနေ Text ဖိုင် JSON ဖိုင်နှင့် File Type အမျိုးမျိုးတို့ကို ဖန်တီးခြင်း , ဖတ်ခြင်း တို့ကိုလဲ လေ့လာသွားရမှာဖြစ်ပါတယ်, Image File ဖတ်ခြင်း Response ပေးခြင်း သိမ်းခြင်း တို့ကိုလဲ လေ့လာသွားရမှာဖြစ်ပါတယ်၊
👉 MongoDB သင်ခန်းစာတွေ Database Schema သတ်မှတ်ခြင်း၊ Data Type အမျိုးမျိုး သတ်မှတ်ခြင်း၊ Mongo Slow Train ပြဿနာကို ဖြေရှင်းဖို့ Indexes များ ဖန်တီး၍ Query မြန်အောင် ဖန်တီးခြင်း၊ Single Query, Multiple Query, Aggregation Operations များအားလုံးကို သင်ကြားသွားမှာ ဖြစ်သလို လက်တွေ့ အသုံးပြုပြသွားမှာဖြစ်ပါတယ်၊ ထို့ပြင် လက်တွေ့ Project များအတွင် အသုံးများသည့် MongoDB အတွက် ODM (Object Data Modeling) တစ်ခုဖြစ်သည့် mongoose ကိုလဲ အသေးစိတ် အပြည့်အစုံ သင်ကြားပေးသွားမှာဖြစ်ပါတယ်၊ တစ်ခုထပ်ပိုတဲ့ Collelctions များ ကို Join ခြင်းလို လုပ်ဆောင်မှုမျိုး mongoose နှင့် Indexes ဖန်တီးပုံ နှင့် ရှိသမျှ Query Techniques အားလုံးကိုလဲ လေ့လာသွား ရမှာဖြစ်ပါတယ်၊
👉 Express App တည်ဆောက်ရာမှာ Http အတွက် လွယ်ကူပေမယ့် HTTPS အတွက် သီးသန့် Setup လုပ်ပြီးရေးသား ရတဲ့ အချက်တွေကိုလဲ လေ့လာသွားရမှာ ဖြစ်ပါတယ်၊ HTTPS အတွက် Server မှာ Nginx Install လုပ်၍ Certificate ထည့်သွင်းခြင်း၊ Port အလိုက် Base Routes များ Nginx Config File တွင် သတ်မှတ်ခြင်း၊ Static IP ရယူ၍ Domain နှင့် ချိတ်ဆက်ခြင်း၊ certbot အသုံးပြု၍ Free Certificate ထည့်သွင်းခြင်း ၊ Server Setup လုပ်တဲ့အခါ SSH Client အား အသုံးပြုခြင်း အားလုံးပါဝင်ပါတယ်၊
Teaching Techniques
👉 အဆင့်မြင့် Software Company များတွင် အလုပ်လုပ်သည့်အခါ လိုက်နာလုပ်ဆောင်သည့် နည်းလမ်းများကိုပါနားလည် သွားစေရန် အတွက် Project တစ်ခု စတည်သည့်အခါ Code မရေးခင် Sinior Developer များမှ Project မစခင် Project Manager အနေနှင့် လုပ်ဆောင်ရသည့် Project Architecture နှင့် Design အား ရေးဆွဲခြင်း, Database Design ရေးဆွဲခြင်း၊ Code Flow အား Project Manager နှင့် Senior Developer တို့ တွဲ၍ Code Flow Layout တည်ဆောက်ခြင်း၊ UML ( Unified Modeling Language ) အားအသုံး ပြု၍ Class Based Dependencies များတည်ဆောက်၍ Project Overview ဖန်တီးခြင်းတွေကို အဆင့်ဆင့် လိုအပ်ချက်အလိုက် ရှင်းလင်း တည်ဆောက်ပြပြီးမှ Code ပိုင်းဆိုင်ရာကို စတင် ရေးဆွဲမှာ ဖြစ်ပါတယ်၊
👉 သင်တန်းသား များအနေနှင့် သင်တန်းပြီးပါက မည်သည့် နိုင်ငံ မည်သည့် Company မှာ အလုပ် ဝင်လုပ်သည်ဖြစ် Project Structure နှင့် Project Flow ကို ကောင်းကောင်း နားလည်ထားပြီး Project တိုင်းကို စိတ်ပင်ပန်းမှု မရှိပဲ သက်တောင့် သက်သာ ရေးဆွဲနိုင်မှာ ဖြစ်ပါတယ်၊
👉 Image Processing အတွက် Base64 Image Upload Data များကို Process လုပ်၍ Server မှာ သိမ်းခြင်း Single File သိမ်းခြင်း Multiple File သိမ်း ခြင်းတို့ အကြောင်းကို လေ့လာသွားရမှာဖြစ်ပါတယ်၊
👉 ပုံမှန် JSON, HTML , CSS , JavaScript တို့လို ဒေတာတွေသာလျှင်မဟုတ်ဘဲ Game Data များကို Loading မြန်စေအောင် ဖိုင်ဆိုဒ်ချုံ့ထားတဲ့ Gzip ဖိုင် Brotli ဖိုင်တို့ကိုပါ Response ပြန်ပေးတဲ့အခါ မှန်ကန်တဲ့ Response Header Type ကို အသုံးပြုပြီး ပြန်ပေးတတ်စေရန် အတွက်လဲ မတူညီတဲ့ Header Type အမျိုးမျိုး အကြောင်းကို သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊
Advanced Concepts
Node.js က Single Threaded ဘာသာရပ်ဖြစ်တဲ့အတွက် Server မှာ Virtual CPU ဘယ်နှစ်လုံး ရှိရှိ လုပ်ငန်းစဉ်အားလုံး အတွက် CPU တစ်လုံးထဲကို အသုံးပြုပြီး Calculation နဲ့ Data Processing ကို လုပ်ကိုင်သွား မှာ ဖြစ်ပါတယ်၊ ပုံမှန် Http/Https Requests တွေအတွက် CPU တစ်လုံးထဲ အလုပ်လုပ်ရုံနဲ့ Observer pattern သုံးပြီး None Blocking IO အနေနဲ့ အလုပ်လုပ်အောင် တည်ဆောက်ထားတဲ့ Node.js က ပြဿနာ မရှိအလုပ်လုပ်နိုင်ပါတယ်၊ ဒါပေမယ့် အချိန်တို အတွင်း သိန်း သန်း ချီတဲ့ Requests တွေကို လက်ခံနိုင်ဖို့အတွက် Server မှာ ရှိတဲ့ CPU အားလုံးကို သုံးပြီး Project ကို Run ထားနိုင်ရင် Concurent Requests တွေကို ပိုမို လျှင်မြန်စွာ လုပ်ကိုင်နိုင်မှာ ဖြစ်သလို အသုံးပြုသူ သန်း ပေါင်းများစွာကိုလဲ Stable ကျကျ Support ပေးနိုင်မှာ ဖြစ်ပါတယ်၊ ဒါ့ကြောင့် ပုံမှန် Http/Https Requests တွေအတွက် CPU အားလုံးမှာ အလုပ်လုပ်ဖို့ CPU Clustering လုပ်နိုင်ပုံကို သင်ကြားပေးပါတယ်၊ CPU Clustering လုပ်ရာတွင် Master Process နဲ့ Child Process တို့ Communicate လုပ်ပုံကိုလဲ သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊ PM2 Package Manager ကို အသုံးပြုပြီး Clustering လုပ်ပုံရော Multiple Project ကို Multiple CPU မှာ Clustering မလုပ်ပဲ Run ပုံကိုရော အားလုံး သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊
RealTime Messaging နဲ့ Push Notification တို့အတွက် Socket.io ကို အသုံး ပြုပြီး Realtime Chatting App တည်ဆောက်ပုံကို သင်ကြားပေးသွားမှာ ဖြစ်သလို Socket.io ရဲ့ Intervel Connection Limit ကို ကျော်ပြီး အလုပ်လုပ်နိုင်ဖို့အတွက် Low-Level Web Socket ကို အသုံးပြုပြီး Chatting App တည်ဆောက်ပုံကိုလဲ လေ့လာသွား ရမှာ ဖြစ်ပါတယ်၊
လုပ်ငန်းလိုအပ်ချက်ကြောင့် JavaScript ကို မသုံးပဲ TypeScript အသုံးပြုပြီး Node.js Project ကို တည်ဆောက် လို သူတွေအတွက် အဆင်ပြေအောင် TypeScript အသုံးပြု၍ Project တည်ဆောက်ပုံကိုပါ အဆင့်ဆင့် သင်ကြားပေး ထားပါတယ်၊
Node.js ကို သင်ကြားရာမှာ သင်ကြားပြီးသွားတဲ့ Concepts တွေကို နားလည်စေအောင်လို့ Sample Projects လေးတွေကို အဆင့်ဆင့် ပြုလုပ်ပြီး သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊ Sample Projects တွေက သင်ခဲ့ပြီးတဲ့ သင်ခန်းစာတွေကို သေချာ ကြေညက်အောင် ရော လက်တွေ့ အသုံးချနိုင်အောင်ရော ကူညီသွားမှာဖြစ်ပါတယ်၊ သင်ခဲ့ပြီးသားတွေကို လက်တွေ့ အသုံးချတဲ့ သဘောပါ၊ Sample Projects တွေကို နားလည်မှု သေချာ တတ်မြောက်ပြီလို့ သတ်မှတ် နိုင်မှာ ဖြစ်ပါတယ်၊ ဒါမှပဲ နောက်တစ်ဆင့်ကို ဆက်သွားရမှာပါ၊ အခု ကြေငြာမှာပါတဲ့ Sample Projects တွေက အကုန်မဟုတ်သေးပါဘူး၊ သင်ရိုးကို စီစဥ်ရာမှာ အပြောင်းအလဲ များစွာရှိတဲ့အတွက် အကုန်မထည့်ထားတာပါ၊ နောက်ပိုင်းထပ်ဖြည့်ဖို့လဲ ရှိပါတယ်၊ Main Project နှစ်ခု အနေနှင့် Media ( သတင်း ) App အတွက် Backend Server တည်ဆောက်ခြင်းနဲ့ E-Commerce Project အတွက် Backend Server တည်ဆောက်ပုံ ကို အသေးစိတ် အဆင့်ဆင့် Publish လုပ်နိုင်တဲ့ အဆင့်ထိ သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊
Flutter
Flutter ကို သင်ကြားရာတွင် Flutter Framework အားရေးသားဖို့အတွက် အသုံးပြုထားသည့် Dart Programming ဘာသာရပ်အား အရင်ဆုံး လေ့လာသွားရမည် ဖြစ်ပါသည်၊
Dart သင်ခန်းစာများ ပြီးသွားပါက လက်တွေ့ လေ့လာထားသမျှကို လက်တွေ့ Project များတွင် သေချာအသုံးပြုနိုင်ရန် Sample Projects များ တည်ဆောက် လေ့လာသွားရမည် ဖြစ်သည်၊ Sample Projects များအား ကျွမ်းကျင်စွာ လေ့လာသွားနိုင်မှ Dart Programming အား နားလည် ကျွမ်းကျင်ပြီဟု ယူဆတဲ့အတွက် Flutter Framework ကို လေ့လာသွားရမှာ ဖြစ်ပါတယ်၊ Flutter ကို သင်ကြားရာတွင် အရင်ဆုံး View Widgets , Action Widget, Layout Widgets များအားလုံးကို အဆင့်ဆင့် သင်ကြားပေးသွားမည်၊
အခြေခံ Widgets များအား နားလည် ကျွမ်းကျင်သွားပါက Widget State Management ကို နားလည်အောင် သင်ကြားပေးသွားမှာဖြစ်တယ်၊ ထို့နောက် Input Handling, Gesture, Image Prototype Item, Navigation တို့ အကြောင်းလေ့လာသွားရမှာ ဖြစ်ပါတယ်။
Storage အတွက် Application Cache Storage, Sqlite Persistance Storage, File Storage, Key-Value Storage, Hive DB တို့ အကြောင်းကို အသေးစိတ် သင်ကြားပေးသွားမှာဖြစ်ပါတယ်၊ Data State Management အတွက် Provider ကို အသေးစိတ် သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊
State Management
Provider ကို သင်တန်းတွင် State Management အတွက် အဓိက အသုံးပြုသွားမည်ဖြစ်ပြီး အခြား Statemanagement Library များဖြစ်သည့် River-pod, setState (low-level) , ValueNotifier & InheritedNotifier, June, Redux, Fish Redux, BLoC / RX , GetIt, MobX ,Binder, GetX , Triple Pattern, soliddart, flutter_reactive_value, Elementary တို့ အကြောင်းနှင့် အသုံးပြုပုံများကိုလည်း မိတ်ဆက် သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်။
👉 Application တစ်ခုလုံးအတွက် Dark Theme နှင့် Light Theme ပြောင်းလဲအသုံးပြုလို့ရအောင် Develop လုပ်ပုံနှင့် Custom Widget Library တည်ဆောက်ပုံတို့ကိုလဲ လေ့လာသွားရမှာဖြစ်ပါတယ်၊
👉 App ကနေ Support ပေးတဲ့ ဘာသာစကားကိုလဲ တစ်မျိုးထဲ မဟုတ်ပဲ ဘာသာစကား ၂ ခု ၃ ခု ထည့်ပြီး အသုံးပြုလို့ရအောင်၊ အသုံးပြုသူ အနေနဲ့ စိတ်ကြိုက် ဘာသာစကားကို ရွေးချယ်ပြီးသုံးလို့ရအောင် Localization ထည့်သွင်း ပုံကိုလဲသင်ကြား ပေးထား ပါတယ်၊
👉 User App သို့ RealTime Message များပို့ရန် Notification များပို့ရန် အတွက် Notification Service ကို တည်ဆောက်ခြင်းအား Firebase Cloud Messaging ဝန်ဆောက်မှုကို အသုံးပြု၍ လေ့လာသွားရမှာဖြစ်ပါတယ်၊ Google ရဲ့ FCM Service အပြင် Pusher ကိုအသုံးပြုပြီး Alert နှင့် Notification များပို့ပုံကိုလဲ လေ့လာသွားရမှာ ဖြစ်ပါတယ်။
👉 အခါအားလျော်စွာ လိုအပ်နိုင်သည့် Embedded WebView ကိုလဲ အသုံးပြုတတ်သွားအောင် သင်ကြားပေးမှာဖြစ်ပြီး HTML, CSS, JavaScript Code များကို Embedded WebView ထဲတွင် ထည့်သွင်း အသုံးပြုပုံကိုလဲ လေ့လာသွားရမှာ ဖြစ်ပါတယ်၊
Teaching Concepts
သင်ခန်းစာများ သင်ကြားရာတွင် ရှင်းလင်း သင်ပြရုံတင်မကပဲ ဘာလို့ လိုအပ်တာလဲ နှင့် ဘယ်လို အခြေအနေမှာ သုံးရမှာလဲ ဆိုတဲ့ Use Case ကိုပါ သင်ကြားပေးသည့်အတွက် ကိုယ်ပိုင် Project တည်ဆောက်ရာမှာ လိုအပ်ချက်ပေါ်မူတည်၍ အသုံးပြုရမည့် Widget နှင့် Library တို့ကိုပါ သေချာ နားလည် သွားမှာဖြစ်ပါတယ်၊
Flutter အသုံးပြု၍ POS Software များရေးရာတွင် Data Sharing အတွက် အခြား Apps များသို့ စာများ ပုံများ Sharing လုပ်ခြင်းအားလဲ လေ့လာသွားရမှာ ဖြစ်ပါတယ်၊ Mobile App ရော Desktop App ကပါ Bluethood Printer နှင့် USB Printer တို့အားအသုံးပြု၍ Voucher ထုတ်ပုံများကိုလဲ လေ့လာသွားရမှာဖြစ်ပါတယ်၊
QR Code Scanning, BarCode Scanning တို့ကို အသုံးပြု၍ စျေးရောင်းရသည့် POS software များ ရေးသားနိုင်အောင် QR Code နှင့် BarCode Scanner များ ကိုယ်ပိုင်တည်ဆောက်အသုံးပြုမှာ ဖြစ်သလို ပြင်ပ Scanner Hardware များမှ Input များကို လက်ခံ အလုပ်လုပ်နိုင်အောင်လဲ သင်ကြားပေးသွားမှာဖြစ်ပါတယ်၊
မတူညီတဲ့ Screen အမျိုးမျိုး အတွက် Layout Design ရေးဆွဲပုံကိုလဲ Desktop , Android , iOS တို့ရဲ့ Screen မျိုးစုံ အတွက် Code Based တစ်ခုထဲနှင့် ရေးဆွဲပုံရော, Screen Size ကို Media Query နှင့် Detect လုပ်၍ Screen Size အမျိုးမျိုးအတွက် သက်ဆိုင်ရာ Layout ကို Rendering လုပ်ပုံကိုလဲ လေ့လာသွားရမှာ ဖြစ်ပါတယ်၊
Code အားလုံးကို ကိုယ်တိုင်ရေးရမှာဖြစ်ပေမည့် အချို့သော Libraries များက လုပ်ငန်းကို ပိုသွင် စေပြီး အလုပ် လုပ်ရမည့် အချိန်ကိုလဲ လျှော့ချပေးသည့် အတွက် ထို Libraries များ အသုံးပြုခြင်းက Project ကို ပိုမို မြန်ဆန် ကောင်းမွန်စေမှာ ဖြစ်လို့ Flutter အတွက် မဖြစ်မနေသုံးသင့်သည့် Libraries ( Plugins ) များ ကိုလဲလေ့လာ သွားရမှာဖြစ်ပါတယ်၊ သင်တန်းတွင် မပါဝင်တဲ့ Libraries များကိုလဲ ကိုယ်တိုင် အသုံးပြုလိုတဲ့အခါ မှာ အလွယ်တကူ ယူသုံးတတ်အောင် သင်ကြားပို့ချပေးသွားမှာ ဖြစ်ပါတယ်၊
Flutter က ပြီးပြည့်စုံတဲ့ Framework တစ်ခုဖြစ်ပြီး အတွေ့ အကြုံရှိတဲ့ Developers များအတွက် မလိုအပ်ပေမယ့် စတင်လေ့လာတဲ့ Developer တွေအတွက် Clean Code ရေးသားနိုင်ဖို့ Architectural pattern များ ဖြစ်ကြတဲ့ MVC,MVP, MVVM Design Pattern များကို အသေးစိတ် ရှင်းလင်း သင်ပြပြီး လက်တွေ့လဲ အသုံးပြုပြသွားမှာ ဖြစ်ပါတယ်၊
More Concepts
ပြည့်စုံတဲ့ App တစ်ခု တည်ဆောက်တဲ့အခါ Code တွေနဲ့ Pages တွေအရမ်းများသွားမှာ ဖြစ်ပါတယ်၊ အဲ့ဒီအခါ ကုဒ် တစ်ခု ချင်းစီ လိုချင်တဲ့ ပုံစံ အတိုင်း အလုပ်လုပ်ရဲ့လား သတ်မှတ်ထားတဲ့ လုပ်ငန်းစဉ်အတိုင်း မှန်မှန်ကန်ကန် အလုပ်လုပ်လားဆိုတာ သေချာဖို့လိုပါတယ်၊ Function တစ်ခုကို မှီခိုပြီး ရေးထားတဲ့ ကုဒ်တွေများလာရင် အပြောင်းအလဲ လုပ်မိတာ မျိုးရှိတတ်ပါတယ်၊ အဲ့ဒီအခါ အရင်က အလုပ်လုပ်ပြီး နောက်ပိုင်းပြန်စမ်းသပ်မှ အလုပ်မလုပ်တော့တာမျိုးဖြစ်သွားတတ်တာလဲရှိပါတယ်၊ ဒီလိုပဲ ဒေတာ နဲနဲ နဲ့ စမ်းသပ်တုန်းက အလုပ်ဖြစ်ပြီး ဒေတာ များလာတဲ့အခါ ပြဿနာ ဖြစ်သွားတာမျိုးလဲ ရှိပါတယ်၊ ဒီလို Project ကြီးကြီး တည်ဆောက်တဲ့အခါ ကို့ရဲ့ Project ပေါ်မှာ ယုံကြည်မှူ အပြည့်ရှိဖို့အတွက် , နောက်ပိုင်း ပြန်ပြင်ရတာများပြီး ပြုပြင်ခ စားရိတ် မများဖို့အတွက် နဲ့ App Performanace ကောင်းဖို့အတွက်ဆိုရင် Publish မလုပ်ခင် App-Wide Testing လုပ်ရပါတယ်၊ သင်တန်းမှာတော့ Unit Testing, Widget Testing နဲ့ Integration Testing တွေကို အသေးစိတ် သင်ကြားပေးသွားမှာဖြစ်ပါတယ်၊
Publishing
App တည်ဆောက်ပြီး Google Play Store မှာ တင်ဖို့အတွက် Publishing Version ကို Export လုပ်ပေးရပြီး Play Store မှာ တင်ပေးရပါတယ်၊ ဒီအတွက် လိုအပ်တဲ့ Apk, App Exporting လုပ်ခြင်း iOS အတွက် App Store မှာ တင်ဖို့ Exporting လုပ်ခြင်း, Desktop မှာ အသုံးပြုဖို့အတွက် Exporting လုပ်ခြင်းနဲ့ Web အတွက် Exporting လုပ်ခြင်း Code Signing လုပ်ခြင်း တွေကို လေ့လာသွားရမှာဖြစ်ပါတယ်၊ App Export လုပ်ရာမှာလိုအပ်တဲ့ Launcher Icon သတ်မှတ်ခြင်း, Custom Package Name ပြောင်းလဲခြင်း, Permission များ ထည့်သွင်းခြင်း, App Signing လုပ်ခြင်း, R8 အသုံးပြု၍ Code ချုံ့ခြင်း နှင့် Android Api Version 20 အောက်အတွက် dex limit ပြဿနာကို ဖြေရှင်းခြင်းတို့ကိုပါ လေ့လာသွားရမှာဖြစ်ပါတယ်၊ Play Store မှာ Developer Account ဖွင့်ခြင်းနှင့် App တစ်ခု PlayStore တင်ရာမှာ လုပ်ဆောင်ရတဲ့ လုပ်ငန်း ( အသေးလေးတွေ အများကြီး ) တွေကို လဲ လက်တွေ့ လုပ်ပြ တင်ပြသွားမှာ ဖြစ်ပါတယ်၊ ထို့ပြင် App Version အပြောင်းအလဲ အတွက် Update လုပ်တဲ့အခါ App Version Code ပြောင်းပုံ နှင့် Update လုပ်ပုံကိုပါသင် ကြားပေးထားပါတယ်၊
Sample Project & Support Technique
Sample Projects တွေကတော့ ပြည့်စုံတဲ့ Project အမျိုးအစားမဟုတ်ဘဲ သင်ကြားပြီးထားတဲ့ သင်ခန်းစာတွေကို လက်တွေ့ အသုံးချဖို့အတွက် တည်ဆောက်တဲ့ Project အသေးလေးတွေပါ၊ သင်ရိုး တစ်လျောက်မှာ သင်ထားတဲ့ အချက်အလက်တွေကို နားလည်ဖို့ Sample Projects လေးတွေ အတော်များများ လုပ်သွားရမှာ ဖြစ်ပါတယ်၊ Projects အသေးလေးတွေ များများ ထည့်သွင်းလုပ်ဆောင်ခြင်းက သင်ထားတဲ့ Concepts တွေကို သေချာ နားလည် သွားမှာ ဖြစ်သလို ၄င်း Concepts တွေရဲ့ Real Life Usages တွေဖြစ်တဲ့ ဘယ်လိုအချိန် ဘယ်လိုနေရာများမှာ သုံးရတာလဲ ဆိုတာကိုလဲ ကောင်းကောင်း နားလည်သွားမှာ ဖြစ်ပါတယ်၊ သင်ရိုးမှာ ပါဝင်တဲ့ Sample Projects တွေအပြင် နောက်ပိုင်းလဲ Projects အသေးလေးတွေ ဖြည့်စွက် ထည့်သွင်း သင်ကြားပေးသွားမှာ ဖြစ်ပါတယ်၊
Support Techiniques တွေကတော့ Flutter နဲ့ တိုက်ရိုက် သက်ဆိုင်ခြင်း မရှိပေမယ့် Project တစ်ခု တည်ဆောက်ရာမှာ idea ကနေ Prototype ဖြစ်အောင် ပုံဖော်ပုံနဲ့ ၄င်း Prototype အဆင့်ကိုမှ Layout Design ချရင်း Flow Design သတ်မှတ်ခြင်း User Interface တည်ဆောက်ခြင်းနဲ့ တည်ဆောက်ထားတဲ့ User Interfaces တွေမှာမှ Interactive ဖြစ်စေမယ့် User Experience အတွက် Action, Effect နဲ့ ခံစားချက် တို့ပါ ပါဝင် အောင် ထည့်သွင်းဖို့ အဆင့်ဆင့် လုပ်ဆောင်ရာမှာ လိုအပ်တဲ့ Technique တွေဖြစ်ပါတယ်၊
Project တွေကို တည်ဆောက်ရာမှာ အရင် ကုဒ်မရေးသေးဘဲ လုပ်ဆောင်သွားမယ့် လုပ်ဆောင်ချက် ကို ကျောင်းသားတွေ မြင်အောင် နားလည် ခံစားမိအောင် သင်ကြားတဲ့ဆရာရဲ့ စိတ်ထဲမှာ ရှိတဲ့ Picture ကို ကျောင်းသားတွေအနေနဲ့လဲ သေချာ မြင်ပြီး နားလည်အောင် ပုံဖော်ပေးသွားမယ့် Design များ အကူအညီများ ဖြစ်ပါတယ်၊
Detail Caring
လက်တွေ့ လုပ်ငန်းခွင်မှာလဲ လုပ်မယ့် လုပ်ငန်းစဥ်ပေါ်မူတည်ပြီး Programmer နဲ့ Developers တွေ ကုဒ်စမရေးမီ လုပ်ဆောင်မယ့် Project ကို အဆင့်ဆင့် ပုံဖော်ပြီး တည်ဆောက်ရပါတယ်၊ ဒီလိုနဲ့ ဘာလုပ်ရမယ် ဘာတွေပါဝင်မယ်ဆိုတာကို Project Flow Layout, UML Diagram, Code Flow Layout အားလုံး သတ်မှတ်ပြီးမှ Project ကို စရေးကြတာဖြစ်ပါတယ်၊ ဒီလို ကြိုတင်သတ်မှတ်ပြီး ရေးသားတဲ့အတွက် အမှားကင်းသလို Maintenence Cost လဲ မရှိသလောက် နဲသွားပါတယ်၊ ဒီလို Project မစခင် Project တစ်ခုလုံးကို ချုံငုံ ပြင်ဆင်တာတွေ ပါဝင်မယ့် အချက်အလက်တွေ သတ်မှတ်တာတွေကို Project Manager က လုပ်ရတာ ဖြစ်ပြီး နောက်ပိုင်း Project Manager အဆင့်ကို တက်လှမ်း လိုသူတွေ အတွက်လဲ အတိုင်းအတာ တစ်ခု အထိ အထောက်အကူ ဖြစ်မှာ ဖြစ်ပါတယ်။
လက်တွေ့ Project အနေနဲ့ Media ( သတင်း ) Project တစ်ခုနဲ့ E-Commerce Project တစ်ခု စုစုပေါင်း Project နှစ်ခုကို ရေးသားလေးလာသွားရမှာဖြစ်ပါတယ်၊ Media Project မှာ ရော Ecommerce Project မှာပါ သာမာန် အဆင့် ရေးသားခြင်းမျိုး မဟုတ်ဘဲ ဖြန့်ချိလို့ရတဲ့ အဆင့်အထိ ပြီးပြည့်စုံတဲ့ App ဖြစ်အောင် Client Side ရော Server Side ပါ အဆင့်ဆင့် ရေးသား သင်ကြားပေးထားပါတယ်၊ Project တစ်ခု ခြင်းစီမှာ ပါဝင်တဲ့ အဆင့်ဆင့် သင်ခန်းစာတွေက များ တဲ့အတွက်ရော အပြောင်းအလဲ ရှိတာကြောင့်ပါ ဒီကြေငြာမှာ ထည့်မရေးတာ ဖြစ်ပါတယ်၊ ပြည့်စုံမူအနေနဲ့ကတော့ ပိုတာပဲ ရှိပါမယ် လိုတာ မရှိပါ၊
Guarantee
အခကြေးငွေယူပြီး သင်ကြားတဲ့ သင်တန်းဖြစ်တဲ့အတွက် သင်ခန်းစာ ပြည့်စုံမှု , ရှင်းလင်း သင်ပြမှု ကောင်းမွန် ပြည့်စုံမှု ၊ သင်ကြားတဲ့ ဆရာ ရဲ့ အရည်အချင်း, သင်ထောက်ကူ အချက်အလက်ပြည့်စုံမှု အားလုံးကို အာမခံပါတယ်၊ အွန်လိုင်း သင်တန်းဖြစ်လို့ လေ့လာသူဘက်ကတော့ သေချာလိုက်လုပ်ဖို့ အပါတ်စဥ် သင်ခန်းစာတွေကို သေချာ ကြိုးစား အားထုတ် ဖို့ပဲ လိုပါတယ်၊ သေချာ လိုက်လုပ်ရဲ့သားနဲ့ သင်တန်း ဆရာ (သို့) သင်တန်းကျောင်းရဲ့ အားနည်းချက် ပျက်ကွက်မှု ကြောင့် တတ်မြောက်မှု နှောင့်နှေးခဲ့ရင် လေ့လာရခက်ခဲ ခဲ့ရင် သင်တန်းကြေး အပြည့်အဝ ပြန်လျော်ပေးသွားမှာ ဖြစ်ပါတယ်၊ သင်ကြားရေး သက်တမ်း ၁၃ နှစ် ကျော်ရှိတဲ့ ဆရာ WaiferKolar ကိုယ်တိုင် သင်ကြားပေးမှာ ဖြစ်တဲ့အတွက် Brighter Myanmar သင်တန်းကနေ ဖွင့်တဲ့ Node.js & Flutter သင်တန်းကို အပြည့်အဝ အာမခံပါတယ်။
သင်ကြားပုံ
သင်တန်းက အွန်လိုင်း သင်တန်း အမျိုးအစား ဖြစ်ပြီးတော့ စနေနေ့ တစ်ရက် ဆရာနဲ့ Meeting ထိုင်ရပါတယ်၊ စနေနေ့ Meeting မှာ ဆရာက တစ်ပါတ်စာ လေ့လာရမယ့် သင်ခန်းစာ Road Map ချပေးမှာ ဖြစ်ပြီး ထိုတစ်ပါတ်စာ လေ့လာရမယ့် ဗွီဒီယို သင်ခန်းစာတွေကို ချပေးသွားမှာဖြစ်ပါတယ်၊ ဗွီဒီယို သင်ခန်းစာတွေက ကြိုတင် Record လုပ်ထားတဲ့ သင်ခန်းစာတွေမဟုတ်ပါ၊ တစ်ပါတ် တစ်ကြိမ် သင်ခန်းစာ ၂၀ က နေ ၃၀ အထိ Record လုပ်ပေးတာ ဖြစ်ပါတယ်၊ တစ်ပါတ်တစ်ခါ Record လုပ်ပေးတဲ့ပအတွက် သင်ခန်စာတွေမှာ အသုံးပြုတဲ့ ဘာသာရပ်တွေ အားလုံးက Latest Version တွေဖြစ်ပါတယ်၊ Meeting ထိုင်တဲ့ နေ့မှာ ကျောင်းသား တွေအနေနဲ့ မရှင်းတာ နားမလည်တာ ကိုယ့်ကွန်ပြူတာမှာ လိုက်လို့လို့ မရတဲ့အချက်တွေ တွေ့ကြုံရတဲ့ ပြဿနာတွေကို မေးနိုင်ပြီး ဆရာက ဖြေရှင်းပေး ရှင်းပြပေးခြင်းတွေလုပ်ပါတယ်၊
သင်တန်းတက်တဲ့ ကျောင်းသားတွေ အချင်းချင်း ချိတ်ဆက်မိအောင်ကော ဆရာနဲ့ အဆင်အသွယ် မပျက်အောင်ပါ သင်တန်းအတွက် Google Classroom ဖန်တီးပြီး လိုအပ်တဲ့ အချက်တွေ စာနဲ့ရှင်းပြရမယ့် အချက်တွေကို Classroom ထဲမှာ Posts တွေအဖြစ်တင်ပြီးရှင်းပြပေးထားသလို သင်ခန်းစာ လင့်တွေကိုလဲ Share ပေးထားပါတယ်၊ ကျောင်းသားတွေအနေနဲ့ ကြားရက်တွေမှာ ပြဿနာ တက်ရင်လဲ Classroom ထဲမှာ Post တင်ပြီးမေးနိုင်သလို အရမ်း ဖြေရှင်းရမလွယ်တဲ့ ပြဿနာတွေ တွေ့ကြုံရင်လဲ ဆရာနဲ့ အချိန် တစ်ခု ချိန်းပြီး Meeting လုပ်နိုင်ပါတယ်၊ဒါဆို ဆရာက AnyDesk ကိုသုံးပြီး ကျောင်းသားတွေရဲ့ ကွန်ပြူတာထဲကို ဝင်ပြီး လိုအပ်တဲ့ ပြုပြင်ပေးမှုများ ကုဒ် စစ်ဆေးပေးမှုများကို လုပ်ဆောင်ပေးပါတယ်၊
Basic Concepts သင်ခန်းစာတွေကို Youtube Channel ကနေပဲ Share ပေးသွားမှာဖြစ်ပြီး Projects Based သင်ခန်းစာတွေကိုတော့ ကျောင်းသားတွေ သီးသန့်ပဲ လေ့လာလို့ရအောင် Microsoft Cloud Server ဖြစ်တဲ့ OneDrive မှာ Share ပေးပါတယ်၊ သင်ခန်းစာနဲ့ ပါတ်သတ် ပြီး အဆင့်ဆင့် လုပ်ရမယ့် လုပ်ငန်းစဥ်တွေကိုလဲ အမြဲတမ်း Classroom မှာ Post တင်ပြီး ရှင်းပြ ထားသလို လိုအပ်တဲ့ Links တွေ အားလုံးကိုလဲ Classroom မှာ Share ထားပါတယ်၊
Class Fee & Contact
- သင်တန်းကြေး ၃ သိန်း ( ပုံမှန်မရှိပါ နောက်ပိုင်း သင်တန်းကြေးတက်ပါမယ် )
- Ph 09-950-45-333-7
- Page Chat Box ကနေ ပြီး သိလိုတဲ့အချက်တွေကို မေးနိုင်ပါတယ်၊
🧑💻 Node.js Course Outline 🧑💻
- Concepts
- JavaScript
- Introduction & Setup
- Basic
- Client Server
- Request & Response
- View Engines
- Api Data Exporting
- Node Package Manager
- Node Module System
- Global Object
- Modules & Custom Module
- Module Wrapper Function
- File Handling
- Event Emitter
- HTTP Module
- ExpressJS
- Routing System
- Request ( get, post, patch, delete )
- Controllers
- Models
- MongoDB ( Database )
- Mongo Query , Index, Data Api
- Mongo Atlas ( Database )
- Mongoose ( Object Data Modeling Module)
- Request Validation
- Input Validation
- Tokenization and Refresh Token
- Image Processing
- Response Header Type
- Static Data Encoding
- CPU Clustering
- Multiple App on Multi CPU
- Socket.io
- Web Socket
- Load Balancing with PM2 ( Process Manager )
- Http And Https
- Installing Certificate
- Load Balancing with Nginx
- Multiple Port with Single Server
- TypeScript
- Node.js with TypeScript
Support Techniques
- Database Design
- Code Flow Diagram
- UML
- FireCamp Api Testing
Sample Project
- Todo App
- Book Collection
Projects
- Media
- ECommerce
🧑💻 Flutter Course Outline 🧑💻
- Dart Programming
- Basic Concepts
- Data Types
- Control Flow
- OOP
- Class Modifiers
- Concurrency
- Null Safety
- Networking
- Flutter
- Flutter Setup
- Widgets
- Layout Design
- State Management ( Widgets )
- Animations & Effects
- Input Handling
- Gesture Detection
- Images & Placeholder
- List & Prototype Item
- Navigation
- Networking and data
- Cache Storage
- Persistence Data Storage ( SQLite )
- Provider and Consumer ( State Management )
- Theming ( Dart Theme , Light Theme )
- Custom Widget Library
- Localization
- Notification with Firebase
- Alert message with Pusher
- Embedded WebView
- Sharing , Printer , QR Code, Bar Code Reader
- Flexible Layout ( Media Query for different Screen )
- Plugins
- Design Patterns
- Testing
- Publishing ( Exporting Apk, App, Exe, Web, iOS )
- Sample Projects
- Counter with Provider & Consumer
- Api Data Parsing ( Route, Controller, Model, View )
- Google Map ( Finding nearest routes )
- Chatting App With Socket ( Socket.io & WebSocket )
- Game Development Project with Flame
- Desktop App Project
- Flutter Design for Website
Support Techniques
- Code Flow Diagram
- Figma Design For UI/UXs
- Main Project
- Media App
- Ecommerce App