Flutter: ทำไมถึงควรใช้ Bloc

Nut.Lee
odds.team
Published in
May 22, 2023

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

ถ้าลองคิดภาพง่ายๆก็จะเป็นแบบนี้

มี Mobile Application แล้วก็ต้องสร้าง Back-End Server เพื่อใช้งานคู่กัน เวลาต้องการข้อมูลก็ให้เรียกไปที่ Back-End ที่ทำไว้

ในส่วนของ Mobile App นั้นก็แยกได้เป็น 2 ส่วนหลักๆ คือ ส่วนแสดงผล (User Interface / UI) กับ ส่วนที่เป็น Logic

Bloc เกิดมาเพื่อสิ่งนี้

ผู้ที่คิดค้น Bloc จึงคิดจะแยก UI กับ Logic ออกจากกัน ประโยชน์ที่ได้คือ
1. ลดการเขียน Logic ที่ซ้ำซ้อน
2. ทำให้โค้ดอ่านง่ายขึ้น
3. ป้องกันปัญหาที่อาจเกิดจากการเรียก API เช่น การเรียกซ้ำ, การวนลูป รวมถึงการช่วยดักจับ Error

การทำงานของ Bloc

เมื่อ UI เรียกใช้ Logic จะเรียกว่า ‘Event’ > เมื่อ Bloc ได้รับ Event จึงจะเริ่มทำงาน > เมื่อ Bloc ทำงานเสร็จแล้ว จะ emit สิ่งที่เรียกว่า ‘State’ ออกมา

Flutter จะทำงานรวมกับ Bloc ในรูปแบบ streaming อธิบายอย่างคร่าวๆก็คือ Flutter จะต้องทำการดักจับ state ที่มาจาก Bloc ที่จะมาตอนไหนก็ไม่รู้ และเมื่อได้รับ state แล้วจะเอา state ไปทำงานต่อ

สรุป

Bloc เป็นเครื่องมือที่ช่วยให้การเขียนโค้ดของเราแยกส่วนที่เป็น UI กับ Logic ได้ชัดเจนมากขึ้น ทำให้อ่านง่ายขึ้น และยังช่วยให้เราสามารถเพิ่มประสิทธิภาพของ Application รวมทั้งลดข้อผิดพลาดที่อาจเกิดขึ้นได้อีกด้วย

--

--