มีโอกาสไปแนะนำเรื่องของการพัฒนาระบบงานด้วย Flutter
ที่มหาวิทยาลัยราชภัฏพิบูลสงคราม จำนวน 3 วัน
เป็นการปูพื้นฐานสำหรับการพัฒนาระบบด้วย Flutter
ซึ่งเน้นไปที่ Mobile app
โดยมีเนื้อหาดังนี้
- Architecture ของ Flutter ว่าเป็นอย่างไร คืออะไรบ้าง
- ภาษาโปรแกรมที่ต้องศึกษาให้ดีคือ Dart
- การติดตั้งและเครื่องมือต่าง ๆ ที่จำเป็นต่อการพัฒนา ทั้ง editor, device เป็นต้น
- CLI tool ต่าง ๆ ที่ flutter และ dart เตรียมไว้ให้เช่น fomat code, lint, analyze code, test, run, spect ui เป็นต้น
- การลงมือสร้าง app เพื่อทำงานเรียนรู้ภาษาโปรแกรมและเครื่องมือ
- โครงสร้างของระบบที่ดี เช่น MVC, MVP, MVVM และ clean architecture ซึ่งแบ่งเป็นสองกลุ่มคือ layer based และ feature/domain based
และอีกอย่างที่เยอะหน่อยคือ library ที่ใช้งาน
มีทั้ง standard และ 3-party
โดยจะสรุป library ที่เป็น 3-party ไว้นิดหน่อยดังนี้
- Router ใช้งาน go_router
- State management ใช้งาน GetX ซึ่งก็มี router ให้ด้วย ก็ใช้แทน go_router ไปเลย รวมทั้งยังไม่เรื่องของ dependency management ให้ด้วย ใช้ง่าย ๆ สบาย ๆ
- สำหรับ State management ยังมีตัวอื่น ๆ ที่ใช้งานกัน เช่น riverpod, BLoC
- การจัดการข้อมูลเช่น shared_preference และ secure storage
- การจัดการข้อมูลงลง database นั้นแนะนำ 3 ตัวคือ sqflite, hive, supabase และ firebase realtime database ซึ่งใช้ง่ายดี
- อย่าลืมติดตั้งพวก firebase crashlytic และ analytic ด้วย ขาดไม่ได้เลย
- การเชื่อมต่อข้อมูลผ่าน HTTPs เช่นเรียกใช้งาน REST APIs แนะนำให้ใช้ dio หรือ retrofit หรือ chopper ส่วนในการทดสอบใช้งาน http_mock_adapter ไปก็สะดวกดี
- พวก form ต่าง ๆ ลองใช้งาน flutter_form_builder
- ถ้าต้องการ capture รูปของแต่ละ widget ไว้ดู ใช้งาน screenshot ได้
- เรื่องของ adaptive และ responsive นั้น ชอบใช้งาน flutter_screenutil, responsive_framework และ responsive_builder เป็นต้น
- ส่วน UI/widget ต่าง ๆ ลองดูแรงบันดาลใจจาก awesome flutter ได้
- พวก animation ต่าง เช่น Lottie for Flutter และ Rive เป็นต้น
Reference Websites