Flutter ดาวรุ่งวงการ Mobile App

เรื่องเด่น, บทความ

ช่วงปีนี้ถือเป็นปีทองของเฟรมเวิร์คน้องใหม่จากค่าย Google อย่าง Flutter เลยก็ว่าได้ หลังจากรองรับ การ export ออกมาเป็นเว็บ ภาษา Dart ที่ใช้ในการพัฒนาแอป Flutter ก็ได้รับความนิยมจนกลายเป็น ภาษาที่เติบโตเร็วที่สุดแห่งปี ของ GitHub อีกด้วย ว่าแต่… คุณรู้จัก Flutter แล้วหรือยังครับ 🙂

Flutter เป็นเฟรมเวิร์คในการพัฒนา cross-platform application ถ้าให้นึกภาพออกง่ายๆ ก็ให้คิดซะว่าเป็น Unity แห่งโลกของการทำแอปละกันครับ คุณสมบัติที่โดดเด่นที่สุดของ Flutter ก็คือการเขียนครั้งเดียว export ได้หลายแพลตฟอร์ม ซึ่งปัจจุบันรองรับ

  • iOS 🍎
  • Android 🤖
  • Web 🌐

Flutter ถูกพัฒนาโดย Google ครับ ส่วนภาษาที่ใช้ในการพัฒนาก็คือภาษา Dart ของ Google อีกเช่นกัน

ในมุมมองของนักพัฒนา การพัฒนาครั้งเดียวแล้ว export ได้หลายแพลตฟอร์มคือความฝันเลยหละครับ คงไม่มีใครอยากเรียนรู้ภาษาใหม่ API ใหม่ทุกครั้งที่จะต้องพอร์ทแอปไปลงแพลตฟอร์มต่างๆ ถ้าจะให้วิเคราะห์ ผมคิดว่าปัจจัยที่เราจะเริ่มต้นเรียนรู้ Flutter มีอยู่ 3 ข้อครับ

มีตัวเลือกอื่นที่น่าสนใจกว่าหรือเปล่า

ข้อนี้ง่ายมากครับ เพราะตัวเปรียบเทียบน้อย ในปัจจุบัน เฟรมเวิร์คที่รองรับการ export ได้หลายแพลตฟอร์มที่พอจะสมน้ำสมเนื้อกับ Flutter ก็คือ React Native ครับ

React Native

แนวทางการทำงานของเฟรมเวิร์ค 2 ตัวนี้ต่างกัน อธิบายอย่างง่ายนะครับ

Flutter – ทำงานคล้าย Unity คือ ขอหน้าจอจากระบบปฏิบัติการ (iOS / Android) แล้วอยากวาดอะไรก็วาดลงไป
React Native – ใช้ UI ของระบบปฏิบัติการ ตัวเฟรมเวิร์คจะเป็นตัวควบคุมว่า UI ควรจะแสดงผลอย่างไร เมื่อเกิดเหตุการณ์ใดๆ

อ่านแล้วก็งงๆ ใช่ไหมครับ ว่าสรุปมันต่างกันยังไงกันแน่ 😁 คือ Flutter จะใช้ UI แบบ Material Design วาดลงไปบนจอ โดยไม่สนว่า UI ของระบบปฏิบัติการจะเป็นอย่างไร ทำให้ไม่ต้องกลัวว่า UI จะแสดงผลเพี้ยนไป ถ้าระบบปฏิบัติการมีการอัปเดต แต่ข้อเสียคือ มันดูไม่ native ครับ

ส่วนเรื่องภาษาที่ใช้เขียน Flutter ใช้ Dart ฝั่ง React Native ใช้ Javascript ซึ่งทั้งสองภาษามีความใกล้เคียงกันมาก ถ้าใครเขียน Javascript ได้อยู่แล้ว การเรียนรู้ภาษา Dart ก็ไม่ถึงกับต้องไปเริ่มต้นใหม่จากศูนย์ครับ

Flutter แม้จะดูไม่ native แต่ก็ทำงานได้เร็วกว่า และมีฟีเจอร์ที่ไม่มีใครเทียบได้คือ Hot Reload

อธิบายหมดคงต้องใช้เวลาเป็นวัน เอาเป็นว่า ลองดูคลิปเปรียบเทียบด้านล่างดูนะครับ 😅

💡 ในงาน Flutter Interact ’19 มีการเผยฟีเจอร์ที่ล้ำหน้า Hot Reload ไปอีกขั้นคือ Hot UI ดูได้ที่ คลิปนี้

ประสิทธิภาพในการทำงาน

เนื่องจากภาษา Dart 🎯 ที่ Flutter เลือกใช้เป็นภาษาที่สามารถทำงานได้ในสองโหมดคือ JIT (Just-In-Time) และ AOT (Ahead-Of-Time) อธิบายง่ายๆ คือ ระหว่างพัฒนาจะทำงานในโหมด JIT ทำให้ไม่ต้องรอคอมไพล์นานในการรันแต่ละครั้ง แต่พอจะเอาไปใช้จริงค่อยใช้โหมด AOT คอมไพล์ออกมาเป็น native app ซึ่งทำงานได้มีประสิทธิภาพกว่า (พยายามอธิบายให้เข้าใจง่ายที่สุดครับ หากไม่ถูกต้องในทางเทคนิค ต้องขออภัยมา ณ ที่นี้ 🙇‍♂️)

อย่างที่บอกไปครับ แอปที่สร้างด้วย Flutter ถูกคอมไพล์เป็น native app เทียบกับ Unity ก็ได้ ทาง Google เคลมว่าสามารถใช้ทำแอปที่รัน 60 เฟรมต่อวินาทีได้สบายๆ เรียกว่าถ้าจะเอาไปทำเกมก็ไม่มีใครว่าละกัน

เรื่องประสิทธิภาพในการทำงาน เป็นจุดเด่นของ Flutter อยู่แล้ว ข้อนี้ไม่ต้องกังวลเลยครับ

ภาษาที่ใช้ในการพัฒนา

กลับมาที่เรื่องภาษาอีกครั้งนะครับ เชื่อว่าหลายคนอาจจะไม่เคยได้ยินชื่อของภาษา Dart มาก่อน แต่อย่างที่บอกไปว่า Dart เป็นภาษาที่เติบโตเร็วที่สุดในปี 2019 อีกไม่นานก็คงได้ยินจนติดหูแน่นอน 👂 แล้ว Dart มีอะไรดี ขอไล่เป็นข้อๆ เลยนะครับ

  • เรียนรู้ง่าย – สำหรับผม Dart คือ Javascript + C# นะ อารมณ์เหมือนเขียน JS แต่มี type มี class รู้สึกดีตอนมี auto-completion เนี่ยแหละ
  • มี package manager – สมัยนี้ภาษาไหนไม่มี package manager ถือว่าเชย เพราะการจัดการ dependency ของโปรเจคคือความวุ่นวายอันดับต้นๆ ในการพัฒนาซอฟต์แวร์เลยก็ว่าได้ Javascript มี NPM, Python มี PIP, Dart ก็มี Pub ครับ
  • แพลตฟอร์มที่รองรับ – คอมไพเลอร์ของ Dart ทำงานได้ทั้งแบบ JIT และ AOT อย่างที่กล่าวไป นอกจากนี้ Dart ไม่ได้เอาไว้ใช้กับ Flutter อย่างเดียว เพราะเราสามารถใช้มันเขียนแอปแบบ command line หรือเขียน web server ก็ได้ ก็คือเรียนภาษาเดียวแล้วทำได้ทุกอย่างจริงๆ (แม้จะยังไม่ค่อยเป็นที่นิยมมากนักก็ตาม)

ที่โปรเกมมิ่ง เราเลือก Dart 🎯 เป็นภาษาที่สาม รองจาก C# และ Javascript เพราะความเอนกประสงค์ของมันครับ

แล้วถ้ามองในเชิงธุรกิจหละ?

นักพัฒนารัก Flutter — แล้วสำหรับคนที่จะลงทุนจ้างพัฒนาแอปด้วย Flutter หละ? ลองคิดดูว่า ถ้าวันนี้คุณจะต้องจ้างทีมพัฒนาให้ทำแอปให้คุณสักตัว คุณจะเลือกจ่ายต่อเดียวแล้วได้แอปที่รันได้ทั้งบน iOS, Android, Web หรือคุณจะจ่าย 3 ต่อให้กับแต่ละแพลตฟอร์มครับ 💸💸💸

จริงๆ มันก็ไม่จบเฉพาะแค่ค่าพัฒนา เพราะหากคุณต้องดูแลโปรเจคต่อในระยะยาว คุณจะมีค่าใช้จ่ายด้านการ maintenance ของแต่ละแพลตฟอร์ม รวมถึงการบริหารโครงการ ซึ่งคุณอาจจะต้องร่วมงานกับทีมพัฒนาถึง 3 ทีม แค่คิดก็ปวดหัวแล้ว 🥴

เอาหละ สุดท้ายนี้ ถ้าคุณอยากรู้ว่าแอปที่พัฒนาด้วย Flutter มีหน้าตาเป็นอย่างไร ประสิทธิภาพดีไหม ใช้แล้วรู้สึกต่างจาก native app หรือเปล่า แนะนำให้ลองโหลดแอปของเราไปลองเล่นกันดูครับ (ขายของจนได้ 555)

iCanPlan – แบบวัดความสัมพันธ์/ความรุนแรงในชีวิตคู่ ( iOS / Android )

ตาแห้งหรือไม่ – แอปพลิเคชันสำหรับทดสอบอาการตาแห้งเบื้องต้นด้วยตนเอง ( iOS / Android )

ขอบอกเลยว่าบทความนี้เขียนแบบรวดเดียว ไม่มีเทค ไม่มีคัท เพราะส่วนตัวแล้วชอบ Flutter มาก เป็นคำตอบของคำถามที่รอมานาน เขียนได้แบบไม่ต้องคิดเลย เพื่อนๆ ที่อยากรู้จักกับ Flutter ก็ลองศึกษา หรือติดต่อเรา เพราะที่โปรเกมมิ่ง เรารับพัฒนาแอปพลิเคชัน และมีเปิดคอร์สสอนพัฒนาแอปด้วย Flutter ด้วยนะครับ 😁

, , ,

บทความที่เกี่ยวข้อง

Menu