Google Flutter

สรุปเข้าใจง่าย: ความคืบหน้า Flutter สำหรับการสร้างโปรแกรม Desktop

เรื่องที่เกี่ยวข้อง - , , ,

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)
แอพ Flutter แสดงการเรียก pop up แบบ native ของระบบ Windows

การพัฒนา Plugin ให้รองรับหลาย Platform

  • เนื่องจากพอ Flutter รองรับ Desktop แล้ว การพัฒนา Plugin จะเป็นเรื่องที่ท้าทายได้ เพราะอาจจะต้องทำทั้ง iOS, Android, Windows, MacOS, และ Linux
  • มีการเสนอรูปแบบการจัดการ Plugin แบบใหม่ เพื่อให้สามารถช่วยกันพัฒนาได้
  • โค้ชพลมีสร้าง ส่วนตรวจสอบเลขบัตรประชาชนไทย, และการแสดงปีพ.ศ.ด้วย Date และ DateTime ด้วย แต่ส่วนนี้คงไม่ต้องใช้ model ใหม่นะ 😅
  • มีการแนะนำให้ใช้ Interface เป็นตัวกลางระหว่างแต่ละ platform ก็โอเคดี
  • ด้วยความซับซ้อนของระบบ Windows และ Linux ทำให้ทีม Flutter ยังไม่แนะนำให้ใช้บน Production เร็วๆ นี้

ความท้าทายของระบบ Win32 และ UWP

เราไม่ให้ไม่ทำนะ แต่อาณาจักร Windows มันยิ่งใหญ่เหลือเกิน

  • เพื่อให้ทำงานได้บนหลายระบบ Flutter ได้สร้าง embedder (เป็น Container App รูปแบบหนึ่ง) ขึ้นมาใช้งาน
  • หลักการ embedder จะคล้ายๆ กับกลไกของ Unity
  • เนื่องจากก่อน Windows 10 ทาง Microsoft ใช้รูปแบบการทำโปรแกรมที่เรียกกันว่า Win32
  • แต่หลังจาก Windows 10 เป็นต้นมา ได้ผลักดัน UWP แทน ไม่ใช่ว่าไม่ดี เพราะทำให้เปิดโอกาศกับ Flutter ในการขยายไป Windows 10X และ Xbox
  • แต่ด้วย 2 ระบบใหญ่ที่แตกต่างกันนี่แหละ ที่ยังไม่มี Solution ที่ลงตัวตอนนี้ แต่ทีม Flutter ก็ทำงานใกล้ชิดกับฝั่ง Microsoft แล้วนะ

ถ้าอยากมันส์กับ Flutter Desktop ตอนนี้?

แอพตัวอย่างการจัดการการเรียนสำหรับนักเรียน, ผู้สอน, และผู้ปกครอง สร้างด้วย Flutter

  • ตอนนี้ก็ยังอยู่ในระดับ 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 เรียนกับโค้ชพลได้เลย

เนื้อหาเข้าใจง่าย, เรียนรู้จากโปรเจคจริง, ดูได้ทุกเวลา ไม่มีวันหมดอายุ

Loading Facebook Comments ...
Menu