React native หรือ Flutter เราควรเลือกใช้ตัวไหนในการสร้าง Mobile app ดี?

React native หรือ Flutter เราควรเลือกใช้ตัวไหนในการสร้าง Mobile app ดี?

ปัจจุบันการสร้างแอพพิเคชั่น แบบ Cross-platform กำลังเป็นที่นิยม ด้วย Framework ที่สามารถสร้าง Native app โดยไม่ต้องใช้ภาษา swift สำหรับ iOS หรือว่า Java สำหรับ Android เลย

React native และ Flutter เป็น Frameworkในการใช้สร้าง Appแบบ Cross-platform ที่ได้รับความนิยมอย่างมาก ปัจจุบันนี้ก็ได้ใช้สร้างแอพพลิเคชันเป็นหลายพันแอพเลยทีเดียว แต่ถ้าเราจำเป็นต้องเลือกระหว่าง Reactive หรือ Flutter เราควรจะเลือกใช้ตัวไหนดี?

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

ในฐานะที่ผู้เขียนนั้นเป็นผู้พัฒนา React native ผู้เขียนได้พยายามเขียนบทความนี้ขึ้นมาโดยไม่มีความลำเอียง

React Native และ Flutter มาพร้อมกับความคล้ายคลึงกันหลายๆ อย่างเช่น   การสร้างแอพแบบ Cross-platform โดยใช้ Code base เดียว มี Hot reloading   มี UI ที่ยอดเยี่ยมและ tooling ที่มีประสิทธิภาพ แต่อย่างไรก็ตาม Framework ทั้งสอง นี้ก็ยังมีข้อแตกต่างกันอยู่

เรามาลองเปรียบเทียบ React native และ Flutter ด้วยปัจจัยหลายๆอย่างกัน

Language (ภาษา)

React native

React native นั้นถูกเขียนทั้งหมดด้วย JavaScript นี่ก็เป็นข้อดีอย่างหนึ่งเลยสำหรับ React native เนื่องจาก JavaScript จัดเป็นหนึ่งในภาษาที่ได้รับความนิยมและผู้คนนิยมใช้เขียนโปรแกรมมากที่สุดในโลก การหา Developers สำหรับ JavaScript เป็นเรื่องที่ง่าย ดังนั้น การเรียนรู้ React native จึงเป็นเรื่องค่อนข้างง่ายสำหรับ JavaScript developer

Flutter

Flutter ถูกเขียนด้วยภาษาที่เรียกว่า Dart ถึงแม้ว่า Dart จะเป็น Choice ที่ง่ายต่อการเลือกใช้ และเป็นภาษาในการเขียนโปรแกรมที่ดี แต่มันก็ไม่ได้รับความนิยมเหมือนกับ JavaScript   Developer ที่เลือกใช้ Flutter จำเป็นต้องไปเรียนรู้ Dartก่อน โดยทั่วไปแล้ว Developers จาก C++ หรือ Java มักจะถนัด Dart มากกว่า Developer จาก JavaScript  ในความคิดของผู้เขียน, ด้วยประสบการณ์และช่วงเวลาของการเรียนรู้ Dart และเนื่องจากมันเป็นภาษาที่ค่อนข้างใหม่ ดังนั้น ผู้ชนะก็คือ React native

Winner: React native

 

Corporate Backing (บริษัทที่สนับสนุน)

React native

React native ถูกพัฒนาโดย Facebook และได้เปิดเผย Source code ในปี 2015   Facebook มีทีมวิศวกรคุณภาพที่ทำงานเกี่ยวกับ react native และได้พัฒนาให้ดีขึ้นอย่างต่อเนื่อง  เนื่องจากว่า Facebook ได้ลงทุนไปกับ react nativeอย่างมาก product ของ Facebook ส่วนมากจึงถูกเขียนขึ้นมาด้วย React native จึงทำให้React nativeได้รับความไว้วางใจและความนิยมอย่างมากในช่วงหลายปีที่ผ่านมา

Flutter

เมื่อเทียบกับReact native แล้ว flutter ถือว่าเป็น Framework ที่ยังใหม่อยู่ Flutter ถูกพัฒนาโดยบริษัทยักษ์ใหญ่อีกบริษัทคือ google นั่นเอง Flutter เป็น SDK open source ของ google สำหรับการสร้างแอพให้ Android หรือ IOS โดยใช้แค่ Codebase เดียว  google ได้ให้การสนับสนุน Flutter อย่างมาก เหมือนกับที่ Facebook ให้การสนับสนุน React native เรียกได้ว่า google ลงทุนทำให้ Flutter เป็นหนึ่งใน Solutions ที่ดีที่สุดในการสร้างแอพแบบ Cross-platform กันเลยทีเดียว

ในหัวข้อนี้ถือว่า React native และ Flutter เสมอกัน

What is Trending? (ตัวไหนกำลังเป็นที่นิยม)

ถ้าลองเราไปดูข้อมูทางสถิติที่ StackOverflow Survey of 2019 เราจะได้ข้อมูลว่า framework ตัวไหน ที่ Developers ส่วนใหญ่ชอบใช้กัน แบบสอบถามนี้ถามเกี่ยวกับว framework ที่ developers นั้นชอบมากที่สุด

Flutter อยู่ในอันดับสูงกว่าอยู่ที่ 75.4% และ React Native ก็ได้ทำสถิตไว้อยู่ที่  62.5% ในบรรดา framework ที่ได้รับความนิยมสูงสุด

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

ดูจาก Trend ในปัจจุบัน จะได้ว่าผู้ชนะคือ Flutter นั่นเอง

Winner: Flutter

 

Performance (ประสิทธิภาพการทำงาน)

ตอนนี้มีความคิดทั่วไปที่ว่า Flutter ทำงานได้ดีกว่า React native อาจจะเป็นเพราะมันไม่มี JavaScript เป็นตัวเชื่อมในการติดต่อกับพวก Native component เหมือนกับ React native  Dart นั้นถูก compiled ไปที่ machine code เลย ทำให้ performance ของ Flutter นั้นดีกว่า React native ที่ต้องมี JavaScript เป็นตัวสะพานที่ใช้เชื่อม

Winner: Flutter

 

Adoption (การนำมาใช้)

React native

React native ถูกใช้นำอย่างกว้างขวาง ความนิยมบางส่วนของมันอาจจะมาจาก React พูดได้เลยว่า Developer ของ React แค่ก้าวเพียงก้าวเดียวก็สามารถมา develop แอพที่เขียนด้วย React native ได้อย่างง่ายดาย ทุกวันนี้ product อย่าง Facebook, Instagram, Uber Eats, Tesla, Bloomberg, และอีกมากมายใช้ React native ในการสร้างAppขึ้นมา

Flutter

เนื่องจาก google เป็นผู้พัฒนา Flutter ขึ้นมา ในปีนี้ตัว Flutter เองจึงได้รับความสนใจค่อนข้างมากเช่นกัน

Alibaba ซึ่งเป็นยักษ์ใหญ่ในการช้อปปิ้งออนไลน์ได้นำ Flutter มาใช้กับหนึ่งในแอพมือถือของพวกเขา Google ad และ Hamilton music ก็ได้รับการพัฒนาโดยใช้ Flutter แต่นอกเหนือจากนี้แล้ว ยังไม่ค่อยมีแอพในApp storeที่ถูกพัฒนาด้วย Flutter

นี่ก็เป็นอีกหัวข้อหนึ่งที่เราจำเป็นต้องดูในปีหน้าว่ามี Products จำนวนเท่าไรที่นำมาใช้ร่วมกับ Flutter

Winner: React native

 

Job Prospects (ความต้องการของตำแหน่งงาน)

ด้วยความที่ React native นั้นมีมาก่อนหน้านั้นนานแล้ว มีการใช้react และ JavaScript (เป็น 2 ตัวที่ได้ระความนิยมสูง) ในการเขียน ทำให้มีโอกาสความในการรับเข้าทำงานที่สูงกว่า

ดูจากข้อมูลทางสถิติที่ StackOverflow Survey of 2019 ระบุไว้ว่าเมื่อเปรียบเทียบกันแล้ว React native เป็นที่ต้องการมากกว่า สิ่งนี้สามารถบอกเราได้เลยว่า มีงานที่ใช้ React native มากว่า Flutter

เรายังไม่สามารถรีบด่วนสรุปออกมาได้ เนื่องจากตำแหน่งงานที่มีอยู่ทุกวันนี้ Flutter ยังคงใหม่อยู่ ไม่แน่ว่าในอีกหลายๆปีข้างหน้า อาจมีความต้องการ developers ของ Flutter เพิ่มมากขึ้น แต่ปัจจุบัน มีงานสำหรับ React native อยู่มากถ้าเทียบกับ Flutter นี่ก็เป็นเพราะว่า Developers ของ React native ก็คือ Developers ของ React ด้วยนั่นเอง

React Native นั้นมีอันดับที่สูงกว่าอยู่ที่ 13.1% และ Flutter อยู่ที่ 6.7% ในบรรดา Framework ที่มีความต้องการมากที่สุด

Winner: React native

 

Conclusion (สรุป)

เป็นช่วงเวลาที่น่าสนใจใน mobile development เรากำลังไปไกลจากการที่เป็นแค่การพัฒนาใน iOS หรือว่า Android และรวบรวมเทคโนโลยีใหม่ๆที่สร้าง mobile apps แบบ cross-platform อย่างไรก็ตาม ถึงแม้ว่าทุกวันนี้ React native จะมีฐานที่มั่นคง แต่ Flutter ซึ่งเป็นผู้แข่งขันที่เกิดขึ้นมาใหม่และผู้เขียนก็มั่นใจว่าในอนาคตหน้าจะมีคนมากมายเข้ามาใช้งาน Flutter อย่างแน่นอน

ในการเลือกเทคโนโลยีใหม่ๆมาศึกษาเรียนรู้ มันขึ้นอยู่กับการใช้งานของคุณ ถ้าคุณถนัดในการเขียน C++ หรือว่า Javaแล้ว คุณก็อาจจะชอบ Flutter ก็ได้ แต่ถ้าคุณชอบ JavaScript มากกว่า React native จะเป็น option ที่ดีกว่าสำหรับคุณ

บทความแปลจากเว็บไซต์: medium