Flutter สำหรับทำแอพใช้งานบน Desktop (Windows, MacOS, Linux) นั้น พลเคยเกริ่นในช่อง Youtube มาสักพักใหญ่ๆ แล้ว (ใช่สิ ก็มันเป็น alpha ตั้งแต่ปลายปีที่แล้วนี่)
แต่ก่อนวัน Flutter Day ประมาณหนึ่งอาทิตย์แบบนี้ ก็ได้มีการเผยรายละเอียดของ Flutter for Desktop ออกมาให้ได้ตื่นเต้นกันพอสมควร
พลได้อ่านแล้วน่าสนใจมาก เลยมาสรุปให้คนที่ขี้เกียจไปตามตัวเต็มไว้ด้านล่างให้แล้วครับ
ประสบการณ์พัฒนาแอพระดับ Desktop
- มีการเพิ่ม
visualDensity
เข้ามาในเทมเพลตได้สักพักแล้ว (ใครอัพเป็น 1.17 แล้วสร้างโปรเจคใหม่ จะเห็นอยู่ในMaterialApp()
) เพื่อควบคุมาการแสดงผลใน platform ต่างๆ - TextField เป็น Widget แรกๆ ที่ได้ใช้งานกลไก
visualDensity
นี้ เช่นการเว้นระยะห่าง ความสวยงาม - รองรับการทำงานกับเมาส์และคีย์บอร์ด เช่น
- รองรับ key code บน Windows
- รองรับการคลิกขวา
- การเปลี่ยนแสดง cursor และ scroll wheel (ใครว่าไม่สำคัญ ?)
- มีคลาส
Platform
สำหรับอ้างอิงค่าต่างๆ ของระบบ Windows, MacOS, และ Linux - มีการโชว์การเรียก Native Message Box ของ Windows ให้ดู
- มีการโหลดใช้งานไฟล์ DLL (Dynamic Link Library)
การพัฒนา Plugin ให้รองรับหลาย Platform
- เนื่องจากพอ Flutter รองรับ Desktop แล้ว การพัฒนา Plugin จะเป็นเรื่องที่ท้าทายได้ เพราะอาจจะต้องทำทั้ง iOS, Android, Windows, MacOS, และ Linux
- มีการเสนอรูปแบบการจัดการ Plugin แบบใหม่ เพื่อให้สามารถช่วยกันพัฒนาได้
- โค้ชพลมีสร้าง ส่วนตรวจสอบเลขบัตรประชาชนไทย, และการแสดงปีพ.ศ.ด้วย Date และ DateTime ด้วย แต่ส่วนนี้คงไม่ต้องใช้ model ใหม่นะ ?
- มีการแนะนำให้ใช้ Interface เป็นตัวกลางระหว่างแต่ละ platform ก็โอเคดี
- ด้วยความซับซ้อนของระบบ Windows และ Linux ทำให้ทีม Flutter ยังไม่แนะนำให้ใช้บน Production เร็วๆ นี้
ความท้าทายของระบบ Win32 และ UWP
- เพื่อให้ทำงานได้บนหลายระบบ Flutter ได้สร้าง embedder (เป็น Container App รูปแบบหนึ่ง) ขึ้นมาใช้งาน
- หลักการ embedder จะคล้ายๆ กับกลไกของ Unity
- เนื่องจากก่อน Windows 10 ทาง Microsoft ใช้รูปแบบการทำโปรแกรมที่เรียกกันว่า Win32
- แต่หลังจาก Windows 10 เป็นต้นมา ได้ผลักดัน UWP แทน ไม่ใช่ว่าไม่ดี เพราะทำให้เปิดโอกาศกับ Flutter ในการขยายไป Windows 10X และ Xbox
- แต่ด้วย 2 ระบบใหญ่ที่แตกต่างกันนี่แหละ ที่ยังไม่มี Solution ที่ลงตัวตอนนี้ แต่ทีม Flutter ก็ทำงานใกล้ชิดกับฝั่ง Microsoft แล้วนะ
ถ้าอยากมันส์กับ Flutter Desktop ตอนนี้?
- ตอนนี้ก็ยังอยู่ในระดับ Technical Preview เครื่องมือ และวิธีใช้งาน ยังไม่มีกำหนดอะไรตายตัวมาก
- อยากลอง ต้องสลับไปใช้
flutter channel master
(ตอนนี้มีการรองรับ Windows กับ Linux) - อยากลอง macOS ต้องใช้คำสั่งสลับไปใช้
flutter channel dev
- สุดท้ายรันคำสั่งใน Flutter SDK ตาม platform ที่ต้องการลองนะ
C:\flutter> flutter config --enable-windows-desktop
flutter config --enable-macos-desktop
flutter config --enable-linux-desktop
เริ่มต้นเรียนรู้สร้างแอพ iOS และ Android ด้วย Google Flutter ไปกับโค้ชพล
✅ เหมาะสำหรับผู้เริ่มต้น
✅ เขียนครั้งเดียว ใช้ได้ทั้งระบบ iOS และ Android ประหยัดเวลา
✅ เรียนได้ทุกเวลา ไม่มีวันหมดอายุ
✅ ได้รู้ตั้งแต่วิธีติดตั้งโปรแกรม จนเอาขึ้นApp Store และ Play Store
✅ ได้ทำแอพของจริง เริ่มต้นจาก 0 ทุกโปรเจค มีระบบถามตอบ กรณีติดปัญหา