ความสำคัญของ Google Play Services สำหรับ Android และนักพัฒนา

ทุกวันนี้ถ้าคุยกับใครก็ตามที่ใช้มือถือแอนดรอยด์ ก็คงไม่มีใครที่ไม่รู้จักกับ Google Play Services กันเป็นแน่แท้ เพราะว่ามันเป็นบริการที่เป็นหัวใจสำคัญที่ทำให้แอปหลายๆแอปภายในเครื่องนั้นทำงานได้ ไม่ใช่แค่แอปของ Google เท่านั้น

และสำหรับนักพัฒนาก็ไม่ต่างกัน เพราะว่าในมุมมองของนักพัฒนาแอปแอนดรอยด์นั้น Google Play Services ก็เป็นบริการสำคัญที่นักพัฒนาส่วนใหญ่ใช้งานอยู่และเลี่ยงได้ยากมาก

Google Play Services สำหรับนักพัฒนาแอปคือ?

บริการต่างๆจากทาง Google ที่จะช่วยให้พัฒนาแอปที่มีความสามารถต่างๆได้ง่าย เช่น อยากจะแสดงแผนที่ภายในแอปก็สามารถดึง Google Maps มาแสดงได้เลย ไม่ต้องไปนั่งสร้างระบบแผนที่เองให้เสียเวลา หรืออยากจะให้ผู้ใช้สามารถเข้าใช้งานแอปด้วย Google Account ก็สามารถทำได้เช่นกัน

 

แล้วบริการที่อยู่ใน Google Play Services สำหรับนักพัฒนา มีอะไรบ้าง?

เอาเข้าจริง ผมก็ไม่เคยเช็คมาก่อนเลยนะว่าจริงๆมันมีอะไรให้ใช้งานบ้าง เพราะว่ามันเยอะมาก จนบางทีก็รู้เลยว่าบางบริการมีให้เรียกใช้งานได้ด้วย

Google Sign In – บริการสำหรับนักพัฒนาที่ต้องการใช้ Google Account ในการเข้าใช้งานแอปแทนการใช้ Username และ Password

Smart Lock for Passwords – บริการสำหรับแอปที่รองรับการเข้าใช้งานด้วย Google Account ที่จะช่วยให้ผู้ใช้สลับไปใช้อุปกรณ์แอนดรอยด์เครื่องอื่นที่ใช้ Google Account เดียวกัน แล้วสามารถเข้าใช้งานได้ทันที โดยไม่ต้องเข้าใช้งานใหม่ในเครื่องนั้น

Firebase Authentication – บริการสำหรับแอปที่ต้องการระบบยืนยันตัวตน แต่ไม่ต้องการความยุ่งยากในการทำระบบให้รองรับกับ Provider ต่างๆที่มีอยู่ในตลาดมากมาย โดยบริการนี้จะมีให้ใช้ทั้ง Email, เบอร์โทรศัพท์, Google, Facebook, Twitter, GitHub, Microsoft, Yahoo, Apple Game Center, รวมไปถึงการเข้าใช้งานแบบ Guest

SMS Retriever – บริการสำหรับการยืนยันตัวตนของผู้ใช้ด้วยการส่งรหัสไปทาง SMS ซึ่งระบบนี้จะช่วยทำการดึงรหัสผ่านแอปได้ทันที ผู้ใช้จำได้ไม่ต้องเสียเวลาไปนั่งเปิดดู SMS แล้วกรอกตัวเลขเอง และที่สำคัญเป็นระบบที่จะเข้าถึงได้เฉพาะ SMS ของแอปเท่านั้น ไม่สามารถเข้าถึง SMS อื่นๆได้ ไม่ต้องขอ Permission สำหรับ SMS ให้ผู้ใช้กังวลใจ

Google Analytics & Firebase Analytics – บริการสำหรับเก็บข้อมูลของผู้ใช้ในตอนใช้งานแอป ที่จะช่วยให้นักพัฒนาสามารถรู้ได้ว่าในแต่ละหน้ามีการเข้าใช้งานมากน้อยเพียงใด ผู้ใช้ติดปัญหาการใช้งานในขั้นตอนไหน และอื่นๆอีกมากมาย เพื่อที่จะได้นำไปปรับปรุงเป็นแอปเวอร์ชันใหม่

Activity Recognition – บริการสำหรับนักพัฒนาที่ต้องการรับรู้ถึง Activity ต่างๆของผู้ใช้ เช่น ผู้ใช้กำลังเดิน หรือวิ่ง หรือกำลังขับรถอยู่ เป็นต้น เพื่อนำข้อมูลเหล่านี้ไปใช้งานภายในแอปให้เหมาะสมกับ Activity ณ ตอนนั้น

Google Cast – บริการสำหรับนักพัฒนาที่ต้องการทำให้แอปของตัวเองสามารถ เชื่อมต่อกับอุปกรณ์ที่รองรับ Google Cast อย่างเช่น Chromecast หรือ Android TV ได้

Google Cloud Messaging & Firebase Cloud Messaging – บริการสำหรับนักพัฒนาที่ต้องการทำระบบ Push Notification เพื่อส่งข้อความหรือข้อมูลไปยังอุปกรณ์แอนดรอยด์ เช่น ส่งโฆษณาหรือโปรโมชั่นเข้า Notification บนเครื่องผู้ใช้ หรือระบบ Chat ที่ต้องการแจ้งผ่าน Notification เผื่อให้ผู้ใช้รู้ว่ามีคนส่งข้อความมาหา

Google Drive – บริการเพื่อให้แอปของนักพัฒนาสามารถเรียกใช้งานข้อมูลที่อยู่ใน Google Drive ของผู้ใช้คนนั้นๆได้

Google Fit – บริการสำหรับ Platform ที่เกี่ยวกับข้อมูลสุขภาพของผู้ใช้ เพื่อให้นักพัฒนาที่ทำแอปที่เกี่ยวข้องสามารถเข้าไปใช้งานข้อมูลของผู้ใช้ได้ ซึ่งเป็น Google Fit ตัวเดียวกับที่เคยเปิดตัวไปตอน Google I/O ปี 2014 นั่นเอง

Fused Location Provider & Geofencing – บริการสำหรับแอปที่ต้องการทำ Track Location ของผู้ใช้รวมไปถึงการทำ Geofencing เพื่อตรวจจับว่าผู้ใช้ได้เข้า-ออกในพื้นที่ที่กำหนดหรือป่าว

Google Maps – บริการสำหรับนักพัฒนาที่ต้องการแสดงแผนที่ภายในแอปด้วย Google Maps

Place – บริการสำหรับแอปที่ต้องการข้อมูลสถานที่ต่างๆบนโลกนี้เพื่อนำไปใช้งาน เพราะว่า Google Maps ที่ให้ใช้งานได้นั้นไม่ได้รวมไปถึงข้อมูลของสถานที่ต่างๆด้วย ต้องใช้บริการนี้อีกทีหนึ่ง

Google Mobile Ads – บริการสำหรับแสดงโฆษณาภายในแอปเพื่อสร้างรายได้ให้กับนักพัฒนาแอปนั้นๆ (AdMob)

Mobile Vision – บริการสำหรับนักพัฒนาที่ต้องการทำ Image Recognition ภายในแอปอย่างการตรวจจับใบหน้า, ตรวจจับบาร์โค้ด และแปลงข้อความจากภาพ

Firebase ML Kit – บริการสำหรับแอปที่ต้องการทำระบบที่ต้องใช้ความสามารถของ Machine Learning ภายในแอป ไม่ว่าจะเป็นการวิเคราะห์ข้อความ ภาษา ใบหน้า บาร์โค้ด หรือสถานที่ภายในภาพ รวมไปถึงการทำ Machine Learning ให้กับข้อมูลของตัวเอง

Google Nearby – บริการสำหรับช่วยให้อุปกรณ์แอนดรอยด์สามารถค้นหาอุปกรณ์รอบๆและเชื่อมต่อได้สะดวกรวดเร็วด้วย Bluetooth, WiFi หรือเสียง

Google VR – บริการสำหรับนักพัฒนาที่ต้องการพัฒนาแอปเพื่อเชื่อมต่อกับอุปกรณ์อย่าง Daydream หรือ Cardboard เพื่อทำเป็น Virtual Reality (VR)

Google Play Game Services – บริการสำหรับแอปจำพวกเกมที่ต้องการระบบต่างๆสำหรับเกมด้วย Google Play Games เช่น ระบบ Cloud Backup, Achievement หรือ Leaderboard เป็นต้น

SafetyNet – บริการด้านความปลอดภัยที่จะช่วยให้แอปมั่นใจได้ว่าอุปกรณ์แอนดรอยด์ที่ใช้งานแอปอยู่ไม่มีการถูกแก้ไขหรือดัดแปลง (Atresstation), การตรวจสอบ URL ที่เรียกใช้งานภายในแอปเพื่อป้องกันความเสี่ยงต่อการถูกโจมตี (Safe Browsing), ระบบยืนยันบุคคลเพื่อป้องกันการถูก Spam จากโปรแกรมภายนอกที่ไม่ใช่บุคคลจริงๆ (reCAPTCHA) และระบบตรวจสอบแอปภายในเครื่องเพื่อป้องกันการถูกโจมตีจากแอพอื่นๆ (Verify Apps)

Google Pay – บริการสำหรับนักพัฒนาที่ต้องการใช้งาน Google Pay ภายในแอป

Wear OS – บริการสำหรับแอปที่ต้องการทำงานร่วมกับ Wear OS เพื่อรับส่งข้อมูลระหว่างมือถือหรือ Tablet กับนาฬิกา

Firebase App Indexing – บริการที่จะช่วยให้แอปสามารถแสดงเนื้อหาต่างๆให้กับผู้ใช้ เมื่อผู้ใช้ทำการค้นหาข้อมูลต่างๆที่เกี่ยวข้องใน Google Search

Firebase Cloud Firestore & Firebase Realtime Database – บริการสำหรับแอปที่ต้องการระบบฐานข้อมูลบน Cloud โดยที่ไม่ต้องสร้างระบบขึ้นมาเองให้ยุ่งยาก

Firebase Cloud Storage – บริการสำหรับแอปที่ต้องการเก็บไฟล์ข้อมูลต่างๆไว้บน Cloud เช่น ไฟล์รูป ไฟล์วีดีโอ เป็นต้น โดยที่ไม่ต้องสร้างระบบขึ้นมาเองให้ยุ่งยาก

Firebase Crashlytics – บริการสำหรับรายงานการทำงานของแอปเมื่อเกิดเหตุที่แอปทำงานผิดพลาด (แอปเด้งนั่นเอง) โดยที่ไม่ต้องสร้างระบบขึ้นมาเองให้ยุ่งยาก

Firebase Dynamic Links – บริการสำหรับจัดการและสร้าง URL เพื่อให้รองรับได้หลากหลาย Platform เช่น URL สำหรับเปิดหน้าดาวน์โหลดแอปที่ผู้ใช้แอนดรอยด์จะเป็นการเปิดบน Google Play ส่วนผู้ใช้ iOS จะเปิดบน App Store เป็นต้น โดยไม่ต้องสร้างระบบขึ้นมาเองให้ยุ่งยาก

Firebase In-App Messaging – บริการสำหรับส่งเนื้อหาต่างๆภายในแอป ไม่ว่าจะเป็นโปรโมชั่น กิจกรรม หรือการแจ้งเตือนต่างๆ ระหว่างที่ผู้ใช้งานกำลังใช้งานแอปนั้นๆอยู่

Firebase Performance Monitoring – บริการสำหรับวิเคราะห์ประสิทธิภาพในการทำงานของแอปว่ามีการทำงานในหน้าไหนที่ช้าหรือไม่ การโหลดข้อมูลตรงไหนที่ใช้เวลานาน โดยไม่ต้องสร้างระบบขึ้นมาเองให้ยุ่งยาก

Firebase Remote Config – บริการสำหรับการแก้ไขข้อมูลต่างๆภายในแอปผ่านระบบข้างหลังบ้าน​ โดยไม่ต้องสร้างระบบขึ้นมาเองให้ยุ่งยาก

 

และบริการเหล่านี้ก็เป็นบริการยอดนิยมสำหรับนักพัฒนาแอปแอนดรอยด์ทั่วโลก

ในโลกของการพัฒนาแอปจะต้องแข่งกับเวลาอยู่เสมอ ดังนั้นการเลือกใช้เครื่องมือหรือบริการต่างๆเพื่อเพิ่มความรวดเร็วในการพัฒนาแอปจึงถือเป็นเรื่องปกติ และก็จะเห็นว่าบริการทั้งหมดนี้ก็อยู่ใน Google Play Services ดังนั้นถ้าจะใช้บริการเหล่านี้ก็จะขาด Google Play Services ไปไม่ได้เลย

โดยบริการที่นักพัฒนาส่วนใหญ่ใช้กันก็จะไม่พ้น Google Maps, Fused Location Provider และบางบริการของ Firebase ดังนั้นถ้าแอปเหล่านั้นต้องไปทำงานอยู่บนอุปกรณ์แอนดรอยด์ที่ไม่มี Google Play Services ก็หมายความว่าจะใช้งานความสามารถนั้นๆไม่ได้เลย (แต่ยังใช้งานบางฟีเจอร์หรือบางหน้าได้)

 

หรือ Google Play Services คือวิธีที่ Google ใช้ในการผูกขาดตลาดแอนดรอยด์?

อย่างที่เรารู้กันว่า Android OS นั้นเป็น Open-source project ที่มีชื่อเรียกกันว่า AOSP นั่นหมายความว่านักพัฒนาสามารถนำไปพัฒนาต่อยอดเองได้ โดยมีทีมวิศวกรของ Google เป็นผู้ดูแลและกำหนดความเป็นไปใน AOSP

Android system architecture

Android system architecture

ถึงแม้ว่าเราจะสามารถนำ Android OS ไปใช้งานได้อย่างอิสระก็ตาม แต่การจะนำไปใช้เพื่อผลิตเป็นมือถือหรือ Tablet ที่ใช้งานได้อย่างแพร่หลาย ก็มีข้อจำกัดอย่างหนึ่งก็คือ ถ้าต้องการ Google Play และแอปต่างๆของ Google ด้วย ก็จะต้องติดตั้ง GMS (Google Mobile Services) ไว้ด้วย ซึ่งจะต้องเสียเงินให้กับ Google บางส่วนและจะต้องทำตามข้อบังคับที่ Google ได้กำหนดไว้

บวกกับการที่ทีมวิศวกรของ Google ได้พัฒนา Google Play Services ขึ้นมาค่อนข้างดี สามารถเปิดให้นักพัฒนาจากแอปต่างๆสามารถใช้งานได้ด้วย จึงทำให้แอปส่วนใหญ่ก็ขาด Google Play Services ไปไม่ได้เช่นกัน และทำให้อุปกรณ์แอนดรอยด์ที่ไม่มี GMS จะต้องเจอกับปัญหาใหญ่กว่าที่คิด

ซึ่งผมก็เห็นด้วยนะว่า Google ใช้ Google Play Services ในการผูกขาดแหละ 😂 แต่ในฐานะนักพัฒนา ถ้าจะต้องไปทำระบบเพื่อทดแทนระบบที่ใช้ของ Google Play Services ก็ไม่คุ้มค่ากับเวลาและแรงที่จะต้องเสียไปซักเท่าไร

 

สามารถพัฒนาแอปขึ้นมาซักตัวโดยไม่พึ่งพา Google Play Services ได้มั้ย?

การพัฒนาแอปโดยไม่ใช้ Google Play Services นั้นเป็นไปได้ แต่ก็ไม่ใช่เรื่องง่ายซะทีเดียว เพราะการเลือกที่จะไม่ใช้ก็หมายความว่าเราต้องหาทางเลือกอื่นมาทดแทน ไม่ว่าจะเป็นการพัฒนาขึ้นมาเองหรือว่าใช้บริการจากเจ้าอื่นๆที่ไม่ได้ผูกกับ Google Play Services

ยกตัวอย่างเช่น ผมได้สร้างแอปขึ้นมาตัวหนึ่งที่มีฟีเจอร์ต่างๆดังภาพข้างล่าง ซึ่ง Feature F มีการแสดงแผนที่อยู่ด้วย โดยในตอนแรกใช้เป็น Google Maps

ดังนั้นผมจะต้องหาผู้ให้บริการแผนที่เจ้าอื่นๆแทน เช่น TomTom, Mapbox, HERE หรือ MapFit เป็นต้น ซึ่งเอาเข้าจริงก็มีตัวเลือกเยอะพอสมควรแหละ แต่การจะเลือกเจ้าอื่ืนนั้นก็ต้องพิจารณาจากข้อมูลแต่ที่ละเจ้ามีด้วยเช่นกัน เช่น แผนที่ของเจ้านั้นๆรองรับข้อมูลในประเทศไทยมากแค่ไหน และผู้ใช้จะรู้สึกขัดใจหรือป่าวเมื่อแสดงแผนที่ในแอปที่ไม่ใช่ Google Maps

นั่นหมายความว่าการเลี่ยงใช้ Google Play Services นั้นได้เพิ่มคำถามและงานอีกมากมาย ในขณะที่ Google Maps ตอบโจทย์เกือบทั้งหมด (ยกเว้นกรณีที่อุปกรณ์แอนดรอยด์ไม่มี Google Play Services)

ในความเป็นจริงก็มีแอปเจ้าใหญ่ๆที่ทำแบบนี้อยู่เช่นกันนะ เช่นแอป Agoda ที่สามารถรองรับการแสดงแผนที่ได้หลากหลายโดยขึ้นอยู่กับแต่ละประเทศ ไม่จำเป็นต้องมี Google Play Services ก็ได้ แต่ที่ทำแบบนี้ได้ก็เพราะว่าแอป Agoda นั้นมีนักพัฒนาแอนดรอยด์มากกว่า 40 คนนั่นเอง

 

Firebase บริการสุดเทพจาก Google ที่ทำให้เหล่านักพัฒนาขาด Google Play Services ไม่ได้

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

ถ้าคุณคิดว่าการสร้างแอปแอนดรอยด์ต้องทำอะไรเยอะแล้ว บอกเลยว่าระบบเซิฟเวอร์ที่เป็นเบื้องหลังในการทำงานของแอปนั้นใหญ่มากกว่าที่คิดเสียอีก

เพราะการพัฒนาแอปแอนดรอยด์ในยุคนี้ต้องทำให้การทำงานสามารถ Online ได้เสมอ ถ้าทำงานได้แค่ Offline อย่างเดียวก็จะตอบโจทย์ผู้ใช้ได้ไม่เต็มที่ เช่น ถ้าคุณสร้างแอปสำหรับจด Memo ขึ้นมาซักตัวหนึ่ง ก็อาจจะต้องทำระบบ Cloud Backup เพื่อรองรับกรณีที่ผู้ใช้มีอุปกรณ์แอนดรอยด์หลายเครื่อง และนั่นหมายความว่านักพัฒนาก็จะต้องใช้เวลาในการสร้างระบบดังกล่าวนั่นเอง

และนั่นจึงเป็นที่มาของบริการจาก  Google ที่ชื่อว่า Firebase ซึ่งเป็นบริการสำหรับระบบต่างๆในฝั่งเซิฟเวอร์เพื่อให้การพัฒนาแอปที่จะต้องเชื่อมต่อกับระบบต่างๆเป็นเรื่องง่ายขึ้น อยากทำระบบล็อกอินภายในแอป Firebase ก็มีให้ (Firebase Authentication), อยากจะได้ระบบสำหรับเก็บไฟล์ข้อมูล Firebase ก็มีให้ (Firebase Cloud Storage) หรืออยากจะได้ระบบวิเคราะห์พฤติกรรมของผู้ใช้งานแอป Firebase ก็มีให้เช่นกัน (Firebase Analytics)

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

จึงทำให้ Firebase เป็นบริการยอดนิยมสำหรับเหล่านักพัฒนาแอปที่ไม่อยากเสียเวลา เสียแรงกับการทำระบบเหล่านั้น ซึ่งบริการของ Firebase ก็จะมีทั้งใช้งานฟรีและเสียเงิน แยกกันไปตามแต่ละบริการ

ผลกระทบต่อ Firebase เมื่อไม่มี Google Play Services

ถึงแม้ว่าการใช้ Firebase จะช่วยทำให้ชีวิตของนักพัฒนานั้นง่ายขึ้นอย่างทันตาเห็นก็จริง แต่ก็หมายความว่าขาด Google Play Services มากกว่าเดิมด้วยเช่นกัน จากเดิมถ้าใช้ Google Maps ก็สามารถเปลี่ยนเป็นตัวอื่นได้ไม่ยากนัก แต่สำหรับ Firebase นั้นจะหมายถึงการเปลี่ยนระบบเซิฟเวอร์แทบทั้งหมด ซึ่งถือว่าเป็นเรื่องใหญ่มากๆสำหรับนักพัฒนาของแอปนั้นๆเลยก็ว่าได้ ถ้าเป็นระดับบริษัทก็อาจจะต้องประชุมใหญ่เพื่อตัดสินใจและวางแผนกันเลยทีเดียว

 

Google Play Services และคู่แข่งในอนาคต

ถึงแม้ว่าในอดีตนั้น Google Play Services ไม่ได้เติบโตจนครอบคลุมตลาดของแอนดรอยด์ได้อย่างแข็งแรงเท่าในปัจจุบันนี้ แต่ในอดีตก็ได้มี Nokia ที่ได้เป็นเจ้าแรกๆในตลาดโลกที่ได้ริเริ่มทำ Nokia Service เป็นของตัวเองเพื่อแทนที่ Google Play Services ซึ่งในช่วงเวลานั้นก็คือตอนที่เปิดตัว Nokia X2 ที่เป็นแอนดรอยด์ตัวแรกของ Nokia นั่นเอง แต่สุดท้ายก็ล้มเหลวไปด้วยเหตุผลหลายๆอย่าง (ไม่ใช่เพราะ Nokia Service เพียงอย่างเดียว) จนสุดท้ายก็ต้องยอมใส่ GMS ไว้ในรุ่นใหม่ๆ

Nokia X2 – จำกันได้มั้ย จำได้หรือป่าว ♪

และในปัจจุบันก็ยังมี Amazon ที่ทำ Tablet ของตัวเองที่เป็นแอนดรอยด์เช่นกัน โดย Amazon ได้สร้าง Service เป็นของตัวเอง โดยไม่ต้องพึ่งพา Google Play Service ที่ตอนนี้ก็ยังคงสามารถอยู่ในตลาดแค่บางประเทศเท่านั้น

แต่ด้วยสถานการณ์ล่าสุดของ Huawei กับ Huawei Mate 30 และ Mate 30 Pro ที่เป็นรุ่นแรกที่จะไม่มี Google Play Services อีกต่อไป จึงทำให้สถานการณ์นั้นคล้ายคลึงกับสมัยของ Nokia อยู่ไม่น้อย ซึ่ง Huawei นั้นก็ถือเป็นแบรนด์ที่แพร่หลายไปทั่วโลก ดังนั้นจึงเป็นเรื่องที่ท้าทายกว่าสมัย Nokia X2 มาก เพราะด้วยการเติบโตของ Google Play Services และบริการสุดเทพอย่าง Firebase จึงทำให้หาคู่แข่งมาแย่งพื้นที่ในตลาดนี้ได้ยากมากขึ้นไปอีก

ผลลัพธ์ในอนาคตจะเป็นอย่างไรไม่รู้ ตอนนี้ผมรู้แค่ว่า บทความนี้ยาวเกินไปแล้ว แต่ถ้าอยากรู้ว่า Huawei จะรับมือกับเรื่องนี้ในฝั่งของนักพัฒนาได้ยังไงบ้าง ต้องรออ่านบทความหน้าแทนนะครับ 🤣🤣