เมื่อวันที่ 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

ดังนั้นไปศึกษากันได้เลยครับที่ Source code ของ Google I/0 2017
ทำการ Fork และจัดการได้เลยครับ
รออะไรกันอยู่

ขอให้สนุกกับการเขียน code นะครับ

Reference Websites
https://android-developers.googleblog.com/2017/08/google-releases-source-for-google-io.html