เริ่มกันด้วยเหตุผลที่ทำไมถึงตัดสินใจไปงานนี้ทั้งๆที่มีอีก สองงานจัดพร้อมๆกัน เพราะด้วยตัวผมเองที่สนใจ Firebase มาได้สักพักนึงแล้ว ส่วนตัวมองว่าเป็น Product ที่มีประโยชน์ต่อบุคคลหลายกลุ่มมาก เพราะทุกวันนี้การที่เปิดตัว Product ออกมาได้เร็วนั้นเป็นเรื่องที่ได้เปรียบคู่แข่งอย่างมาก แต่เปิดตัวแล้วต้องเสถียรด้วย ไม่ใช่ออกมาแล้วมีปัญหา มีช่องโหว่ บลาๆๆ… พัง!

งานนี้มีอะไรบ้าง

Facebook: Firebase Thailand

จะเห็นได้ว่าเต็มอิ่มมากกับทั้ง 3 Platform ทั้ง Android, iOS และ Web มาเริ่มกันที่ Session แรกกันเลยดีกว่า

1. Keynote

Sittiphol Phanwilai (GDE Android & CEO Cheese Factory)

https://firebase.google.com/

โดย Speaker ของ Session แรกนี้ก็น่าจะเป็นที่รู้จักกันอยู่แล้วคือพี่เนย Blogger และ Developer เจ้าของเว็บ nuuneoi.com ซึ่งน่าจะเป็นไอดอลของหลายๆคนรวมถึงตัวผมเองด้วย เริ่มแรกเลยพี่เนยได้อธิบาย Concept ที่น่าสนใจทีเดียวคือ “Web” then “App” = User Behavior

คือการที่ปกติแล้ว User ส่วนใหญ่คงไม่มีใครโหลด App มาก่อนหรอกเขาจะค้นหาใน Search Engine อย่าง Google เมื่อเขาได้ข้อมูลที่ต้องการและพบว่ามาจากที่เดิมบ่อยๆ User จึงจะโหลด App มาใช้ต่อนั้นเอง และความง่ายของ Firebase นั้นพี่เนยได้ให้นิยามว่า “Firebase is Developers Good Friend”

โดยบริการหลักๆของ Firebase ก็จะมีเลยคือ

1. Hosting บริการ Host Static File นั้นเองโดยให้เรานั้นสามารถทำเว็บง่ายๆและเอาคืนไป Online ได้อย่างง่ายดายและที่สำคัญฟรีด้วย… และสามารถใช้กับ Frontend Framerwork ได้อีกด้วยอย่าง Angular2, Vue.js และ React นับว่าเป็นสิ่งที่ทำให้ Developer มีงานที่ง่ายขึ้นอีกขั้นนึงครับ

2. Realtime Database บริการฐานข้อมูลแบบ NoSQL ซึ่งการออกแบบนั้นอาจจะต้องต่างจาก SQL พอสมควรแต่ข้อดีคือมันเป็น “ Realtime ” นั้นเอง และมี SDK ครบทุก Platform ทำให้ดึงเอาไปใช้งานได้อย่างง่ายดายและประหยัดเวลาอีกด้วย

3. Storage บริการเก็บข้อมูล Static Asset อย่างเช่นรูปภาพ และสามารถกำหนด Rules ของตัว Firebase ได้ด้วยทำให้สามารถตั้ง Permission การเข้าถึงไฟล์ต่างๆได้อีกด้วยและการตั้ง Rules ต่างๆนั้นก็ไม่ยากทำให้ประหยัดเวลาในการ Secure ได้เยอะเลยทีเดียว

4. Authentication ภาษาง่ายๆก็คือ ระบบ Login นั้นแหละโดยสามารถทำได้ทั้ง

  • Email / Password
  • Facebook
  • Google
  • Twitter
  • Github
  • Custom Authentication ได้อีกด้วย

จากเดิมที่ต้องมานั่งเชื่อมทีละตัวให้เสียเวลาแถมยังยุ่งยากอีกด้วยแต่พอดีตัวนี้เข้ามาก็ทำให้ลดเวลาในการทำในส่วนนี้ได้อีกด้วย

5. Firebase Test Lab เป็นบริการสำหรับทดสอบเสมือนกับการทดสอบอยู่บนเครื่องจริงๆ มีการเก็บ Screenshot ระหว่างทำการ Test และมีการสร้างแผนภาพความสำคัญอีกด้วยและราคาก็ไม่แพงหรือหากใช้ไม่เยอะก็ใช้งานได้ฟรีเลย

6. Firebase Cloud Messaing เป็นบริการที่ช่วยให้เราทำ Push Notification ไปยังอุปกรณ์ที่เชื่อมต่ออยู่ไม่ว่าจะเป็น Mobile ไปจนถึง Push บนเว็บได้ด้วย

สรุป Session แรก พี่เนยก็ได้พูดโดยภาพรวมของ Firebase กันไปแล้ว และมี Demo Web Application ให้ดูกันอีกด้วยเป็นการทำ Live blog ตอนไปงานเปิดตัว Samsung Galaxy Note 7 นั้นเองติดตามผลงานชิ้นนี้ได้เพิ่มเติมจาก https://nuuneoi.com/blog/blog.php?read_id=880

2. Firebase for Web Developers

Warat Wongmaneekit (GDE Web) & Panjapong Sermsawatsri (GDE Web, CTO TakeMeTour)

ในส่วนของ Session นี้พี่ๆทั้งสองท่านได้มาพูดถึงการนำ Firebase ไปใช้งานกับ Platform Web โดยมีการ Live Coding สลับควบคู่ไปกับ Keynote ทำให้เห็นกันชัดเจนมากยิ่งขึ้นโดยทำการ Demo การใช้ Realime Database ,Cloud Messaging และ Authentication ด้วย Firebase ซึ่งการใช้ Authentication นั้นคนที่เรามาลองใช้หรือเริ่มใช้นั้นไม่ควรพลาดเลยทีเดียว

3. Improving App Quality with Firebase Test Lab

Inaki Villar, GDE Android

ใน Session นี้เป็นการพูดเกี่ยวกับ Test Lab แบบเจาะลึกว่าสามารถทำอะไรได้บ้างและ Best Practice เป็นอย่างไรโดย Session นี้เป็นภาษาอังกฤษล้วนๆ สำเนียงฟังยากนิดนึงแต่ก็ค่อยๆฟังแล้วคิดตามๆไป พอเข้าใจโดยทางคุณ Inaki ได้ Present แผนภาพตัวนึงที่เป็นประโยชน์และผมเองชอบมากถึงจะไม่ได้เป็น Mobile Developer เต็มตัวก็ตาม

4. Building an offline iOS app with Firebase Storage

Anthony Harfield (CEO Apptitude, Lecturer of Naraesuan University)

หัวข้อนี้ก็เป็นอีกหัวข้อหนึ่งที่น่าสนใจมากโดยเป็นภาษาอังกฤษอีกเหมือนกันแต่ก็ฟังไม่ยากและพูดค่อนข้างช้าและเข้าใจ ( แอบดีใจเล็กๆที่ฟังออก ) เป็นการนำ Firebase Realtime Database มาใช้ในการ Fetch รูปและแสดงความแตกต่างของการทำ Cache เองและ Cache ด้วย Firebase นั้นเองทำให้มือถือนั้นแม้จะไม่ได้ต่อ Internet อยู่ระหว่างนั้นสามารถนำข้อมูลจาก Cache ขึ้นมาแสดงผลได้อยากสมบูรณ์นั้นเอง และภายหลังต่อเน็ตแล้วก็จะทำการ Update เองอัตโนมัติหากมีการเปลี่ยนแปลงของ Content ทั้งหลาย

5. Let Firebase boosts your auth system apps

Kittisak Pethrungnapha (iOS Engineer, Ascend Group)

หัวข้อนี้เป็นการนำ Firebase Authentication มาใช้กับ iOS App นั้นเองโดยอย่างที่ Keynote ของพี่เนยนั้นได้กล่าวไว้คือมีหลากหลายรูปแบบให้เลือกนำมาใช้อย่าง Email/Password, Facebook, Twitter, Google, Github และ Custom Authentication นั้นเองโดยเป็นการ Live Coding ให้ดูกันแบบสดๆไปเลยว่าเป็นอย่างไรความง่ายในการใช้ Firebase นั้นง่ายแค่ไหนจากต้องมานั่ง Setup เองให้ยุ่งยากนั้นเหลือเพียง Code ไม่กี่บรรทัดก็สามารถ Login ได้แล้ว

6. Deep dive into Firebase Realtime Database

Jirawat Karanwittayakarn (Mobile App Team Lead, Ascend Group)

Session นี้ผมว่าเป็นจุดพีคลองลงมากจาก Session สุดท้ายกันเลยทีเดียว แต่ที่ขอชมก่อนเลยคือ Speaker พูดเก่งและมี Interaction กับผู้ฟังได้อย่างดีเยี่ยมเลยทีเดียวทำให้ผู้ฟังนั้นสนใจอยู่ตลอดเวลาไม่ค่อยมีคนหลับ โดยขอแยกหัวข้อย่อยๆดังนี้

1. Read / Write Data to Firebase เป็นการใช้ Firebase Realtime Database เพื่อเขียนข้อมูลลงไปและดึงออกมาแสดงผล และอธิบายเกี่ยวกับการใช้ Listener ต่างๆ อย่าง ValueEventListener, ChildEventListener และ SingleValueEvent ว่าง่ายๆคือทั้งหมดของการใช้ Firebase นั้นเองและ Best Practice ต่างๆที่ควรทำ

2. Filtering & Ordering เป็นหัวข้อที่ค่อนข้างลงลึกมาอีกหน่อยโดยแสดงให้เห็นว่า Filtering และ Ordering ต่างกันอย่างไร เช่น การ Ordering สามารถทำได้เพียงครั้งเดียวแต่การ Filtering นั้นสามารถทำได้หลากหลายครั้งเป็นต้น

3. Database Rules เป็นสิ่งที่มีประโยชน์และสำคัญมากเพราะปกติเราเขียน Permission และดักข้อมูลบางอย่างที่ไม่ถูกต้องที่จะนำมาใส่ใน Database อยู่แล้วแต่การเขียนฝั่ง Server-side เองก็จำเป็นเช่นกันทำให้เพิ่มความปลอดภัยให้กับ App ของเรานั้นเองหาก ข้อมูลไม่ถูกต้องตาม Rule ที่เราส่งเข้ามานั้นก็จะเกิดการ Permission Denied นั้นเอง

4. Cache เป็นการแสดง Demo ให้ดูว่าเราจะสามารถเขียนแอพได้ยังไงให้ใช้ได้แม้ไม่มี Internet อยู่ก็สามารถ เพิ่ม/แก้ไข/ลบ ข้อมูลต่างๆได้โดยหลังจากที่เราต่อเน็ตใหม่อีกครั้งแล้ว App จะทำการ Sync กับ Database เพื่อให้การทำงานนั้นสมบูรณ์นั้นเอง

สรุป เป็น Session ที่ยาวมากเลยทีเดียวแต่อัดแน่นด้วยสาระความรู้ต่างๆใครอยากเล่น Firebase Realtime Database ต้องห้ามพลาดที่จะดูย้อนหลังเลย

7. Firebase Code Battle

Somkiat Ake (GDE Android) — Warat Thang (GDE Web) — Kittisak Top (iOS)

จะว่าเป็นจุดพีคของงานเลยก็ว่าได้โดยการให้ ทั้ง 3 Platform มาโค้ดกันสดๆเลยโดยเป็นแอพ Chat ที่มีคุณสมบัติดังนี้

  • Google Login with Firebase Authentication
  • Logout
  • Live Chat (Support Image)

แต่มีการใช้ Snippet ในการทำเราก็ไม่ว่ากันเพราะถ้าเขียนกันใหม่หมดคงยาวแน่นอน แต่ก็แอบๆขำเวลาที่ฝ่ายนึงทำเสร็จมีการปั่นคนที่ยังทำไม่เสร็จด้วยก็เรียกว่าเป็นสีสันของงานกันไป และมากไปกว่านั้น “ เขียนแล้วติดบัคจะวิดพื้นสิบทีเลย ”

ก็เป็นที่เรียบร้อยครับกับฝ่ายเว็บที่โดนทำโทษกันไปหลังจากที่ Logout นั้นติดบัค~~

สรุป

สำหรับตัวผมเองนั้นผมคิดว่าเป็นงานที่มีประโยชน์มากและส่วนตัวผมเองได้ความรู้ใหม่ๆจากงานนี้มากมายเลย ก็อยากจะขอขอบคุณและเป็นกำลังใจให้พี่ๆทีมงาน GDG รวมถึง Speaker มาแบ่งปันความรู้อย่างนี้อีกนะครับ ในส่วนของข้อเสนอแนะถึงพี่ๆทีมงานก็ไม่มีอะไรมากครับ ชอบงานนี้มาก ❤❤❤ ไว้โอกาสหน้าจะเข้าไปร่วมงานอีกนะครับ ^^

ก็ขอขอบคุณทุกๆท่านที่อ่านบทความจนจบเป็นบทความที่ผมเองก็ว่ายาวอีกอันนึง 555 ไว้เจอกันในบทความถัดๆไปครับ :D