future-of-flutter-cover

future-of-flutter-cover

หลายปีมานี้ชื่อของ Flutter เป็นหนึ่งในตัวเลือกยอดนิยมของ UI framework ที่ใช้ในการสร้าง app แบบ cross-platform แน่นอนว่าตัว Flutter เองก็มีทั้งความน่าสนใจและข้อจำกัดเมื่อเทียบกับ framework อื่นๆ หรือแม้แต่ native app ล่าสุดเป็น framework ที่มีนิยมติดอันดับ 2 แซงหน้า React Native จากการจัดอันดับของ Stack overflow survey ปี 2022

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

ชวนอ่านมุมมองที่น่าสนใจจาก คุณเบน Senior Software Engineer  จาก Agoda ที่เชี่ยวชาญด้าน Mobile App Development และ เคยมีประสบการณ์ด้าน cross-platform ด้วยการใช้ Ionic, React Native หรือแม้กระทั่ง Qt จนมาลองจับ Flutter แล้วชื่นชอบทั้งในมุมของคุณสมบัติและ community ที่ทำให้ framework นี้เติบโตขึ้นมาได้อย่างรวดเร็ว และเชื่อว่ายังมีอนาคตอีกไกลสำหรับ Flutter

Flutter คืออะไร ทำไมนักพัฒนาควรให้ความสนใจ

ก่อนอื่นอยากให้คุณเบนช่วยอธิบายสั้นๆ ว่า Flutter คืออะไร

จริงๆ Flutter เป็น framework ที่จะบอกว่าใหม่ก็ไม่ใหม่ขนาดนั้น มีมาประมาณ 4-5 ปีแล้ว ซึ่งเขามองว่าเป็น UI framework คือมันไม่ได้เป็นเหมือน full solution ที่เราจะเอามาทำ app หรือ web ทั้งหมด แต่เป็น UI layer ที่สมมติว่าเราต้องการทำ app ขึ้นมาง่ายๆ อยากให้มันมีหน้าตาสวยงาม หรือหน้าตาที่เราอยากให้เป็น Flutter ก็จะเป็น toolkit ที่ทำขึ้นมาเพื่อให้เราสามารถเขียน code ง่ายๆ แล้วก็ได้ app ที่หน้าตาตรงกับ code ที่เขียนเป๊ะๆ

Flutter ใช้ภาษา Dart ในการเขียน ซึ่งหลายๆ คนอาจจะไม่คุ้นเคยกับภาษา Dart มาก เพราะมันฟังดูเป็นภาษาใหม่ แต่ว่าจริงๆ Dart ก็เป็นภาษาที่ค่อนข้างเก่าแก่เหมือนกัน แต่ก่อนหน้านี้มักถูกใช้ในฝั่ง back-end มากกว่า

ซึ่ง Google ก็หยิบภาษา Dart มาทำ Flutter เพราะว่ามันมีความสามารถบางอย่าง เช่น เรื่อง hot reload คือการที่เราเขียน code เข้าไป เราไม่จำเป็นต้อง compile ใหม่ทั้ง app เพราะปกติเรามักจะมีปัญหาว่า app มัน build นาน แก้ code 1 บรรทัด ก็นั่งรอไป 3 นาทีให้มัน build ใหม่ แต่พอมีความสามารถของภาษา Dart ก็ทำเราพัฒนา app ได้เร็วขึ้น พอแก้ code แล้วกด save เราก็ได้เห็นผลลัพธ์ที่เราต้องการเลย ก็จะช่วยประหยัดเวลาให้นักพัฒนาได้พอสมควร

จุดเริ่มต้นจากนักพัฒนาสาย native app มา Flutter ของคุณเบนคืออะไร ทำไมถึงสนใจ Flutter

ส่วนตัวแล้วผมเคยพัฒนา app มาด้วยหลายวิธี ไม่ว่าจะเป็น cross-platform ด้วยการใช้ Ionic, React Native หรือแม้กระทั่ง Qt ซึ่งแต่ละอย่างก็ตอบโจทย์ที่แตกต่างกัน มีข้อดีข้อเสียแตกต่างกัน

แต่พอได้มาใช้ Flutter ในการพัฒนา app ด้วยความที่เป็น framework ใหม่สุด ทำให้เครื่องมือต่างๆ มีความพร้อมสูงกว่า framework อื่นๆ มาก เช่น การติดตั้ง Flutter และการลอง run app ครั้งแรกนั้นทำได้ง่ายมากๆ เรียกว่า seamless เลยทีเดียว

ก่อนหน้านี้ก็มีเครื่องมือสร้าง app แบบ cross-platform อยู่แล้ว อย่างเช่น React Native ทำไมนักพัฒนาหลายถึงหันมาให้ความสนใจ Flutter

ต้องบอกว่า Flutter มีความสามารถเทียบเท่ากับ cross-platform ตัวอื่นๆ ไม่ว่าจะเป็น React Native หรือ Ionic แต่ Flutter ให้ performance ที่ดีกว่า ถ้าเทียบกันใน level ของตัว framework เอง เพราะเวลาเราใช้ React Native หรือ Ionic มันมักจะติดความสามารถของตัว tools นั้นๆ อย่างสมมติเราใช้ WebView แล้วนำไป run ใน app มันก็จะถูกครอบด้วย web browser ซึ่งมันก็จะมีหลายๆ อย่างที่ web browser ทำได้ไม่เทียบเท่ากับ native app หรือว่า React Native มันก็อาจจะเข้าใกล้ขึ้นมาอีกนิดนึง แต่ว่าสำหรับ Flutter สุดท้ายตอนที่เรานำไป run ใน app บนเครื่องจริงๆ มันเป็น code ที่เป็น native code ก็คือผลลัพธ์ที่ได้จากการเขียน Flutter มันเทียบเท่ากับการเขียน native เพราะฉะนั้นเราจะค่อนข้างมั่นใจว่า performance มันจะเทียบเท่าหรือใกล้เคียงกับ native มากกว่าเครื่องมืออื่นๆ

และอีกเรื่องนึงก็จะเป็นเรื่องของตอนพัฒนาเอง สมมติคนเขียน web เขาเคยเขียนมาก่อนมันก็จะมี component มีอะไรต่างๆ ให้ใช้ ซึ่ง Flutter เองก็มี component พวกนี้ให้ใช้เหมือนกัน สามารถเอามาใช้ใน app และได้ผลลัพธ์ออกมาเป็น web เป็น desktop app คือเป็นได้หลายๆ platform ซึ่งก็เรียกว่าคุ้มกว่าในอนาคต เพราะมันสามารถ convert ไป platform อื่นๆ ได้ แต่ในทางกลับกัน ถ้าเราใช้ cross-platform ตัวอื่น มันอาจจะไม่สามารถข้ามไปทุก platform ได้ Flutter ก็เลยตอบโจทย์มากกว่า

ข้อดีหรือสิ่งที่ชอบใน Flutter และสิ่งที่คุณเบนคิดว่าอยากให้ Flutter พัฒนามากกว่านี้

ต้องบอกว่าข้อดีหลักๆ ของ Flutter คือมันช่วยให้เราเขียน code ได้ไว เพราะมันมีฟีเจอร์ความสามารถของภาษา Dart ซึ่งก็คือ code เขียนง่าย ไม่ต่างกับภาษา modern language ทั่วไป และก็มันมีเรื่องพวก hot reload, hot restart สามารถทำให้เราเห็น feedback ของ code ที่เราเขียนทันที ไม่ต้องรอนาน

และการทำ UI ต่างๆ สมมติเราอยากทำ UI มี animation แต่มันมีหน้าตาที่ซับซ้อน ซึ่ง code ในภาษา Dart มันไม่ได้ยากเกินที่จะเขียน UI แบบนั้นได้ เรียกว่าค่อนข้างเหมาะกับการทำอะไรที่เป็นงาน UI เพราะว่าตัวมันเองก็คือ UI toolkit นั่นแหละ

โดยส่วนตัวประทับใจความเติบโตของ Flutter ในช่วงเวลาที่ผ่านมา จากจุดเริ่มต้นที่เป็น framework สำหรับพัฒนา app แค่บน iOS/Android จนมาอยู่ในจุดที่รองรับ platform จำนวนมาก ไม่ว่าจะเป็น iOS, Android, Web, Desktop หรือแม้กระทั่ง embedded device อย่างอุปกรณ์ smart home ก็สามารถใช้งานได้ ทำให้ผมรู้สึกชอบและติดตาม Flutter มาตลอด ว่ามันจะสามารถเติบโตไปได้ถึงไหน

ซึ่งในทางกลับกัน มันก็ทำให้ตัว framework นั้นหลุดโฟกัสไปเล็กน้อย เพราะการเพิ่มความสามารถให้กับ platform อื่นๆ แต่ด้วยระยะเวลาที่มากขึ้น ยังไงก็คิดว่า community จะช่วยแก้ปัญหาเหล่านี้ได้

flutter-growth

พูดถึง community ตอนนี้ community ของ Flutter เป็นยังไงบ้าง

จริงๆ ชอบ community ของ Flutter มาก เพราะว่ามี Lib ต่างๆ ที่ให้เอาไปใช้มันมีค่อนข้างเยอะ และมันไม่ได้เยอะเกินไป เพราะมีบางแพลตฟอร์มอย่าง React Native มันจะมี Lib เยอะมาก สมมติเราบอกว่าเราต้องการให้ app มันเปลี่ยนหน้าได้ React Native จะมี Lib ให้เราใช้ซัก 10 ตัว เราเลือกได้เต็มไปหมดเลย ซึ่งเราก็ไม่รู้ว่าตัวไหนเราควรใช้

แต่ว่าของ Flutter เอง จะมี community ที่คอยไกด์ว่าควรใช้อันไหน อันไหน active สุด มันก็รู้สึกว่าพอเราหยิบตัว tool นี้มาใช้ เรารู้สึกไม่ถูกทอดทิ้งจาก platform หรือ community 

ต้องบอกว่า Lib ที่เคยเห็นในโลกของ Flutter จริงๆ มันอาจจะไม่ได้ว้าว แต่ความรู้สึกที่ชอบที่สุดเป็นเรื่องของความ support ของ Lib เพราะว่า Lib ของ Flutter มันไม่ได้รองรับแค่ Android หรือ iOS บางทีมันรองรับ web มันรองรับ desktop มันรองรับยัน Raspberry Pi ซึ่งรู้สึกว่าไม่ว่าจะเป็น framework ไหนก็ไม่ครอบคลุมขนาดนี้ เราเลยไม่ต้องมานั่งคิดว่าแบบ Lib นี้ใช้ได้แค่ Platform ใด Platform นึง

lib-platform

นอกจากมุมของนักพัฒนา ในมุมของธุรกิจหรือองค์กร คุณเบนคิดว่าข้อดีของ Flutter คืออะไร – ความสามารถของ Flutter ตอบโจทย์ฟีเจอร์ส่วนใหญ่ในตลาดได้ขนาดไหน

ในมุมมองขององค์กรส่วนใหญ่ก็จะบอกว่าด้วยความที่ Flutter เขียนโค้ดทีนึง แล้วก็ run บน Android ก็ได้ บน iOS ก็ได้ บน web ก็ได้ สมมติว่าเราต้องการทำ product ใหม่ขึ้นมาตัวนึง เราอยากทดลองตลาด ให้คนลองเอาไปใช้ก่อนได้ง่ายๆ Flutter จะค่อนข้างตอบโจทย์ เพราะว่าเขียน code น้อย เราใช้เวลาโฟกัสกับ UI ไม่นาน แล้วที่เหลือเราก็ไปยุ่งเรื่อง business  แล้วเราก็สามารถเอา code ชุดเดิมไปทดสอบกับผู้ใช้หลายๆ กลุ่มได้เลย

สมมติเราเขียน native เราต้องมานั่งปั้น MVP สำหรับตัวของ Android หรือมีของ iOS ซึ่งก็จะมีปัญหาว่า เราเห็นบาง app ที่บางทีเขาปล่อยของ Android ก่อน ไม่ได้ปล่อยของ iOS ซึ่งถ้าเราเขียน cross-platform อย่าง Flutter เราเขียน code ครั้งเดียว เรา make sure เลยว่า app มันจะพร้อมสำหรับทุกๆ platform เอาไปใช้ได้พร้อมๆ กัน

ถามว่าความสามารถที่ Flutter ทำได้ตอบโจทย์ฟีเจอร์ในตลาดทุกวันนี้ได้แค่ไหน ต้องบอกว่าถ้าเป็น app ทั่วไปที่ไม่ได้ใช้ความสามารถของ hardware มากขนาดนั้น เช่นการใช้งานกล้องเพื่อถ่ายภาพ raw หรือการใช้งาน ML ใน app  ส่วนตัวผมว่า Flutter ค่อนข้างตอบโจทย์การพัฒนาapp เลยครับ

ส่วนตัวผมเลยมักจะใช้ requirements ของ app เป็นหลักว่าจำเป็นต้องใช้ Native API มากขนาดนั้นรึเปล่า ถ้าไม่ ผมก็เลือกที่จะไป Flutter ครับ

ปัจจุบัน Flutter อาจมีความสามารถด้านฟีเจอร์ไม่เท่า native คุณเบนคิดว่าในอนาคต Flutter จะปิด gap นี้ได้ไหม – หรือคนที่กำลังสนใจ Flutter ควรมองเรื่องนี้อย่างไร

ตามหลักแล้ว ใช่ครับ ด้วยความที่ Flutter เป็น 3rd-party framework ที่พัฒนาapp บน OS นั้นๆ ทำให้มีความสามารถไม่เท่ากับ Native SDK ที่เป็น 1st-party

แต่ต้องบอกว่า Flutter เองก็ได้มีการพัฒนาตลอดเวลา เพื่อให้มีฟีเจอร์เท่าทันกับ Native ด้วยความสามารถของ method channel ที่สามารถทำให้ Flutter เรียกใช้งาน API ฝั่ง native ได้เหมือนเดิม บวกกับ community ที่ค่อนข้างใหญ่ของ Flutter ทำให้มีคนช่วยพัฒนาความสามารถเหล่านี้ให้กับ Flutter ได้ ทำให้ไม่ห่างกับ native มากนัก

ถ้าวันนี้คุณเบนเป็น mobile dev มือใหม่ จะเรียนสร้าง native app หรือ cross-platform ก่อน เพราะอะไร

จริงต้องบอกว่าได้ทั้งสองทาง ถ้าเราเริ่มจาก native app ก่อน ข้อดีคือเราจะเข้าใจการทำงานของตัว native ตัว OS มัน แต่เราก็จะเห็นในมุมมองของ platform เดียว

แต่ถ้าสมมติเราทำ cross-platform ก่อน เราจะพอรู้เลยว่าถ้าเราต้องการทำ app แบบนี้ ในส่วนไหนสามารถไปได้ไกลสุดของ cross-platform แล้วอะไรที่เราต้องไปเพิ่มต่อในฝั่งที่เป็น native ซึ่งมันก็ทำให้เราได้ความเข้าใจทั้งสอง platform เพิ่มไปด้วยกัน เหมือนการที่เราเขียน cross-platform เนี่ย เราโดนบังคับให้เราต้องเรียนทั้ง Android และ iOS ส่วนตัวก็จะเชียร์ว่า เริ่มจาก cross-platform ก่อน เพราะวันที่เราต้องการศึกษา native เพิ่มขึ้น เราก็จะได้ไม่ต้องเริ่มต้นจากศูนย์แล้ว

flutter-hybrid

แล้วคนที่เคยเขียน native app มาก่อน ถ้าจะมาเขียน cross-platform ต้องมี learning curve มากน้อยแค่ไหน

ต้องบอกว่าง่ายเลย เพราะคนเคยเขียน native มาก่อน มีประสบการณ์มาแล้ว เขาจะรู้แล้วว่า app มือถือมันมีข้อจำกัดอะไรอยู่แล้ว รู้ว่าอะไรที่เราต้อง concern บ้าง 

จาก native แล้วย้ายมาเป็นฝั่ง cross-platform ถ้าเป็นสมัยก่อนมันอาจจะยาก เพราะว่าวิธีเขียน app ของฝั่ง native มันมองการทำงานของ app ไม่เหมือนกับ tools สมัยใหม่ ก็คือมันเป็นคอนเซปต์ของ NVC อะไรแบบนั้น แต่ว่าพอเป็น native สมัยใหม่ ถ้าสมมติอย่าง Android ก็จะเป็น Jetpack Compose อย่าง iOS ก็จะมี Swift UI ซึ่งมันเป็นวิธีการเขียน app คล้ายๆ กับ cross-platform ที่มีอยู่ทุกวันนี้เลย เพราะฉะนั้นจะแค่เหมือนกับการเปลี่ยนภาษา เคยเขียน Swift UI มาก่อน แล้วมาจับ Flutter ก็แค่เปลี่ยน syntax code จากเดิมที่เราใช้ภาษา Swift เราก็มาเขียนภาษา Dart แทน ซึ่งมันก็ไม่มีความแตกต่างกันมากขนาดนั้น

ดังนั้นคนที่เคยเขียน native มา แล้วอยากมาเขียน hybrid app มันจะค่อนข้างง่าย เพราะว่าเขารู้ทุกอย่างอยู่แล้ว แค่ทำความเข้าใจกับ syntax เฉยๆ

เทรนด์ความต้องการนักพัฒนา Flutter ในปัจจุบัน

เทรนด์ในตอนนี้ที่เราเห็นองค์กรใหญ่ส่วนใหญ่ที่มี resource ด้าน native dev อยู่แล้ว ทำไมถึงประกาศหา Flutter dev กันเยอะมากขึ้น

ด้วยความที่app ต่างๆ มักจะมีการพัฒนาอยู่สม่ำเสมอ ไม่ว่าจะเป็นการ maintenance หรือเพิ่มฟีเจอร์ใหม่ หลายองค์กรก็มักจะหา solution ที่สามารถทำให้เพิ่มฟีเจอร์ได้รวดเร็ว และยิ่งถ้าสามารถเพิ่มได้ทั้งสอง platform พร้อมๆ กัน ก็ถือว่าเป็นการลงทุนที่คุ้มค่า ช่วยลด cost ในการพัฒนา ยังไม่รวมถึงการ spin-off app ใหม่ขึ้นมา เพื่อทดลองทำ MVP ใหม่ด้วย ดังนั้นหลายๆ องค์กรที่มี native dev อยู่แล้ว ก็ยังสามารถหา flutter dev เพิ่มเติมเพื่อตอบโจทย์เหล่านี้ได้เช่นกัน

ก็จริงๆถ้ามองว่าในสำหรับองค์กร เพราะว่าองค์กรส่วนใหญ่มันจะมีทีม tech ทีม IT หรือแม้กระทั่งมีทีม mobile native อยู่แล้ว ซึ่งไม่ใช่ว่าทุกองค์กรจะทำ app ใหม่ เพราะว่าถ้าสมมติเขามี app อยู่แล้วที่เคยเขียนมาก่อนเป็น native เนี่ย อยู่ดีๆ ถ้าจะรื้อแล้วเขียนใหม่เป็น Flutter มันก็จะมีเคสที่ว่า เราต้องการ revamp app เรา redesign ทั้ง app เลย รื้อใหม่ทั้งหมด อันนี้ก็จะตอบโจทย์องค์กรตรงที่ prototype หรือ product ใหม่ที่จะขึ้น มันไม่จำเป็นต้องเขียน native แยกกันแล้ว เขาสามารถเอา native ทั้งสองคน นักพัฒนาทั้งสองฝั่งมา join force กัน แล้วก็เขียน hybrid ตัวเดียว ซึ่งมันก็เหมือนจะได้ velocity เพิ่มขึ้นมาสองเท่า

แต่ว่าถ้าสมมติว่าเป็น app ที่มีอยู่แล้วในองค์กรอย่างทุกวันนี้ แล้วสมมติอยากเพิ่ม feature ใหม่ง่ายๆ ถ้าถามว่าใช้ Flutter ได้มั้ย จริง ๆ ก็ใช้ได้ เพราะว่า Flutter มีเรื่องของ app to app ก็คือ เรามีโครง app เดิมอย่างที่เป็น native อยู่เลย แต่ถ้าสมมติเราต้องการเพิ่มเหมือนกับ funnel ใหม่ เรามี workflow ใหม่ที่ user กดขึ้นมาแล้วไปทำนู่นทำนี่ ตรงนี้เราสามารถใช้ Flutter มาทำ feature ส่วนนี้ได้ แล้วก็แค่เอาไปโชว์ในส่วนของ app ที่เป็น native เหมือนเดิม

เพราะฉะนั้นมันก็กลายเป็นว่า องค์กรที่มี app เดิมอยู่แล้ว เขาไม่จำเป็นต้องเพิ่ม Feature ใหม่ด้วยโค้ด native แต่ว่าเขาสามารถเอา cross-platform หรือ Flutter เข้ามาเสริม funnel รองพวกนี้ได้ มันก็จะช่วยประหยัดเวลา การทำงานของเขาได้ในระดับหนึ่ง

flutter-org

อยากให้ยกตัวอย่างองค์กรในไทยที่ใช้ Flutter

ถ้าอย่างในไทย ที่ผมรู้จักก็จะมี  MAKE by KBank ก็เป็น app ใหม่ซึ่งก็จะเห็นว่า KPlus เองก็มี app ของธนาคารอยู่แล้ว ซึ่งเป็น native พอจะออกอีก product ใหม่เลือกใช้ที่เป็น Flutter เพราะว่า เขาต้องการลดระยะเวลาในการทำงาน และก็จะเห็นว่า MAKE จะเป็น app ที่ดีไซน์ค่อนข้างแปลกใหม่ ซึ่งถ้าทำ native และทำ UI แบบนั้นให้ได้เป๊ะๆ มันก็จะเปลือง effort สำหรับ 2 platform แต่ว่าพอใช้ cross-platform อย่าง Flutter เขาเขียนครั้งเดียว ได้ UI เหมือนกันทั้ง 2 Platform ซึ่งก็แฮปปี้ทั้งนักพัฒนา และฝั่ง designer และองค์กรเองก็ save cost ไปได้ด้วย

แล้วถ้าเป็นองค์กรระดับโลก มีองค์กรไหนที่ใช้ Flutter ได้น่าสนใจบ้างไหม

ที่เห็นก็จะมี BMW ในส่วนของ companion app ก็คือ app ที่เราใช้จัดการรถเราเอง ซึ่ง BMW เขาก็เลือกที่จะใช้ Flutter ในการทำ app ตัวใหม่ขึ้นมา เพราะว่าอาจจะด้วย performance ด้วย UI และก็ความสามารถของ app ที่เขาต้องการจริงๆ ซึ่งไม่ได้ต้องการใช้พวก native เยอะขนาดนั้น เพราะว่าจริงๆ appทั่วไปมันก็คือ ดึงข้อมูลมาโชว์ แล้วก็คุยกับหลังบ้านเล็กๆ น้อยๆ เพราะฉะนั้นเขาก็เลือกใช้ Flutter เพราะมันตอบโจทย์กว่า มัน save cost มากกว่า มันประหยัด engineer มากกว่า

หรือว่าอย่าง Google Pay ที่เป็นของ Google เองที่ใช้สำหรับจัดการเรื่อง payment ซึ่ง Googel Pay ตัวใหม่มันก็เขียนด้วย Flutter เช่นกัน ก็เขียน app ครั้งเดียวได้ทั้ง iOS แล้วก็ Android ก็ save cost ของหลายๆ ทีมได้เช่นเดียวกัน

อีกตัวอย่างที่น่าสนใจคือ Toyota ซึ่งนำ Flutter มาทำระบบ infotainment ที่อยู่ในรถ ก็คือหน้าจอที่อยู่ในรถ แล้วให้ผู้ใช้กดได้ อันนั้นเขาเอา Flutter มาใช้เพราะว่า Flutter มันสามารถ run ได้ทุก platform บนรถเองมันก็เป็นระบบ Linux ที่ custom มาสำหรับตัวรถ เพราะฉะนั้นมันก็สามารถ run application ได้ ซึ่ง Flutter ก็มี Flutter desktop รองรับการ run บน Linux ก็แค่เขียนโค้ด Flutter แล้วก็ถ้าต้องการ access อะไรใน hardware เช่น ดูค่าแบตรถ, ดูระยะไมล์ อะไรพวกนี้มันคือ native app แค่ว่าส่วน native ของมันไม่ใช่มือถือ มันคือตัว Linux ที่อยู่บนรถเท่านั้นเอง มันก็เลยตอบโจทย์ของเขาที่จะเอา Flutter มาใช้

อนาคตของ Flutter

ในอนาคต Flutter จะเติบโตอย่างไร จะมีอะไรเข้ามาแทนที่ไหม คุ้มค่าที่จะศึกษา Flutter ในตอนนี้หรือไม่

Flutter เองมันก็ดูเหมือนเป็น framework น้องใหม่ที่เพิ่งมาแรง แต่ว่าจริงๆ แล้ว ส่วนตัวผมก็น่าจะเคยเห็นสมัยที่ยังเป็น alpha ก็คือนานมากละ ซึ่งสมัยนั้นเอง Flutter มัน run ได้แค่บน Android กับ iOS และก็ดูเหมือนกับ code อันนึงที่เป็นเหมือนกับภาษาที่ไม่มีใครเข้าใจ นั่นคือภาษา Dart ยุคแรก เขียนขึ้นมาแล้วก็ได้ app ซึ่งมันก็เหมือนใช้ tools อื่นๆ

แต่พอเวลาผ่านไป ในแต่ละปี Flutter มันมีงานอีเวนท์ ซึ่งเป็นงานคล้ายๆ Google I/O แต่เป็นของ Flutter โดยเฉพาะ เขาก็ประกาศว่าจะมีฟีเจอร์อะไรใหม่บ้าง ซึ่งในระยะเวลาประมาณแค่ 4-5 ปีที่ผ่านมา Flutter สามารถขยับตัวเองจากการเป็นแค่ toolkit ที่เขียน app  iOS กับ Android กลายมาเป็น framework ที่เราสามารถทำ app ได้ทั้ง iOS,Android, Windows, Mac, Linux แล้วก็ Rasberry PI

ซึ่งมันค่อนข้างมาไกลมากสำหรับ framework อันนึงในเวลาอันสั้น ซึ่งทั้งหมดทั้งมวล Flutter เพิ่งอยู่ในเวอชั่น 3 กว่าๆ แต่ว่าจริงๆ แล้วตัวมันเองยังค่อนข้างใหม่ เพราะมีการพัฒนาอยู่ตลอด ซึ่งมันก็เป็นข้อดีอย่างหนึ่งซึ่งเราค่อนข้างชัวร์ว่า framework มันยังไม่หายตายจากไปจากเรา ในระยะอันสั้นนี้แน่นอน

Flutter มี community ที่ค่อนข้างเยอะพอสมควร อย่างเช่นเราเจอ bug เรา report ไปยังทีม Flutter เขาตอบไวมากและให้ข้อมูลที่อัปเดตตลอดเวลา ซึ่งเราก็ค่อนข้างมั่นใจว่าปัญหาที่เราเจอมันมีคนคอยช่วยอยู่นะ และก็รู้เลยว่าเมื่อไหร่มันจะถูก fix เขาค่อนข้าง open และเปิดรับ feedback ค่อนข้างดี

แน่นอนว่า Flutter เอง ก็ยังมีเรื่องของ performance ที่ ณ ทุกวันนี้ต้องบอกว่ามันทำได้ดี แต่ว่ามันยังได้ดีไม่มากพอ สมมติเทียบกับการเขียน native แบบ optimize สุดๆ เลย หรือว่าเป็นการเขียนที่ใช้ engine ที่เปลืองพลังงาน CPU มากๆ Flutter มันก็ยังมีข้อบางอย่างที่ยังไม่ตอบโจทย์

แต่ว่า ณ ตอนนี้เขาก็พยายามเขียนตัว renderer engine ก็คือตัวที่เอาโค้ด Flutter เราเนี่ยมา render บน UI แล้วก็ใส่ trader ใส่ animation อะไรพวกนี้ คือเขาก็เขียน engine ขึ้นมาใหม่ขึ้นมาทั้งอันเพื่อทำให้ app มันสามารถพัฒนาได้ดีขึ้น 

เรื่องนี้เราเลยมองว่าขนาดตัว framework มันยังใหม่อยู่ แต่ว่าเขามีการพัฒนาเหมือนเป็น track ซ้อนอยู่ข้างหลังแล้วว่า ณ วันนี้เขาจะเอาของใหม่มาแทนที่ engine ที่อยู่ข้างใน Flutter เพื่อให้ performance มันดีขึ้น เราเลยรู้สึกว่า ตัว framework เองมันใหม่มันยังโตได้อีกเยอะเลย เพราะเห็นได้ชัดว่าเขารีบ optimize รีบทำทุกอย่างให้ดีขึ้นเรื่อยๆ เลยรู้สึกว่ามันมีอนาคตค่อนข้างไกล และก็คิดว่าอย่างน้อยมีขั้นต่ำ 5 ปี Flutter ก็น่าจะอยู่กับเรา

flutter-rapid-growth

หากคุณสนใจอยากเรียนรู้เรื่อง Flutter มากขึ้น ขอแนะนำแพ็กสุดคุ้ม “Flutter Pack From Basic to Advanced” รวม 2 คอร์สออนไลน์ Flutter ตั้งแต่พื้นฐานจนถึงระดับ Advanced สอนโดยคุณเบน ขจรศักดิ์ พีรพัฒนานนท์ ผู้เชี่ยวชาญด้าน Mobile app Development ปัจจุบันเป็น Senior Software Engineer ที่บริษัท Agoda แพ็กนี้ประกอบด้วย

– คอร์ส Building Hybrid Applications with Flutter (ราคาเต็ม 1,990 บาท เริ่มเรียนได้ทันที)
– คอร์ส Mastering Application Development with Flutter (ราคาเต็ม 2,990 บาท เริ่มเรียนได้วันที่ 17 ก.พ.)

กับราคาเปิดตัวสุดพิเศษ ถ้าสมัครตอนนี้! รับส่วนลด 1,200 บาท เพียงใช้โค้ด FLUPT1 รับราคาพิเศษ 3,290 บาท จากราคาปกติ 4,490 บาท ทันที! จำกัด 100 คนแรก (เฉพาะสมัครในนามบุคคล) หรือ สมัครในนามองค์กรได้ในราคาพิเศษเพียง 3,990 บาท เพียงใช้โค้ด FLUPCORP 👉สมัครเรียนเลย >> https://to.skooldio.com/34l3s6G5Rwb

More in:Technology

Comments are closed.