มีดีอะไรใน Firebase Dev Day ?

noomerZx
Stories of Sellsuki
5 min readFeb 25, 2017
credit: https://www.quora.com/What-is-firebase

สวัสดีครับ ตอนนี้เพิ่งกลับมาจากงาน Firebase Dev Day ที่จัดโดย GDG ครับ สำหรับงานนี้คนเยอะมากรับสมัคร 300 ในรอบแรก และรับเพิ่มอีก 50 ในรอบที่สองซึ่งมันเต็มอย่างรวดเร็วทั้ง 2 รอบจริงๆครับ

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

สำหรับใครที่ไม่รู้จัก Firebase มาก่อนก็ไม่เป็นไรครับ เพราะว่าเนื้อหาในงานนั้นค่อนข้างครอบคลุมทั้งสำหรับผู้เริ่มต้น และผู้ที่กำลังศึกษาอยู่ อ่ะมาเริ่มกันเลย

Place, Agenda and Speaker Lineup

credit: Firebase Thailand Fanpage

สำหรับสถานที่จัดงานจะเป็นตึก SET (Stock Exchange Thailand) หรือสำนักงานตลาดหลักทรัพย์แห่งประเทศไทยนั่นเองครับ ต้องบอกว่าห้องค่อนข้างดีมาก รองรับคนได้เต็มจำนวน ห้องน้ำก็ดี แอร์ก็เย็น จอภาพยิ่งใหญ่อลังการงานสร้าง ติดนิดเดียวคือดีไซน์ของห้องมันล้ำไปหน่อย ทำให้พื้นที่นั่งด้านซ้ายมองไม่ค่อยจอเห็นเพราะ จอมันเอียงๆไปอีกทางนึง =,.=

หัวข้อและผู้บรรยายในงานทั้งหมดก็จะมีตามภาพด้านบนเลยครับซึ่ง Agenda จริงจะมีการสลับหัวข้อนิดหน่อย โดยทั้งหมดจะมี 6 หัวข้อดังนี้

  • Keynote
  • Firebase for Web Developers
  • Improving App Quality with Firebase Test Lab
  • Building an offline iOS app with Firebase Storage
  • Let Firebase boosts your auth system apps
  • Deep dive intro Firebase Realtime Database

ผมก็จะค่อยๆสรุปให้ฟังสั้นๆทีละหัวข้อ เพื่อให้ผู้ที่สนใจได้ไปเลือกดูย้อนหลังกันได้ เผื่ออยากจะฟังหรือดูส่วนไหนเป็นพิเศษครับ

1. Keynote

Sittiphol Phanwilai (GDE Android & CEO Cheese Factory)

credit: https://firebase.google.com/

“Web” then “App” = User Behavior

สำหรับเรื่องแรกจะเป็น Keynote จากพี่เนย Blogger และ Developer ชื่อดังจาก nuuneoi.com นั่นเองครับ คงไม่ต้องบรรยายสรรพคุณกันมากเพราะน่าจะเป็น Idol ของโปรแกรมเมอร์ไทยหลายๆคน (รวมถึงผมด้วย) สำหรับ Keynote จะเป็นการแนะนำเกี่ยวกับพฤติกรรมการใช้งานของ User ในปัจจุบันก่อน จากนั้นก็มาเล่าถึง การพัฒนาระบบในยุคปัจจุบันต้องเจอกับอะไรบ้างและ Firebase จะเข้ามาแก้ปัญหาอะไรได้บ้าง ภาพรวมของ Firebase ว่ามันมีบริการอะไรบ้าง ถ้าเราเอามาใช้งานเราจะได้จะเสียอะไรยังไง และมีตัวอย่าง Code เล็กๆน้อยตามหัวข้อต่างๆ ให้เราได้เห็นความง่ายของ Firebase อยู่ตลอดตามนิยามที่พี่เนยว่าไว้…

“Firebase is Developers Good Friend”

สำหรับบริการของ Firebase นั้นตามที่พี่เนยเล่าก็จะมีดังนี้

Hosting

บริการ Host Static File นั่นเอง หมายความว่าเราทำเว็บง่ายๆด้วย Html หล่อๆสวยๆขึ้นไปวาง Host ไว้บน Firebase ได้ฟรีไม่เสียเงินสักบาท ซึ่งตัว Hosting ยังรองรับการทำ SPA ได้ หมายความว่าเราสามารถเขียนเว็บของเราด้วย Frontend Framework เด็ดๆทั้ง Angular, React, หรือ Vue.js และไปวาง Host ไว้ได้ฟรีๆครับ

Database

นอกจากเรื่อง Hosting แล้ว Firebase ก็จัดเตรียมฐานข้อมูลไว้ให้เราใช้งานอีกด้วย ซึ่งเป็นฐานข้อมูลแบบ Realtime ซะด้วย แต่ก็ต้องระวังนิดนึงเพราะมันเป็น NoSql หมายความว่าการออกแบบ และการใช้งานอาจจะต่างจาก Relational Database พอสมควรอาจจะต้องปรับ Mindset ของตัวเองเสียหน่อย แต่ว่าเรื่องการเรียกใช้งานนั้นไม่ยากอย่างที่คิดเพราะ Firebase นั้นเตรียม SDK สำหรับ Platform ต่างๆไว้พร้อม

Storage

บริการฝากไฟล์ ฝากรูป นั่นเองครับ แต่ทีเด็ดของมันก็น่าจะอยู่ที่เรื่องการกำหนด Rules หรือสิทธิในการเข้าถึงไฟล์ของเราได้ และยังสามารถใช้งานร่วมกับ Authentication Service ของ Firebase ได้อีกด้วย

Authentication

พูดง่ายๆก็คือระบบ Login นั่นแหละครับ Firebase ได้ตระเตรียมท่าในการ Login ไว้ให้เราทั้งหมดครอบคลุมแทบจะทุก Case บนโลกใบนี้ด้วยการเขียนคำสั่งไม่ถึง 5 บรรทัดท่านก็จะสามารถทำ Login ได้หมด และยังกำหนดสิทธิในการใช้บริการในส่วนอื่นๆได้อีกด้วยเช่น Database และ Storage เป็นต้น มาดูกันว่า Authentication Service นั้นรองรับการ Login ด้วยอะไรบ้างครับ

  • Email/Password
  • Facebook
  • Google
  • Github
  • Twitter

Firebase Test Lab

ตัวนี้ผมค่อนข้างชอบทีเดียว เป็นบริการสำหรับ Test Mobile โดยพี่เนยเล่าว่าทาง Google จะมีการเตรียมมือถือเครื่องต่างๆไว้เปรียบเสมือน Farm Hardware เลยเราก็เข้าไปใช้บริการเลือกเครื่องที่อยากทดสอบ ใส่ Test Case ลงไปแล้วก็สั่งให้มันทำงาน มันก็จะยิงไปรันที่เครื่องที่ทาง Google เตรียมไว้และยังถ่ายรูป Snapshot หน้าจอระหว่างการ Test ส่งมา Report ให้เราด้วยว่าเกิดอะไรขึ้นบ้าง ซึ่งยังมีหน้า Actions Hierarchy เป็นภาพ Snapshot แสดงลำดับเหตการที่เกิดขึ้น ว่ามีการคลิกจากไหนแล้วไปหน้าไหนเกิดอะไรขึ้นต่อกันเป็นลำดับ ให้เราดูอีกด้วย

Firebase Cloud Messaing

ไอ้ตัวนี้จำไม่ค่อยได้ แต่เหมือนจะเป็นบริการ Push Notification อย่างนึงที่ให้เราสามารถ Push Message ผ่าน Back Office ของ Firebase และข้อความนั้นก็จะไป Notice ในทุกๆ Devices ที่เราได้เชื่อมต่อเอาไว้ครับ

สรุป

จะเห็นว่าพี่เนยได้ Overview บริการต่างๆของ Firebase ให้เราเกือบทั้งหมดแล้ว เป็นไงครับแค่ Session แรกก็รู้ความเด็ดดวงของ Firebase กันเลยทีเดียว ซึ่งปิดท้ายด้วย Demo ตัวอย่าง Web Application ที่ทำด้วย Firebase ให้ชมด้วย ถ้าใครอยากรู้ว่าเป็นอะไร ก็รอติดตามชมย้อนหลังได้ที่ทางเพจเลยครับผม

2. Firebase for Web Developers

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

สำหรับในส่วนนี้ GDE ทั้ง 2 ท่านก็จะมาแนะนำบริการต่างๆของ Firebase ที่เราสามารถใช้พัฒนาในส่วนของ Web Development ได้ ซึ่งเขาว่าค่อนข้างจะเป็นลูกเมียน้อยนิดนึงคือมีของเล่นให้เล่นน้อยกว่า Platform อื่นๆ และก็มี Demo เกี่ยวกับ Authentication และ Cloud Messaging เล็กน้อย

ส่วนตัวแล้วคิดว่า Session นี้ไม่ค่อยน่าสนใจเท่าที่ควร ไม่แน่ใจว่าด้วยเรื่องเวลา หรืออาจจะเพราะหลายๆส่วนพี่เนยได้พูดและยกตัวอย่างครอบคลุมไปหมดแล้ว ทำให้เหมือน Content มันซ้ำๆกัน และติเล็กน้อยเหมือนวางลำดับการ Present ไม่ค่อยดี คือในช่วง Live Coding จะมีการสลับหน้าจอระหว่าง Code และ Slide ไปมา และบ่อยครั้งจะสลับไปเพื่อแสดง Title Text บรรทัดเดียวใน Slide และกลับมา Code ต่อจุดนี้เลยทำเวียนหัวพอสมควรเลย T3T แต่ถ้าใครเขียนเว็บและอยากจะลอง Firebase ก็อย่าพลาดครับเพราะมีทำ Demo Firebase Login ให้ชมกันด้วยครับผม

3. Improving App Quality with Firebase Test Lab

Inaki Villar, GDE Android

สำหรับในส่วนนี้จะพูดในเรื่องของการใช้งาน Test Lab แบบลงลึก ว่าเริ่มใช้งานทำอย่างไรมี อะไรให้เราเลือกใช้งานได้บ้าง และมีการ Demo ทำให้ดูกันสดๆ ซึ่ง Session นี้ Soundtrack ล้วนๆ และสำเนียงก็จะฟังยากนิดนึง ใครมีปัญหาด้านภาษาอาจจะต้องข้ามส่วนนี้ไป สำหรับผมคิดว่า Session ค่อนข้างจะมีประโยชน์มากสำหรับสาย Mobile Dev แต่ส่วนตัวยังไม่ค่อยได้เดินไปทาง Mobile เท่าไหร่จึงฟังไม่จบแอบไปกินข้าวเสียก่อน (หิวมาก T3T) ก็ถ้าใครทำ Mobile Dev อยู่อยากให้ลองฟังดูครับ ผมค่อนข้างชอบ Test Lab ของ Firebase ผมว่า Idea เขาเจ๋งดีสำหรับบริการนี้ เสียดายที่ไม่ได้ถ่ายรูปประกอบมาให้ดู

4. Building an offline iOS app with Firebase Storage

Anthony Harfield (CEO Apptitude, Lecturer of Naraesuan University)

credit: https://appjoy.org/product/firebase-storage/

สำหรับหัวข้อนี้ก็จะเป็น Soundtrack อีกเช่นกัน แต่ว่าอาจารย์ท่านนี้พูดช้า สำเนียงเคลียร์ฟังง่ายและอธิบายได้ชัดเจนดีมากครับ โดยหัวข้อจะเป็นการพัฒนา iOS App ติดต่อกับ Firebase Storage ครับก็จะมีการ Live Coding ด้วยสำหรับการ Implement ในส่วนการอัพโหลดรูปขึ้น Firebase และดึงรูปมาแสดงเป็น List View รวมไปถึงอธิบายข้อดีข้อเสียในการ Fetch รูปแบบ Realtime ด้วย ทำให้เนื้อหาจะต่อยอดไปถึงการทำ Cache ทั้งแบบ การทำด้วยตัวเอง และการทำ Cache ด้วย Firebase ครับ เพื่อให้ Application ของเราสามารถทำงานแบบ Offline ได้แม้ไมไ่ด้ต่อ Internet อยู่

5. Let Firebase boosts your auth system apps

Kittisak Pethrungnapha (iOs Engineer, Ascend Group)

credit: http://blog.ionic.io/adding-social-login-with-firebase/

มาต่อกับ Session นี้ก็จะยังคงเป็นการพัฒนา iOS Application แต่จะเน้นเจาะจงไปที่เรื่อง Authentication หรือ Login โดยเฉพาะเลยครับโดยส่วนใหญ่จะเป็นการ Live Coding และอธิบายเป็นส่วนๆโดยจะครอบคลุมทั้งหมดตั้งแต่

  • Facebook
  • Twitter
  • Google
  • Email/Password
  • Github (ไม่แน่ใจว่ามีเปล่า)

ในส่วน Github ผมจำไม่ค่อยได้เหมือนกันว่ามีโชว์ตัวอย่างหรือเปล่า เพราะเหมือนคุ้นๆว่ามันจะติดอะไรสักอย่าง ยังไงรอติดตามดูคลิปย้อนหลังกันได้ครับเพื่อความชัวร์ แต่สำหรับใครที่เป็น Mobile Dev และอยากจะเริ่มต้นกับ Firebase ผมว่า Session นี้พลาดไม่ได้เลยครับผม

6. Deep dive into Firebase Realtime Database

Jirawat Karanwittayakarn (Mobile App Team Lead, Ascend Group)

credit: https://firebase.googleblog.com/2016/07/have-you-met-realtime-database.html

สำหรับ Session นี้เป็นอันที่ผมชอบที่สุดสำหรับงานนี้เลยก็ว่าได้ครับ โดย Speaker ได้เตรียม Slide มาถึง… 5 หน้าเลยทีเดียวครับผม โดยนอกนั้นจะเป็นการ Live Coding ทั้งหมด โดยเนื้อหาจะเป็นการใช้งาน Firebase Realtime Database ล้วนๆเลยครับ และจะเป็นการพัฒนาบน Android OS ครับ โดยเท่าที่ผมจำได้หัวข้อต่างๆก็จะมีดังนี้

Read / Write Data to Firebase

ก็จะเป็นการเพิ่มข้อมูลลง Firebase และการดึงข้อมูลมาแสดงผล อธิบายแนะนำการใช้งาน Listener สำหรับจัดการ Event และข้อมูล ความแตกต่างระหว่าง ValueEventListener, ChildEventListener และ SingleValueEvent ว่าง่ายๆก็คือรวมทุกๆเรื่องพื้นฐานที่ควรจะรู้ในการใช้งาน Firebase Database ทั้งหมดนั่นเอง

Filtering & Ordering

ก็จะเริ่ม Advance ขึ้นมาหน่อยสำหรับส่วนนี้ก็คือการ เรียงลำดับข้อมูล รวมไปถึงการกรองข้อมูลจาก Firebase นั่นเองครับผม ก็จะมีการโชว์เทคนิคต่างๆในการ Filter ขีดจำกัดในการ Order เช่น Order ไม่สามารถ stack กันหลายๆครั้งได้แต่การ Filter สามารถทำได้เป็นต้นครับ และจะมีกล่าวถึงการทำ Indexing Data เล็กน้อย

Database Rules

ส่วนสำคัญที่มีประโยชน์มากๆคือ Firebase Database สามารถเขียน Rules กำกับมันได้ครับ โดยมันง่ายด้วยเพราะมันให้เราเขียนอยู่ในรูปแบบ JSON ซึ่งมันให้เราสามารถ Control Database Object หรือเราจะมองเป็น Table ก็ได้ เช่นจะ Insert ข้อมูลเข้า Table นี้จะต้องส่ง Object ขึ้นมามี Field อะไรบ้างถ้าส่งมาผิดก็ส่ง Permission Denied กลับไปซึ่งก็มีการทำให้ดูกันสดๆเลยว่ามันใช้ได้จริงครับ

Cache

ในช่วงท้ายก็จะมีการโชว์เรื่องการ Cache นิดหน่อยว่าไม่มี Internet เราก็สามารถทำให้ Application ของเราทำงานได้อยู่ ทั้งการเพิ่ม ลบ แก้ไขข้อมูล ก็จะต้องทำงานอย่างถูกต้องเมื่อ Application ของเราต่อ Internet ติดอีกครั้ง

ผมก็ไม่รู้ว่าจำได้ทั้งหมดหรือเปล่าเพราะ Session นี้น่าจะยาวที่สุดแล้ว ถ้าใครสนใจเรื่อง Firebase Database ก็ไม่ควรพลาดที่จะไปชมย้อนหลังแน่นอนครับ เผื่อผมตกหล่นอะไรไปจะได้ไม่พลาด รับรองว่าคุ้มค่ากับเวลาที่เสียไปครับผม

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

7. Firebase Code Battle

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

Highlight ของงานนี้ สำหรับการแสดง Live Coding บน Requirement เดียวกันแต่มากันแบบ 3 คน 3 Platforms ทั้ง iOS, Android, Web

สำหรับ Requirement นั้นคือจะนำ Firebase Tech ทั้งหมดที่ได้กล่าวถึงภายในงานมาพัฒนาระบบ Chat โดยมี Features หลักๆดังนี้

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

โดยทั้ง 3 คน 3 Platforms จะต้องใช้งาน Firebase Database ก้อนเดียวกันครับ

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

แต่ว่าเป็นอีก Session หนึ่งที่ชอบรองจาก Session ที่แล้ว เพราะผมมองอีกมุมว่ามันได้อะไรมากกว่าการ Battle ก็คือมันได้เห็นความแตกต่างและขีดจำกัดของแต่ละ Platform เช่นการทำ Google Login ของทาง Mobile จะต้องมีการ Login 2 ครั้งคือ Google Login เพื่อเอา Token และยิงไปขอเปลี่ยน Token กับ Firebase อีกครั้ง แต่ทาง Web นั้นไม่ต้องทำแบบนี้ และอะไรอีกหลายๆส่วนที่เป็นการใช้งาน Firebase Service เดียวกันแต่จะต้อง Implement หลายๆจุดก็ต้องมีท่าที่ต่างกันไป ตามขีดจำกัดและ Architecture ของแต่ละ Platform ครับ

สรุปภาพรวม

ต้องบอกก่อนว่าเมื่อวันศุกร์ที่บริษัทมีงานเลี้ยงได้นอนแค่ 4 ชั่วโมงก็แหกขี้ตาตื่นไปงานนี้แบบวิ๊งๆสมองไม่ค่อยเดิน T3T ทำให้ข้อมูลอาจจะมีผิดพลาดหรือตกหล่นอะไรไปบ้างก็ขออภัยมา ณ ที่นี้ด้วยครับผม

ส่วนตัวหลักๆจะใช้งาน Firebase ในส่วนของ Hosting ซะเยอะคือขึ้น Experiment Project ขำๆด้วย SPA และไป Host ไว้ทดสอบดูเล่นๆ และก็สร้าง API ด้วย Cosmic ยิงทดสอบนู่นนี่นั่น และก็มีแตะๆตัว Realtime Database นิดหน่อย และคิดว่าเจ้า Firebase นี่แหละน่าจะเป็นอีกตัวที่น่าสนใจในปี 2017 และในอนาคต และพอไปงานนี้ก็ยิ่งมั่นใจเลยว่ามันมาแน่ !!!!!! (ถ้าใครยังไม่เคยลอง มาใช้แค่ Host ก็คุ้มแล้วครับ)

ใครที่กำลังสนใจเจ้า Firebase และยังไม่ได้เริ่ม หรือเริ่มไปเล็กน้อยกำลังอยากหาแนวทาง งานนี้เหมาะสมกับคุณมากๆ และสมควรที่จะไปดูย้อนหลัง แต่สำหรับใครที่ใช้งานในระดับที่ค่อนข้างคล่องอยู่แล้วอาจจะเฉยๆ แต่ก็ไม่เสียหายที่จะไปหาดูย้อนหลังเช่นกันครับเพราะ Speaker ก็เทพๆทั้งนั้น โดยรวมแล้วงานค่อนข้างดีมาก เพราะมันเป็นการประกาศท้าทายเรื่องการข้ามขีดจำกัดของ Platform ด้วยการใช้ Firebase ว่าเส้นขั้นระหว่าง Platform นั้นมันจะค่อยๆบางลงไปเรื่อยๆจนน่าจะไร้รอยต่อในที่สุด และแสดงว่าการพัฒนาซอฟแวร์นั้นมันไม่มี Platform ใดเป็นที่หนึ่ง ทุก Platform มีความสำคัญในตัวของมันเอง รวมถึงตัวนักพัฒนาเองก็เช่นกันว่าไม่ควรยึดติดกับมัน จริงอยู่ที่ User อาจจะเป็นแฟนบอยสำหรับเจ้าใดเจ้าหนึ่งในตลาด แต่สำหรับนักพัฒนาอย่างเราจะต้องพร้อมรับสิ่งใหม่ๆอยู่เสมอครับ

ก็ขอบคุณทุกคนที่มาอ่านกันจนจบ ใครสนใจ Session ไหนอยากดูเต็มๆก็รอติดตามที่ Facebook Fan Page Firebase Thailand ได้เลยครับ เพราะเห็น Admin ว่าจะมีคลิปย้อนหลังครับผม สำหรับวันนี้ขอไปนอนก่อนไม่ไหวแบ้วววว….

ปิดท้ายด้วยรูปเสื้อสวยๆครับ ขอบคุณผู้ร่วมจัดงานและ Speaker ทุกท่านที่มาแชร์ความรู้และจัดงานดีๆแบบนี้ครับผม

--

--