CategoriesTechnology...My interested

Skooldio : Mastering Application Development with Flutter

จากที่โพสต์ก่อนหน้า ตัวผมเองได้เขียนเอาไว้ ว่าเราไปลงเรียนเรื่อง Flutter ในหัวข้อ Skooldio : Building Hybrid Applications with Flutter มา แล้วในที่นี้ มีบางส่วนที่เราอยากรู้ แต่เรื่องพวกนั้นเรายังไม่รู้

แต่พอมา Take Course เรื่องนี้และเริ่มเรียนก็ไม่ผิดหวัง เพราะทันทีที่เริ่มเรียน ก็ได้รู้เรื่องราวที่มัน Advance ของ Flutter ที่มีประโยชน์มาก ไม่ว่าจะเป็น

-การติดต่อกับ Hardware ภายในเครื่อง : หัวข้อนี้สอนการใช้งานกล้อง การใช้งาน GPS การสร้าง Plugin โดย Code Native ในแต่ละภาษาเครื่อง คอร์สนี้จัดเต็ม ทำให้มองเห็นภาพกว้าง การพัฒนา Flutter ได้เข้าใจมากเลยทีเดียว

-การสร้าง Form เพื่อใช้งาน : หัวข้อนี้สอนการสร้างฟอร์ม ตั้งแต่พื้นฐานว่ามีที่มาที่ไปอย่างไร ต่อไปถึงการดึง Lib Forme จาก Pub.dev มาใช้งาน ทำให้การสร้าง Form สะดวกมากและเข้าใจในเรื่องการสร้าง Form แบบลึกซึ้งไปเลย



-การสร้าง App 2 ภาษา และการออกแบบ App ให้รองรับการใช้งานจากผู้พิการทางสายตาและอื่นๆ : หัวข้อนี้ พาไปรู้จักในเรื่องการออกแบบ ว่าเราจะออกแบบ App อย่างไรรองรับได้มากกว่า 1 ภาษา เมื่อเราเปลี่ยนภาษาภายในเครื่อง และในอีกหัวข้อ จะเป็นเรื่องการออกแบบ App ที่รองรับผู้พิการทางสายตา ทำให้ได้รู้จักกับ Widget semantics , MergeSemantics , ExcludeSemantics ที่เมื่อเรารู้จักการใช้งานแล้ว จะช่วยให้งานของเรารองรับกลุ่มผู้ใช้งานต่างๆได้ดีมากขี้น (ว้าวมาก ดู Advance มาก > องค์กรที่คิดถึงผู้ใช้ในแง่มุมนี้ด้วย น่านับถือมากๆเลย)


-การใช้งาน Firebase : หัวข้อนี้พาไปรู้จักับ Google Firebase ว่ามีที่มาที่ไปอย่างไร ช่วยให้เราได้รู้จักกับบริการนี้ ว่าทำมาเพื่อช่วยเหลือให้กับนักพัฒนาที่ไม่มีเวลาไปทำ Backend แล้วสะดวกอย่างไร จบด้วยการ นำเอาบริการ Firebase Login กับ Push Notification มาใช้งาน ดูจบแล้วมันง่ายจริงๆ (^____^”)


-การใช้งาน Google Maps : หัวข้อนี้ สอนกันตั้งแต่ติดตั้ง การใช้งาน การสร้างแผนที่ใน App ของเรา ใครอยากให้ App ของเราแสดงแผนที่ได้ ไม่ผิดหวังแน่นอน

-การใช้งาน Animation ใน Flutter : หัวข้อนี้ สอนการทำ Animation บน Flutter ว่ามีวิธีการเริ่มอย่างไร มีประเภทไหนบ้าง ไม่ว่าจะเป็น Animation in flutter , Hero Animation , Lottie , Rive ในหัวข้อนี้สอนแบบจับมือให้ทำตาม มีตัวอย่าง มีการดึงเอา Animation จากที่อื่นๆมาใช้ สะดวกและใช้งานง่ายมากๆเลย



-การ Deploy App ขึ้นบน App Store : หัวข้อนี้ สอนการเตรียมตัวสิ่งที่จำเป็นตั้งแต่ต้น จน Deploy ไป App Store , Play Store ว่ามีขั้นตอนอย่างไรบ้าง , Flutter Build Mode ต่างๆ เช่น Debug , Release , Profile ใครอยากรู้วิธีการส่ง App ไป Store ด้วยตนเอง ต้องดูเลย


ในที่นี้ยังมีหัวข้ออื่นๆ ที่ตรงกับสายงานที่ทำอยู่ในตอนนี้ คือ QA Engineer นั่นคือหัวข้อ Deep Dive into Flutter Debugging ที่ทางผู้สอนมาอธิบายเรื่อง Flutter Devtools โดยละเอียด ว่าเราสามารถใช้ Flutter Devtools นี้มาช่วยเพิ่มประสิทธิภาพให้กับงานที่เราทำได้อย่างไร โดยเริ่มตั้งแต่..
-Flutter DevTools คืออะไร
-How to Debug ผ่าน DevTools
-การจัดการ App Size
-การจัดการ Flutter Performance
-การเพิ่มความเร็ว ให้กับ App ด้วย Pre-Warmed Skia

มีเรื่องประทับใจอยู่เรื่องหนึ่ง คือระหว่างเรียนหัวข้อนี้อยู่ ทีม Dev ในบริษัทที่ทำงานได้คุยกันในเรื่องของการเช็ค “ว่าทำไมการดึงข้อมูลจากเว็บถึงได้ช้า” นี้พอดีและในบทสนทนา ได้พูดถึงตัว Flutter DevTools นี้ด้วย เลยทำให้ตัวเรายิ่งอินกับเรื่องนี้เป็นพิเศษ (อินมากสิ เพราะพึ่งเรียนมา 555)


เรื่องถัดมา เป็นเรื่อง Flutter Maintainalibity ซึ่งเป็นหัวข้อเกี่ยวกับการเขียน Test บน Flutter ว่ามีวิธีการเขียนอย่างไร

หากใครเคยเรียนเรื่องการ Test บน Flutter ทั้งจาก Udemy หรือหนังสือ Textbook เรื่อง Flutter ต่างๆ เหมือนกับตัวผมเอง จะเห็นว่าแหล่งต่างๆที่กล่าวมาจะพูดเรื่องการเทสในหัวข้อ Unit Test , Widget Test , Integration Test เพียงเท่านั้น และอาจมีบางที่ที่พูดถึงการทำ API Test ด้วยเช่นเดียวกัน

แต่ในคอร์สนี้ ผู้สอนได้นำเรื่องของ Golden Test มาพูดถึง ซึ่งเมื่อได้ยินครั้งแรก ผมรู้สึกไม่คุ้นเลย แต่หลังจากได้ฟัง ไปสักพัก ก็ได้ความรู้เพิ่ม ว่า “อ๋อ มันคือการทำ ​Snapshot Test นั่นเอง” (ความรู้ใหม่ จดๆ)

หลักการทำงานของ Golden Test คือ จะมีการเก็บหน้า UI ที่หนึ่งเอาไว้ จากนั้นหากมี Dev คนไหน เผลอลบ Code ส่วน UI นั้นทิ้งไป เมื่อเรามา Run Golden Test ด้วย Function expectLater หน้าจอที่ได้จะไม่เหมือนกัน ทำให้
การเทสด้วย Golden Test ไม่ผ่านนั่นเอง (Widget Test จะเทสได้แค่มีหรือไม่มี เจอหรือไม่เจอ แต่ Golden Test จะเทสในเรื่องของหน้าจอ UI ว่าหลังการเปลี่ยนแปลง Code ไป หน้า UI ยังเป็นแบบเดิมไหม มีการเปลี่ยนแปลงหน้า UI ไปหรือเปล่า) ซึ่งในคอร์สนี้ อธิบายเรื่อง Golden Test โดยละเอียดเลย


คอร์สนี้เหมาะกับใคร ?
คอร์สนี้เหมาะสำหรับคนที่มีความรู้เรื่อง Flutter มาบ้างแล้ว และอยากรู้ลึกในเรื่องของการเพิ่ม Performance การทำงาน หรือการทำงานตามหัวข้อต่างๆ ที่กล่าวไป จนกลายเป็นผู้เขียน Flutter ที่ครบเครื่อง

ตอนเรียนสวมหมวก 2 ใบในการเรียนคอร์สนี้
-1. QA พบว่ามีความรู้เรื่อง QA ในการใช้ Tools และ Technique ต่างๆ ที่มาช่วยให้ การ Test กับ Flutter มีประสิทธิภาพ เพิ่มมากขึ้น
-2. Developer พบว่าความรู้ต่างๆที่คอร์สนี้นำเสนอ เรียกว่าเป็นหัวข้อที่ Advance เลยทีเดียว ใครที่อยากประหยัดเวลาการเรียนรู้ด้วยตนเอง จากคอร์สออนไลน์อื่นๆ แนะนำให้มาลงเรียนคอร์สนี้ได้เลย


ก่อนจบหัวข้อนี้ไป ได้จด Key Takeaways เพื่อให้เราได้ไปศึกษาต่อ มาอีกเยอะเลย ไม่ว่าจะเป็น
-Profile Mode (–profile)
-Warm up with cache (–cache-sksl) (Pre-Warmed Skia ช่วยให้แอพทำงานเร็วขึ้น)
-Golden Test (Snapshot Test : flutter test test/golden_test.dart –update-golden)
-expectLater

Good Job!

https://www.skooldio.com/certificate/1d2011db-c04c-4039-9bd0-ae898534fc92

 I did then what I knew how to do. Now that I know better, I do better.

Maya Angelou.