ย้อนกลับไปหลายปีก่อน ในสมัยนั้น Google Play Console ยังทำอะไรได้ไม่มากนัก นอกจากการปล่อยแอปขึ้น Google Play แต่พอรู้ตัวอีกทีก็พบว่า เดี๋ยวนี้บน Google Play Console มีเครื่องมือเพื่อช่วยให้นักพัฒนาทำงานได้ง่ายขึ้นเยอะมาก ดังนั้นมาดูกันว่าในยุคนี้ Google Play Console มีอะไรให้ใช้กันบ้าง
ในบทความนี้จะเน้นไปเฉพาะส่วนที่มีผลต่อ Development เท่านั้น ไม่รวมไปถึง Analytics หรือ Marketing นะ
App Release
ในการส่งแอปขึ้น Google Play นั้น นักพัฒนาของแต่ละแอปอาจจะแบ่งรูปแบบในการ Release ออกเป็นหลายๆแบบ เช่น Production, Alpha, Beta หรือ Internal เป็นต้น โดยนักพัฒนาไม่จำเป็นต้องสร้าง Tools เพื่อแบ่งรูปแบบการ Release เหล่านั้นด้วยตัวเอง เพราะว่า Google Play Console สามารถทำแบบนั้นได้อยู่แล้ว
เพื่อรองรับรูปแบบในการ Release ที่หลากหลาย Google Play Console จึงแบ่งรูปแบบ (Track) ในการ Release โดยเรียกรูปแบบต่างๆดังนี้
- Production
- Open Testing
- Closed Testing
- Internal Testing
Production
สำหรับนักพัฒนาที่ต้องการปล่อยแอปแบบ Production Release หรือ Stable Version นั่นเอง ซึ่งการ Release ในแบบนี้จะทำให้ผู้ใช้ทั่วไปสามารถเข้ามาดาวน์โหลดแอปได้ปกติ ซึ่งเป็นรูปแบบพื้นฐานที่นักพัฒนาใช้กันทุกคนอยู่แล้ว
โดยเมนูสำหรับ Production จะอยู่ใน Release > Production
Open Testing
เป็นการปล่อยแอปที่สามารถเปิดให้ผู้ใช้ทั่วไปสามารถสมัครเข้าร่วมเพื่อทดสอบแอปได้ หรือที่เรียกกันว่า Beta Version นั่นเอง โดยเหมาะกับการทดสอบแอปกับผู้ใช้งานจริงที่บางส่วนก่อนที่จะเป็น Production เพื่อช่วยให้มั่นใจว่าแอปจะไม่มีปัญหากับผู้ใช้งานจริง หรือถ้ามีก็จะกระทบแค่เฉพาะผู้ใช้ที่สมัครเข้ามาทดสอบแอปเท่านั้น ยังไม่ส่งผลกระทบในวงกว้างมากนัก
โดยเมนูสำหรับ Open Testing จะอยู่ใน Release > Testing > Open Testing
Closed Testing
เหมาะสำหรับแอปที่ต้องการทดสอบแอปกับทีมงานด้วยกันก่อน เช่น อยากให้พนักงานในบริษัทช่วยกันทดสอบแอป เพื่อดูว่ามีปัญหาอะไรมั้ย ก่อนที่จะส่งให้ผู้ใช้ได้ทดลองใช้งาน (Open Testing) หรือใช้งานจริง (Production) การทดสอบด้วยรูปแบบนี้จึงเหมาะกับแอปที่มี Alpha Version สำหรับเพื่อให้คนที่เป็นวงในสามารถทดสอบแอปได้
โดยเมนูสำหรับ Closed Testing จะอยู่ใน Release > Testing > Closed Testing
Internal Testing
เป็นรูปแบบที่อำนวยความสะดวกให้กับเหล่า QA ของทีมพัฒนาที่ต้องการทดสอบแอปโดยอัปเดตแอปผ่าน Google Play โดยตรง ไม่ต้องเสียเวลา Build ลงเครื่องเอง และนักพัฒนาก็สามารถส่งอัปเดตใหม่ๆให้กับ QA ได้ง่าย ถึงแม้ว่าจะทำงานอยู่คนละที่กันก็ตาม
ในการกำหนดผู้ใช้ที่จะอยู่ใน Internal Testing จะต้องกำหนดด้วย Google Account ในเมนู Release > Setup > Internal app sharing
โดยเมนูสำหรับ Internal Testing จะอยู่ใน Release > Testing > Internal Testing
จะใช้แบบไหน ก็อยู่ที่ Development Process ของทีมพัฒนาในแต่ละแอป
เพราะทีมพัฒนาแอปของแต่ละที่มีรูปแบบในการทำงานไม่เหมือนกัน มีลำดับขั้นตอนในการ Release แตกต่างกันไป ดังนั้น Google Play Console จึงได้มีหลายรูปแบบเพื่อให้นักพัฒนาสามารถประยุกต์ใช้งานได้ตามใจชอบ ดังนั้นอยากจะทดสอบแอปกับคนกลุ่มไหน ก็ให้เลือก ใช้งานให้ตรงกับคนกลุ่มนั้นๆ ไม่จำเป็นต้องใช้ทุกรูปแบบก็ได้
การใช้หลายๆรูปแบบในการ Release จะช่วยให้นักพัฒนาทดสอบแอปกับผู้ใช้แต่ละกลุ่มได้ และเมื่อส่งแอปไปจนถึง Production ก็มั่นใจได้ประมาณนึงว่าจะมีปัญหาเกิดขึ้นน้อยที่สุด อีกทั้งยังสามารถรับ Feedback จากแต่ละรูปแบบได้ในกรณีที่มีปัญหาหรือต้องการเปลี่ยนแปลงอะไรบางอย่าง
ระยะเวลาในการ Review ของแต่ละอัน
อย่างที่รู้กันว่าการส่งแอปขึ้น Google Play นั้นจะต้องผ่านการ Review ก่อนทุกครั้ง
โดยการ Release ใน Production, Open Testing และ Closed Testing จะใช้ระยะเวลาใกล้เคียงกัน นั้นก็คือ 30 นาทีไปจนถึง 7 วัน (มีการ Review ด้วยทีมงานภายในและระบบอัตโนมัติ)
แต่สำหรับ Internal Testing นั้นจะใช้เวลาไม่เกิน 5–10 นาที เนื่องจากเป็นช่องทางที่ทำขึ้นมาเพื่อให้คนภายในทีมใช้ทดสอบกัน จึงสามารถ Release บ่อยแค่ไหนก็ได้
ถ้ามี QA ภายในทีมเพื่อทดสอบแอปอยู่แล้ว จำเป็นต้องใช้ Internal Testing หรือป่าว?
จริงๆแล้ว Internal Tesing นั้นจะเหมาะสำหรับการทดสอบแอปที่เป็น Release Build มากกว่า (การทดสอบแอปภายในทีมมักจะเป็นแบบ Debug Build)
ซึ่งในมุมมองของ QA จะมองว่า Debug Build กับ Release Build นั้นเป็นคนละตัวกัน และต้องทดสอบแยกกันอยู่ดี ถึงแม้ว่านักพัฒนาจะบอกว่าโค้ดที่ใช้เหมือนกันทั้งหมด แต่นั่นก็เพราะว่า Release Build จะมีขั้นตอนอย่าง Minify เพิ่มเข้ามาด้วย ซึ่ง Debug Build ไม่มี ดังนั้นผลลัพธ์ที่ได้ก็อาจจะไม่เหมือนเดิม
และการทดสอบ Release Build ที่ใกล้เคียงกับการใช้งานจริงที่สุดก็คือการอัปเดตแอปผ่าน Google Play โดยตรง ซึ่งจะต่างจาก Debug Build ที่มักจะมาจากการติดตั้งผ่าน Android Studio หรือติดตั้งจาก APK จึงทำให้การใช้ Internal Testing สามารถจำลองสถานการณ์ของผู้ใช้ได้เหมือนจริงมากกว่า
แต่ถ้าภายในทีมมีการวิธีการทดสอบสำหรับ Release Build ที่จำลองได้ใกล้เคียงกับ Google Play อยู่แล้ว ก็อาจจะไม่จำเป็นต้องใช้ Internal Testing ก็ได้
Staged Roll-out
ในเวลาที่ทำการอัปเดตแอปเวอร์ชันใหม่ นักพัฒนาสามารถกำหนดได้ว่าจะให้ Release ออกไปเป็นกี่ % ของผู้ใช้ที่ติดตั้งแอปอยู่ในเครื่อง ณ ตอนนั้น โดยเมนูดังกล่าวจะอยู่ในขั้นตอนการสร้าง New Release ในแต่ละครั้งนั่นเอง
การกำหนดตัวเลขดังกล่าวจะส่งผลให้ผู้ใช้แค่บางกลุ่มที่จะได้รับการอัปเดตแอปเป็นเวอร์ชันใหม่ โดย Google Play จะเป็นคนจัดการให้ทั้งหมด และนอกจากนี้ยังเลือกแค่บางประเทศได้อีกด้วย
Staged Roll-out จะช่วยให้นักพัฒนาสามารถทยอยปล่อยอัปเดตได้ตามที่ต้องการ (เข้ามาอัปเดตตัวเลขได้เรื่อยๆจนถึง 100%) เพื่อดูผลกระทบที่อาจจะเกิดขึ้นจากการอัปเดตเวอร์ชันใหม่ ถ้ามีปัญหาร้ายแรงใดๆเกิดขึ้นก็สามารถหยุดปล่อยอัปเดตและแก้ไขปัญหานั้นๆก่อนที่จะส่งผลกระทบไปในวงกว้างมากขึ้นได้
App Publishing Control
โดยปกติแล้ว เมื่ออัปโหลดไฟล์ APK หรือ AAB ขึ้น Google Play และผ่านการรีวิว ผู้ใช้ก็จะเห็นแอปบน Google Play และดาวน์โหลดได้เลย แต่ในกรณีที่ต้องการอัปโหลดเพื่อให้รีวิวไว้ล่วงหน้า แต่ยังไม่ต้องการให้แอปโผล่ให้เห็น Google Play หลังจากรีวิวเสร็จ ก็สามารถกำหนดใน Google Play Console ได้เลย
เมนูดังกล่าวจะอยู่ใน Publishing overview
Private App สำหรับ Android Enterprise
แอปที่ต้องการให้ใช้งานได้แค่พนักงานภายในองค์กร ก็สามารถส่งขึ้น Google Play ได้เช่นกัน โดยใช้ Closed Testing ที่จะต้องส่ง Invite ผ่าน Google Account เท่านั้นถึงจะเข้ามาดาวน์โหลดแอปได้
แต่สำหรับองค์กรที่ใช้ Android Enterprise จะสามารถกำหนดให้แอปนั้นๆเปิดใช้งานเฉพาะผู้ใช้ภายในองค์กรได้เลย
โดยสามารถเปิดใช้งานได้ที่ Release > Setup > Advanced settings > Managed Google Play
Instant App
Instant App เป็นความสามารถอย่างหนึ่งใน Google Play ที่จะช่วยให้ผู้ใช้สามารถทดลองใช้งานแอปบางส่วนได้โดยไม่ต้องติดตั้งแอปลงในเครื่อง (เบื้องหลังคือดาวน์โหลดมาติดตั้งลงในเครื่องแหละ แต่มีขนาดเล็ก และผู้ใช้มองไม่เห็นว่ามีแอปอยู่ในเครื่อง)
เพราะในบางครั้งถ้าแอปมีขนาดใหญ่ (ลดขนาดแอปเท่าที่ทำได้แล้ว) ก็อาจจะทำให้ผู้ใช้ไม่อยากดาวน์โหลดแอปและทำให้เสียโอกาสไปอย่างน่าเสียดาย ดังนั้นการทำ Instant App จะช่วยให้ผู้ใช้สามารถลองใช้แอปแค่บางส่วนได้ ซึ่งดาวน์โหลดไม่เยอะมาก เพื่อเพิ่มโอกาสที่ผู้ใช้จะดาวน์โหลดแอปให้เพิ่มมากขึ้น
ในการเพิ่ม Instant App นอกจากจะต้องทำให้แอปรองรับกับ Instant App แล้ว ยังต้องเพิ่ม Release Types บน Google Play Console ด้วย โดยเข้าไปที่เพิ่มได้ที่ Release > Setup > Advance settings > Releases types
โดยนักพัฒนาสามารถอัปโหลด AAB ขึ้นไปแค่ไฟล์เดียวเพื่อใช้เป็น Installed App กับ Instant App พร้อมๆกันได้เลย
App Signing
นักพัฒนาสามารถเปิดใช้งาน App Signing เพื่อให้ Google Play Console ช่วยจัดการและดูแล Keystore แทนนักพัฒนาได้ เพื่อป้องกันปัญหาการทำ Keystore หาย โดยทาง Google Play Console จะเรียก Keystore นั้นว่า Signing Key
โดยเมนูสำหรับ App Signing จะอยู่ใน Release > Setup > 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 > Device catalog
นักพัฒนาสามารถเข้าไปดูข้อมูลของอุปกรณ์แอนดรอยด์แต่ละเครื่องได้ตามใจชอบ โดยข้อมูลจะประกอบไปด้วย
- Device Specification เช่น CPU, GPU, RAM และขนาดหน้าจอ เป็นต้น
- System Feature (อันนี้มีประโยชน์มาก เพราะนักพัฒนาหาข้อมูลด้วยตัวเองได้ยากมาก)
- OpenGL Extensions
- Shared Libraries
ข้อมูลเหล่านี้เป็นข้อมูลที่ทางผู้ผลิตอุปกรณ์แอนดรอยด์ส่งให้ทาง Google โดยตรง จึงเชื่อถือได้ประมาณนึง แต่ก็อาจจะไม่ตรงกับอุปกรณ์แอนดรอยด์ที่วางจำหน่ายจริงก็ได้ เพราะทาง Google ไม่ได้มีการตรวจสอบข้อมูลเหล่านั้นเพื่อยืนยันความถูกต้อง
นอกจากนี้ Google Play Console ยังใช้ข้อมูลใน Device Catalog เพื่อวิเคราะห์เรื่อง App Compatibility สำหรับแอปนั้นๆด้วย
App Bundle Explorer
ถึงแม้ว่าจะใช้ Bundle Tools เพื่อทดสอบการ Build เป็น APK จากไฟล์ AAB แต่นักพัฒนาก็สามารถใช้ App Bundle Explorer ที่อยู่บน Google Play เพื่อตรวจสอบว่าแอปสามารถรองรับกับอุปกรณ์แอนดรอยด์ได้ตามที่ต้องการจริงๆ
และยังสามารถดาวน์โหลด APK สำหรับอุปกรณ์แอนดรอยด์ที่ต้องการ โดยเลือกจาก Device Catalog ได้อีกด้วย
Pre-launch Report
สำหรับแอปที่ Release แบบ Open Track และ Closed Track ใน Google Play Console จะทำการทดสอบแอปด้วย Firebase Test Lab ให้โดยอัตโนมัติ เพื่อวิเคราะห์การทำงานของแอปว่ามีปัญหาในจุดไหนบ้าง โดยทดสอบทั้งหมด 5 อย่างด้วยกัน
- Stability
- Performance
- Accessibility
- Security and trust
โดยเมนูดังกล่าวจะอยู่ใน Release > Testing > 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 จะอยู่ในเมนู Quality > Android Vitals
เครื่องมือดีๆเยอะขนาดนี้ ต้องลองใช้ดูแล้วล่ะ
ไม่ใช่ทุกคนที่จะสามารถสร้างระบบสำหรับ Distribution ที่ครบวงจรได้ จึงทำให้ทีม Google Play Console ช่วยเหลือนักพัฒนาด้วยการสร้างเครื่องมือขึ้นมาเพื่อให้นักพัฒนาประหยัดเวลาได้ แทนที่จะต้องลงไปพัฒนาหรือติดตั้งระบบเหล่านี้ขึ้นมาเอง
Distribution ก็เป็นเรื่องหนึ่งที่นักพัฒนาควรใส่ใจ เพราะการ Distribution ที่ดีจะช่วยเป็น Feedback ที่ดีเพื่อให้การพัฒนา (Development) แอปเป็นไปได้ด้วยดี ช่วยลดการเสียเวลาให้กับสิ่งที่ไม่จำเป็น เพื่อให้เกิดเป็นแอปที่ดี ที่มีคุณภาพ และตอบโจทย์ผู้ใช้งานได้จริง
และ Google Play Console ก็ให้ความสำคัญกับเรื่องเหล่านี้ จึงได้สร้างเครื่องมือเหล่านี้ขึ้นมาเพื่อช่วยนักพัฒนาไงล่ะ