android-deployment
วันนี้นั่งสรุปการนำ Fastlane มาใช้กับการพัฒนา Android application
โดยในตอนนี้จะมีชุดเครื่องมืออยู่ 2 ตัวคือ

  • Supply สำหรับการแก้ไข Android app บน Google Play เช่น APK และ metadata ต่าง ๆ
  • Screengrab สำหรับการบันทึกรูป screenshot การทำงานของ app ซึ่งทำงานร่วมกับ Espresso หรือ UI Testing

ดังนั้น เราลองนำเครื่องมือทั้งสองมาใช้งานร่วมกันดีกว่า

ความต้องการเป็นดังนี้

  • ทำการ build app ด้วย Gradle
  • ทำการทดสอบ UI Test ด้วย Espresso
  • ทำการบันทึกรูป screenshot การทำงานของ app สำหรับ upload ขึ้น Google Play
  • ทำการ upload APK และ metadata ต่าง ๆ ขึ้น Google Play

ดังนั้นมาเริ่มต้นสร้างระบบกันเลยดีกว่า

1. เครื่องมือสำหรับการ Upload APK และ metadata ต่าง ๆ ขึ้น Google Play ชื่อว่า Supply

ข้อจำกัดอย่างหนึ่งของ Supply คือ
ต้องทำการสร้าง App และ Upload APK ขึ้น Google Play ก่อนเสมอ
จากนั้นก็เริ่มต้นใช้งาน Supply ได้เลย

โดยที่ supply นั้นจะทำงานผ่าน Google Play Developer Publishing API
ดังนั้นต้องทำการขอสิทธิ์ในการเข้าใช้งานจาก Google Play Developer Console เสียก่อน
แสดงดังรูป

deploy-01

จากนั้นให้ทำการสร้าง Service Account key

deploy-02

ให้เลือก Key type เป็น JSON
และอย่าลืม download มาเก็บไว้ที่เครื่อง
ซึ่งผมตั้งชื่อไฟล์นี้ว่า google_play.json
เนื่องจากจะต้องใช้ใน suppply นั่นเอง

2. เริ่มใช้งาน supply ผ่าน fastlane กันเลย

ให้สร้าง fastlane project ด้วยคำสั่ง

$fastlane init

ให้ทำการแก้ไขไฟล์ Appfile ใน folder fastlane
เพื่อใส่ข้อมูล json_key_file สำหรับการใช้งานผ่าน Google Play Developer Publishing API
ดังนี้

จากนั้นให้ทำการดึงข้อมูล metadata ต่าง ๆ ของ Android app จาก Google Play
ด้วยคำสั่ง

$supply init

ทำการดึงข้อมูล metadata ต่าง ๆ ดังนี้มา

  • Title
  • Short description
  • Full description
  • Screenshot ต่าง ๆ

แสดงดังรูป

deploy-04

3. ทำการบันทึกรูป screenshot การทำงานของ app ด้วย Screengrab

ซึ่งผมเคยเขียนอธิบายการใช้งาน
ไว้ที่ Blog :: ทำการ capture หน้าจอการทำงานด้วย Fastlane Screengrab กัน
และนำรูปเหล่านี้มาไว้ใน folder phoneScreenshots
เพื่อ upload ขึ้น Google Play ต่อไป

4. ทำการ upload การเปลี่ยนแปลงต่าง ๆ ไปยัง Google Play

ประกอบไปด้วย APK และ Metadata ต่าง ๆ
ซึ่งมีขั้นตอนการทำงานดังนี้

  1. ทำการสร้าง APK ที่ signed เรียบร้อย
  2. ทำการ upload สิ่งต่าง ๆ ไปยัง Google Play ด้วย supply

โดยสามารถกำหนดการทำงานผ่าน Fastfile หรือ configuration ของ Fastlane นั่นเอง
ในตัวอย่างทำการ upload APK ไปยัง Alpha testing ดังนี้

เมื่อทุกอย่างเรียบร้อยก็ทดสอบการทำงานด้วยคำสั่ง

$fastlane deploy

แสดงผลการทำงานดังนี้

deploy-05

สุดท้ายทำการตรวจสอบผลการทำงานที่ Google Play Developer Console

จะพบว่า

  • ทำการแก้ไข APK ในส่วนของ Alpha testing เรียบร้อย
  • ทำการแก้ไข metadata เรียบร้อย
  • ทำการแก้ไขรูปภาพเรียบร้อย

ข้อมูลของ Metadata แสดงดังรูป

deploy-06

รูปภาพการทำงานของ App แสดงดังรูป

deploy-07

เพียงเท่านี้เราก็สามารถทำการ

ทำการทดสอบ android app ด้วย Espresso
ทำการบันทึกรูป screenshot การทำงานของ app
ทำการสร้าง file APK
ทำการ upload APK และ metadata ต่าง ๆ ขึ้น Google Play
ด้วยชุดคำสั่งเดียวเท่านั้น ..

มันน่าจะทำให้ชีวิตของนักพัฒนา Android app สะดวกสบายมากขึ้นหรือเปล่านะ ?