fastlane
Fastlane คืออะไร ?

เป็นกลุ่มของเครื่องมือ สำหรับช่วยทำให้สิ่งต่าง ๆ เหล่านี้ง่ายขึ้น

  • ขั้นตอนการ deploy และ release app
  • สร้างระบบการทำงานแบบอัตโนมัติ
  • สร้างระบบการพัฒนาระบบงานแบบอัตโนมัติ

ถูกสร้างมาตามแนวคิด Continuous Delivery (CD) นั่นเอง

ซึ่งแต่ละขั้นตอนของทำงาน หรือ การ build นั้น
เราสามารถจัดเรียงลำดับการทำงานได้เอง
โดยจะเรียกว่า Lane

แสดงดังรูป

intro-fastlane-tree

ตัวอย่างการนำ Fastlane มาใช้งาน

  • สำหรับ iOS app เราสามารถทำการ deploy app ไปยัง Apple Store เพียงใช้คำสั่งเดียว
  • สำหรับ Android app เราสามารถทำการ deploy app ไปยัง Google Play Store เพียงใช้คำสั่งเดียว

ผลที่ได้รับคือ

  • ลดเวลาในการ deploy app ลงไปอย่างมาก
  • ทำให้มีเวลาไปปรับปรุงคุณภาพของ app มากขึ้น
  • ทำให้เราสามารถ deploy ระบบงานแบบเล็ก ๆ ได้ตลอดเวลา
  • ทำให้ใคร ๆ ในทีมก็สามารถ deploy ระบบงานได้

มาดูว่า Fastlane มีเครื่องมืออะไรให้ใช้งานกันบ้าง ?

โดยแบ่งออกเป็น 2 กลุ่มหลัก ๆ คือ

กลุ่มที่ 1 สำหรับ iOS app

  1. Deliver สำหรับการ upload screenshot และ metadata ขึ้นไปยัง App Store
  2. Snapshot สำหรับการบันทึก screenshot ของ app ในแต่ละ device ซึ่งทำงานร่วมกับ UI Testing
  3. Frames ช่วยทำให้การบันทึก screenshot ให้ถูกต้อง
  4. PEM สำหรับจัดการ profile ของระบบ push notification
  5. Sigh สำหรับจัดการ provisioning profile ต่าง ๆ ของ app
  6. Produce สำหรับการสร้าง iOS app บน iTune Connect และ Apple Developer Portal
  7. Cert สำหรับทำการ sign certificate ให้กับ app เมื่อทำงานสำเร็จ ก็เรียกใช้งาน Sign ต่อได้เลย
  8. Scan สำหรับทำการ run test ต่าง ๆ ของ app ทั้ง Unit Test และ UI Test ทำให้ชีวิตง่ายขึ้นอย่างมาก เนื่องจากการใช้งาน xcodebuild มันยากมาก
  9. Gym สำหรับการ build และ packaging iOS app ผลที่ได้คือไฟล์ ipa ที่ทำการ sign certificate เรียบร้อยแล้ว
  10. Match สำหรับการ sync พวก certificate และ profile ต่าง ๆ ผ่าน git ทำให้ทุกคนในทีมใช้งานได้

กลุ่มที่ 2 สำหรับ Android app

  1. Supply สำหรับการ upload screenshot และ metadata ขึ้นไปยัง Google Play Store
  2. Screengrab สำหรับการบันทึก screenshot ของ app ในแต่ละ device ซึ่งทำงานร่วมกับ Esspresso หรือ UI Testing ซึ่งผมเคยเขียน blog อธิบายไว้แล้วที่นี่

Software ที่จำเป็นสำหรับ Fastlane

ประกอบไปด้วย

  • OSX 10.9 ขึ้นไป
  • Ruby 2.0 ขึ้นไป
  • Xcode
  • จ่ายเงินสำหรับ Apple Developer Account ซะ

ก่อนที่จะทำการติดตั้ง Fastlane ให้ทำการตรวตสอบดังนี้
เริ่มจากตรวจสอบเวอร์ชันของ Ruby ด้วยคำสั่ง

$ruby -v

ต่อมาทำการตรวจสอบว่า ทำการติดตั้ง Xcode Command Line Tool (CLT) แล้วหรือยัง
ด้วยคำสั่ง

$xcode-select --install

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

$gem install fastlane

จะใช้เวลาในการติดตั้งนานนิดหน่อย ไม่ต้องกังวลนะครับ
รอนิดหน่อย หรือ ไปหาข้าวกินก่อนได้เลย

เมื่อติดตั้งเรียบร้อย เราสามารถใช้คำสั่งนี้ได้

$fastlane

เพียงเท่านี้ก็พร้อมสำหรับเริ่มใช้งาน Fastlane ได้แล้ว
ซึ่งใน blog ต่อ ๆ ไป จะแสดงตัวอย่างการใช้งาน Fastlane สำหรับ iOS app กัน

สุดท้ายแล้ว

สำหรับ iOS Developer และ Android Developer
ไม่ควรพลาดที่จะรู้จักและลองนำ Fastlane ไปใช้งานกันดูครับ
น่าจะช่วยปรับปรุงขั้นตอนการพัฒนาและ deploy app ให้ดีขึ้นกว่าเดิม