14 April 2020

Google Play Console สมัยนี้มีอะไรเจ๋งๆสำหรับนักพัฒนาบ้าง

Updated on

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

ในบทความนี้จะเน้นไปเฉพาะส่วนที่มีผลต่อ Development เท่านั้น ไม่รวมไปถึง Analytics หรือ Marketing นะ

App Release 

ในการส่งแอปขึ้น Google Play นั้น นักพัฒนาของแต่ละแอปอาจจะแบ่งรูปแบบในการ Release ออกเป็นหลายๆแบบ เช่น Stable, Alpha, Beta หรือ Pre-test เป็นต้น ซึ่งนักพัฒนาไม่จำเป็นต้องสร้าง Tools เพื่อแบ่งการ Release เหล่านั้นด้วยตัวเอง เพราะว่า Google Play Console สามารถทำแบบนั้นได้อยู่แล้ว

โดยเมนูดังกล่าวจะอยู่ใน Release management > App releases ของ Google Play Console


เพื่อรองรับรูปแบบในการ Release ที่หลากหลาย Google Play Console จึงแบ่งรูปแบบในการ Release โดยเรียกว่า Track และมีรูปแบบต่างๆดังนี้

• Production Track
• Open Track
• Closed Track
• Internal Test Track

Production Track

สำหรับนักพัฒนาที่ต้องการปล่อยแอปแบบ Production Release หรือ Stable Version นั่นเอง ซึ่งการ Release ใน Track นี้จะทำให้ผู้ใช้ทั่วไปสามารถเข้ามาดาวน์โหลดแอปได้ปกติ ซึ่งเป็น Track พื้นฐานที่นักพัฒนาใช้กันทุกคนอยู่แล้ว

Open Track

เป็นการปล่อยแอปที่สามารถเปิดให้ผู้ใช้ทั่วไปสามารถสมัครเข้าร่วมเพื่อทดสอบแอปได้ หรือที่เรียกกันว่า Beta Version นั่นเอง โดยเหมาะกับการทดสอบแอปกับผู้ใช้งานจริงที่บางส่วนก่อนที่จะเป็น Production Release เพื่อช่วยให้มั่นใจว่าแอปจะไม่มีปัญหากับผู้ใช้งานจริง หรือถ้ามีก็จะกระทบแค่เฉพาะผู้ใช้ที่สมัครเข้ามาทดสอบแอปเท่านั้น ยังไม่ส่งผลกระทบในวงกว้างมากนัก

Closed Track

เหมาะสำหรับแอปที่ต้องการทดสอบแอปกับทีมงานด้วยกันก่อน เช่น อยากให้พนักงานในบริษัทช่วยกันทดสอบแอป เพื่อดูว่ามีปัญหาอะไรมั้ย ก่อนที่จะส่งให้ผู้ใช้ได้ทดลองใช้งาน (Open Track) หรือใช้งานจริง (Production Track)

การทดสอบด้วย Track แบบนี้จึงเหมาะกับแอปที่มี Alpha Version สำหรับเพื่อให้คนที่เป็นวงในสามารถทดสอบแอปได้

Internal Test Track

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

โดยการกำหนดผู้ใช้ที่จะอยู่ใน Internal Test Track จะต้องกำหนดด้วย Google Account ในเมนู Development tools > Internal app sharing

จะใช้ Track ไหน ก็อยู่ที่ Development Process ของทีมพัฒนาในแต่ละแอป

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


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

ระยะเวลาในการ Review ของแต่ละ Track

อย่างที่รู้กันว่าการส่งแอปขึ้น Google Play นั้นจะต้องผ่านการ Review ก่อนทุกครั้ง

โดยการ Release ใน Production Track, Open Track และ Closed Track จะใช้ระยะเวลาใกล้เคียงกัน นั้นก็คือ 30 นาทีไปจนถึง 7 วัน (มีการ Review ด้วยทีมงานภายในและระบบอัตโนมัติ)

แต่สำหรับ Internal Test Track นั้นจะใช้เวลาไม่เกิน 5-10 นาที เนื่องจากเป็น Track ที่ทำขึ้นมาเพื่อให้คนภายในทีมใช้ทดสอบกัน จึงสามารถ Release บ่อยแค่ไหนก็ได้

ถ้ามี QA ภายในทีมเพื่อทดสอบแอปอยู่แล้ว จำเป็นต้องใช้ Internal Test Track หรือป่าว?​

จริงๆเป็น Track ที่อำนวยความสะดวกให้กับ QA สำหรับการทดสอบแอปที่เป็น Release Build มากกว่า เพราะโดยปกติแล้วการทดสอบแอปภายในทีมมักจะเป็นแบบ Debug Build มากกว่า

ซึ่งในมุมมองของ QA จะมองว่า Debug Build กับ Release Build นั้นเป็นคนละตัวกัน และต้องทดสอบแยกกันอยู่ดี ถึงแม้ว่านักพัฒนาจะบอกว่าโค้ดที่ใช้เหมือนกันทั้งหมด แต่นั่นก็เพราะว่า Release Build จะมีขั้นตอนอย่าง Minify เพิ่มเข้ามาด้วย ซึ่ง Debug Build ไม่มี ดังนั้นผลลัพธ์ที่ได้ก็อาจจะไม่เหมือนเดิม

และการทดสอบ Release Build ที่ใกล้เคียงกับการใช้งานจริงที่สุดก็คือการอัปเดตแอปผ่าน Google Play โดยตรง ซึ่งจะต่างจาก Debug Build ที่มักจะมาจากการติดตั้งผ่าน Android Studio หรือติดตั้งจาก APK จึงทำให้การใช้ Internal Test Track สามารถจำลองสถานการณ์ของผู้ใช้ได้เหมือนจริงมากกว่า

แต่ถ้าภายในทีมมีการวิธีการทดสอบสำหรับ Release Build ที่จำลองได้ใกล้เคียงกับ Google Play อยู่แล้ว ก็อาจจะไม่จำเป็นต้องใช้ Internal Test Track ก็ได้

Instant App

Instant App เป็นความสามารถอย่างหนึ่งใน Google Play ที่จะช่วยให้ผู้ใช้สามารถทดลองใช้งานแอปบางส่วนได้โดยไม่ต้องติดตั้งแอปลงในเครื่อง (เบื้องหลังคือดาวน์โหลดมาติดตั้งลงในเครื่องแหละ แต่มีขนาดเล็ก และผู้ใช้มองไม่เห็นว่ามีแอปอยู่ในเครื่อง)


เพราะในบางครั้งถ้าแอปมีขนาดใหญ่ (ลดขนาดแอปเท่าที่ทำได้แล้ว) ก็อาจจะทำให้ผู้ใช้ไม่อยากดาวน์โหลดแอปและทำให้เสียโอกาสไปอย่างน่าเสียดาย ดังนั้นการทำ Instant App จะช่วยให้ผู้ใช้สามารถลองใช้แอปแค่บางส่วนได้ ซึ่งดาวน์โหลดไม่เยอะมาก เพื่อเพิ่มโอกาสที่ผู้ใช้จะดาวน์โหลดแอปให้เพิ่มมากขึ้น

สำหรับแอปที่รองรับ Instant App จะสามารถอัปโหลดแอปแยกกับแอปปกติ (Installed App) ได้ หรือถ้าใช้ Android App Bundle ก็สามารถทำให้แอปรองรับได้ทั้ง Installed App และ Install App ในตัวเดียวได้เลยเช่นกัน

โดยเมนูสำหรับ Instant App บน Google Play Console จะอยู่ใน Release management > Android Instant Apps

การส่งแอปขึ้น Google Play เพื่อทำเป็น Instant App จะสามารถแบ่งรูปแบบการ Release ออกเป็นหลายๆ Track ได้เหมือนกับ Installed App เลย แต่ว่าจะแบ่งเป็น Prodution, Alpha และ Internal Test เท่านั้น


นักพัฒนาสามารถอัปโหลด AAB ขึ้นไปแค่ไฟล์เดียว แล้ว Release ใน Installed App กับ Instant App พร้อมกันได้เลย โดยที่สามารถกำหนด Track ในการ Release แยกกันได้ด้วย

App Signing

นักพัฒนาสามารถเปิดใช้งาน App Signing เพื่อให้ Google Play Console ช่วยจัดการและดูแล Keystore แทนนักพัฒนาได้ เพื่อป้องกันปัญหาการทำ Keystore หาย โดยทาง Google Play Console จะเรียก Keystore นั้นว่า Signing Key

โดยเมนูสำหรับ App Signing จะอยู่ใน Release management > App signing


นักพัฒนายังคงสามารถใช้ Keystore เดิมเพื่อ Release Build ได้เหมือนเดิม หรือจะให้ Google Play Console สร้าง Upload Key เพื่อให้นักพัฒนาใช้แทน Keystore ของเดิมก็ได้ เหมาะกับทีมพัฒนาที่ไม่ต้องการให้นักพัฒนาถือ Keystore โดยตรง และถ้ามีปัญหาอะไรเกิดขึ้นก็สามารถขอ Upload Key ชุดใหม่ได้ตลอดเวลา

และในการใช้ Android App Bundle เพื่อส่งแอปขึ้น Google Play ก็จะต้องเปิดใช้งาน App Signing ด้วยเช่นกัน

Device Catalog

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

โดยเมนูสำหรับ Device Catalog จะอยู่ใน Release management > Device Catalog


นักพัฒนาสามารถเข้าไปดูข้อมูลของอุปกรณ์แอนดรอยด์แต่ละเครื่องได้ตามใจชอบ โดยข้อมูลจะประกอบไปด้วย

Device Specification เช่น CPU, GPU, RAM และขนาดหน้าจอ เป็นต้น
System Feature (อันนี้มีประโยชน์มาก เพราะนักพัฒนาหาข้อมูลด้วยตัวเองได้ยากมาก)
OpenGL Extensions
Shared Libraries

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

นอกจากนี้ Google Play Console ยังใช้ข้อมูลใน Device Catalog เพื่อวิเคราะห์เรื่อง App Compatibility สำหรับแอปนั้นๆด้วย

Artifact Library

ในการ Release แต่ละครั้ง Google Play Console จะทำการเก็บแอปแต่ละเวอร์ชันไว้ใน Artifact Library ให้เพื่อช่วยให้นักพัฒนาสามารถจัดการและดูรายละเอียดของแต่ละเวอร์ชันได้สะดวก

โดยเมนูสำหรับ Artifact Library จะอยู่ใน Release management > Artifact library


ทุกครั้งที่นักพัฒนาอัปโหลดแอปไม่ว่าจะเป็น Installed App หรือ Instant App ก็จะถูกเก็บไว้ใน Artifact Library ให้โดยอัตโนมัติ ดังนั้นเวลาอัปโหลดแอปที่ยังไม่ได้ Publish แล้วต้องการอัปโหลดแอปทับของเก่า ก็อาจจะต้องมาลบในนี้ด้วย

Pre-launch Report

สำหรับแอปที่ Release แบบ Open Track และ Closed Track ใน Google Play Console จะทำการทดสอบแอปด้วย Firebase Test Lab ให้โดยอัตโนมัติ เพื่อวิเคราะห์การทำงานของแอปว่ามีปัญหาในจุดไหนบ้าง โดยทดสอบทั้งหมด 5 อย่างด้วยกัน

Crashes - ตรวจสอบว่ามีปัญหาแอปพังหรือไม่
Android Compatibility - ความครอบคลุมในการรองรับอุปกรณ์แอนดรอยด์หลายๆรุ่น
Performance - ประสิทธิภาพในการทำงานของแอป
• Security & privacy - การจัดการด้านความปลอดภัยและข้อมูลส่วนบุคคลภายในแอป
• Accessibility - การรองรับการใช้งานของผู้พิการในด้านต่างๆ

โดยเมนูดังกล่าวจะอยู่ใน Release management > Pre-launch report


ซึ่งการทำ Pre-launch ของ Google Play จะช่วยให้นักพัฒนาลดปัญหาที่อาจจะเกิดขึ้นกับผู้ใช้งานจริงได้ประมาณนึง โดยที่นักพัฒนาไม่ต้องเสียเวลาทดสอบการทำงานเหล่านี้ด้วยตัวเอง (ถ้าทำอยู่แล้วก็คิดซะว่าเป็นการ Double Check เพื่อให้มั่นใจมากขึ้น)

นอกจากนี้ยังรองรับกับแอปที่ต้องล็อกอินเข้าสู่ระบบก่อนถึงจะใช้งานได้ด้วย โดยให้นักพัฒนาใส่รายละเอียดสำหรับการล็อกอินไว้ใน Google Play Console รวมไปถึงการทดสอบ Deep Links และกรณีที่ต้องการทดสอบด้วย Robo Script ของตัวเองอีกด้วย

Android Vitals

Android Vitals เป็นเครื่องมือบน Google Play ที่จะช่วยวิเคราะห์ปัญหาและประสิทธิภาพในการทำงานของแอปให้โดยอัตโนมัติ ซึ่งจะประกอบไปด้วย

Battery วิเคราะห์จากการใช้งาน Wakelock, Alarm และ Network ของแอปนั้นๆ
ANR & Crash วิเคราะห์จาก ANR และ Crash จากแอปที่เกิดขึ้นในเครื่องของผู้ใช้
UI Rendering วิเคราะห์จากการ Render ของ UI ในแอป
Startup Time วิเคราะห์จากระยะเวลาที่ใช้ในการเปิดแอป โดยแบ่งเป็น Cold, Warm และ Hot
Permission วิเคราะห์จาก Permission ที่แอปขออนุญาตแล้วถูกผู้ใช้ปฏิเสธ

เพื่อช่วยให้นักพัฒนาสามารถรับรู้ถึงปัญหาเหล่านั้นและแก้ปัญหาได้ตรงจุดมากขึ้น


โดย Android Vitals จะอยู่ในเมนู Android Vitals ของ Google Play Console เลย

เครื่องมือดีๆเยอะขนาดนี้ ต้องลองใช้ดูแล้วล่ะ

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

Distribution ก็เป็นเรื่องหนึ่งที่นักพัฒนาควรใส่ใจ เพราะการ Distribution ที่ดีจะช่วยเป็น Feedback ที่ดีเพื่อให้การพัฒนา (Development) แอปเป็นไปได้ด้วยดี ช่วยลดการเสียเวลาให้กับสิ่งที่ไม่จำเป็น เพื่อให้เกิดเป็นแอปที่ดี ที่มีคุณภาพ และตอบโจทย์ผู้ใช้งานได้จริง

และ Google Play Console ก็ให้ความสำคัญกับเรื่องเหล่านี้ จึงได้สร้างเครื่องมือเหล่านี้ขึ้นมาเพื่อช่วยนักพัฒนาไงล่ะ