เมื่อวันที่ 18 สิงหาคมที่ผ่านมาทีมพัฒนา App Google I/O 2017
ได้ทำการเปิดเผย source code ออกมาแล้ว (ปกติก็เปิดอยู่แล้วนะ)
แน่นอนว่า เป็นอีกหนึ่งแหล่งความรู้ชั้นดีสำหรับ Android developer
ซึ่งพลาดไม่ได้ด้วยประการทั้งปวง
มาดูกันสิว่า ต้นฉบับเข้าพัฒนา Android app กันอย่างไรบ้าง ?
ปล. ไม่น่าจะมีปัญหาเรื่องลิขสิทธิ์อะไรนะ !!
โดย source code ใน version นี้ได้ทำการปรับปรุงความสามารถหลายอย่างเลย
ทั้งเพิ่มเติมและแก้ไข รวมทั้งยังใช้งาน Firebase อีกด้วย เช่น ระบบการจองในแต่ละ session ทำการ verify ผ่าน NFC ข้อมูลต่าง ๆ เหล่านี้ช่วยทำให้ทีมผู้จัด สามารถนำข้อมูลมาช่วยได้เช่นการลดหรือขยายขนาดห้องของแต่ละ sessionในระบบการจองนั้นได้นำ Firebase มาใช้คือ
- Firebase Realtime Database (RTDB) ช่วยทำให้ง่ายต่อการ sync ข้อมูลระหว่างเครื่องของผู้ใช้งานกับระบบ ที่สำคัญสนับสนุน offline mode อีก
- Cloud Functions for Firebase ทำการประมวลผลคำสั่งจองต่าง ๆ ในแบบ background process รวมทั้งจัดการด้วย transaction ดังนั้นทำให้มั่นใจในความถูกต้องได้เลย ไม่ต้องกลัวจองซ้ำ จองเกิน
ส่วนเรื่องของ Feed ต่าง ๆ ของงาน ก็ยังคงใช้ RTDB เช่นกัน
ข้อมูลจะถูกส่งมาจากระบบ CMS ทั่วไป (Content Management System) จะใช้ระบบ Cloud function ในการคอยดูว่าข้อมูลมีการเปลี่ยนแปลงหรือไม่ ถ้าข้อมูล feed มีการเปลี่ยนแปลง ก็จะส่งข้อมูลไปยัง device ของผู้ใช้งานแต่ละคน ผ่าน Firebase Cloud Messaging (FCM) ต่อไป การทำงานของระบบการจองแสดงดังรูปส่วนโครงสร้างของ App ยังคงเป็น MVP (Model-View Presenter) ต่อไปจากของเดิม
ซึ่งยังคงแยกส่วนการทำงานต่าง ๆ ได้ดีอยู่ รวมทั้งง่ายต่อการทดสอบ ส่วน feature ใหม่ ๆ เช่น Feed ก็ปรับเปลี่ยนมาใช้ MVP อีกรูปแบบ ตาม Android Architecture Blueprintสิ่งที่น่าสนใจคือ ควรเลือกโครงสร้างของ App ให้เหมาะสมกับ feature ด้วยนะ ไม่ใช่ว่า ใช้โครงสร้างเดียวในทุก ๆ feature
สิ่งที่ใช้มาก ๆ เลยคือ Firebase Remote Config
ซึ่งใน version ที่ผ่าน ๆ มา การจะเปลี่ยนอะไรที จะบังคับให้ผู้ใช้งานทำการ update app ใหม่ตลอด ซึ่งมันไม่ดีต่อผู้ใช้งานเลย ดังนั้นจึงนำ Firebase Remote Config มาใช้ เพียงแค่กำหนดค่าเริ่มต้นของ App ไว้ จากนั้นถ้าต้องการเปลี่ยนค่าอะไร ก็เปลี่ยนผ่าน Firebase Remote Config เลย ผู้ใช้งานก็ไม่ต้อง update app เองอีกต่อไปโดยสรุปแล้ว App ใช้งาน Firebase เพียบเลยคือ
- ถ้าข้อมูลของงานและข้อมูลของผู้ใช้งานมีการเปลี่ยนแปลง จะทำการสื่อสารผ่าน Firebase Cloud Messaging และ การ sync ข้อมูล
- ข้อมูลของ Feed ที่เปลี่ยนแปลงจัดการผ่าน RTDB
- การเปลี่ยนแปลงค่าตคงที่ต่าง ๆ ใน App จัดการผ่าน Firebase Remote Config