web analytics

เปรียบเทียบ Deploy Flutter ระหว่าง App Center กับ Codemagic

สวัสดีผู้อ่านทุกท่านครับ ก่อนหน้านี้ผมได้เขียนบล็อกเกี่ยวกับการ Deploy Flutter ด้วย App Center ที่เป็นบริการ CI/CD สำหรับ Mobile App และพาไปลองเล่น Codemagic เป็นบริการ CI/CD อีกเจ้านึง แต่ว่าผมยังไม่ได้เขียนเปรียบเทียบ และสรุปความคุ้มค่า เลยอยากจะเขียนสรุปในบล็อกนี้ครับ

โดยผมจะใช้ข้อมูลจากงาน Flutter ที่ผมใช้เป็นหลักนะ และราคาที่คำนวณจะเป็นราคาในปี 2021 ในอนาคตอาจมีการเปลี่ยนแปลง
และทั้งหมดเป็นเพียงความเห็นส่วนตัวของผมเท่านั้น

ก่อนหน้านี้

UX/UI ความสวยงาม

ข้อนี้ผมยกให้ Codemagic ทำออกมาได้สวยงามกว่า เข้าใจง่ายกว่า ชอบโทนสีของเว็บ ในการใช้สีสันที่มีเอกลักษณ์ ในขณะที่ App Center จะออกแนว Console โบราณๆเดิมๆ และการแสดงรายละเอียดต่างๆ ของ Codemagic ทำได้ดีกว่า มีการแบ่งหัวข้อของ output ทำให้เข้าใจง่ายอีกด้วย

ความสามารถ

หากพูดถึงฟีเจอร์ ต้องยกให้ Codemagic เพราะฟีเจอร์เยอะกว่า App Center มาก โดยฟีเจอร์เด่นๆที่ Codemagic มีแต่ใน App Center ไม่มี คือ

สร้างโปรเจค Flutter ได้เลย ไม่ต้องแยก Android / iOS
สามารถกำหนด Workflow
สามารถเลือกปรับแต่งสเปคของ VM ได้ (ต้องเสียเงิน)
สามารถปรับแต่ง version CocoaPods ได้
สามารถแบ่งเป็นทีมได้
สามารถเชื่อมต่อกับ Firebase Distribution
สามารถเชื่อมต่อกับ App Store Connect
สามารถมีได้หลาย Flutter project ใน Repository เดียว
สามารถ build Flutter for Windows / Linux / Web ได้

ความง่ายในการ Config Flutter

ข้อนี้ก็ต้องยกให้ Codemagic แบบเต็มๆ เพราะ Codemagic ออกแบบ ส่วน CI/CD สำหรับ Flutter โดยเฉพาะ ดังนั้นมีคำสั่ง config เกี่ยวกับ Flutter ให้เลยในหน้า UI และไม่ต้องเขียน script เลยก็ได้ นอกจากนี้ สามารถเลือก Flutter version ได้เลย ผ่าน UI ในขณะที่ App Center ต้องเขียน script กำหนดเอาเอง

สามารถตั้งค่า Flutter analyzer ได้ สามารถ config Integration Test , Unit test ของ Flutter ผ่าน UI ได้เลย

เอกสารประกอบ

การใช้งานบริการ CI/CD มีความยุ่งยากเรื่อง config ต่างๆ ดังนั้น การมีเอกสาร หรือ document จะช่วยให้ไม่ต้องเสียเวลามาก ซึ่งในข้อนี้ จริงๆทั้ง App Center และ Codemagic ทำได้ดีทั้งคู่ แต่พอพูดเรื่อง Flutter แล้ว Codemagic มีคะแนนที่ดีกว่าตรงที่มี Document สำหรับ Flutter เลย และมีบล็อกบทความต่างๆเกี่ยวกับ Flutter เยอะมาก คำอธิบายเรื่อง Config ก็ละเอียดดี ดังนั้นข้อนี้ให้ Codemagic ครับ

เวลาที่ใช้ Build

เทียบเวลาที่ใช้ในการ build ผมเทียบโดยการใช้ Plan Freee ของทั้งคู่ และใช้โปรเจค Flutter เล็กๆโปรเจคเดียวกัน ซึ่งมีข้อแตกต่างนิดนึงตรงที่ App Center ไม่รองรับ Flutter โดยตรงจึงจะแยกโปรเจค iOS / Android ทำให้มีงานที่ซ้ำซ้อนและไม่จำเป็นอยู่ เช่น การดาวน์โหลด Flutter SDK ในขณะที่ Codemagic จะมี Flutter ให้เลย ดังนั้นแน่นอนว่า Codemagic จะใช้เวลาที่น้อยกว่าในสเปคที่เท่ากัน

โปรเจคเล็กApp CenterCodemagic
Android14 min 16 sec6 min 20 sec
iOS12 min 26 sec6 min 20 sec

จากการ build ใน VM แบบ Free สรุปได้ว่า App Center ใช้เวลา รวม ประมาณ 29 นาที ส่วน Codemagic ใช้เวลาประมาณ 13 นาที ซึ่งห่างกันครึ่งนึงเลย อันนี้แค่โปรเจคเล็กๆ ที่แทบไม่มี dependency อะไรเลยนะ ข้อนี้ Codemagic ได้ไปเต็มๆ

ความคุ้มค่าของแผนฟรี

ทีนี้มาดูความคุ้มค่า เมื่อเราจำเป็นต้องใช้แบบฟรี อันไหนจะคุ้มกว่ากัน โดยข้อจำกัดจะอยู่ที่ระยะเวลาต่อครั้งและโควต้าที่มีให้ฟรีต่อเดือน โดยเมื่อเทียบกันแล้ว Codemagic จะมีโควต้าที่ให้มาคุ้มมากกว่า เพราะให้ใช้ฟรี ต่อเดือนถึง 500 นาที และจำกัดเวลาต่อ build ถึง 2 ชั่วโมง ในขณะที่ App Center ให้ฟรีต่อเดือนที่ 240 นาที และจำกัด 30 นาทีต่อ build เท่านั้น

แผนฟรีApp CenterCodemagic
จำกัดเวลาต่อ build30 min120 min
โควต้าเวลา build ฟรีต่อเดือน240 min500 min

หากเราจะต้องใช้แผนฟรีเพื่อ build Flutter จะใช้ได้กี่ครั้งต่อเดือนกันนะ ลองมาคำนวณคร่าวๆกัน โดยใช้เวลาที่ได้จากโปรเจค Flutter ของผมก่อนหน้านี้มาคำนวณ

โปรเจคเล็ก แผนฟรีApp CenterCodemagic
จำนวนครั้งที่ build Flutter โปรเจคเล็ก8 ครั้ง / เดือน40 ครั้ง / เดือน

จะเห็นได้ว่า App Center สามารถ build ได้ราวๆ 8 ครั้งเท่านั้น ยากมากที่ใช้แผนฟรีในการทำงานทั้งเดือน ในขณะที่ Codemagic ยังพอใช้งานจริงแบบฟรีได้แบบสบายๆ build วันละครั้งยังเหลือๆ

ดังนั้น หากคุณจะใช้แผนฟรีเท่านั้น คำตอบ คือ Codemagic เหมาะสมกว่า App Center

แผนฟรีไม่พอ หากจะยอมเสียเงิน

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

พรีเมียมApp CenterCodemagic
หากใช้เกินโควต้าในแผนฟรีต้องเหมา$0.038 / นาที
เหมาไม่จำกัดเวลา$40 / เดือน$299 / เดือน

$0.038 / นาที ใน codemagic คือราคา macOS Standard VM ซึ่งตัวฟรีก็ใช้สเปคนี้เช่นกัน

จะเห็นได้ว่า Codemagic มีความยืดหยุ่นกว่า เพราะสามารถคิดค่าใช้จ่ายแบบ Pay as you go โดยคิดแบบรายนาที ที่ $0.038 ต่อนาที หรือประมาณ 1.25 บาทต่อนาที (Mac OS standard VM) ในขณะที่ App Center จะต้องเหมา $40 ต่อเดือนเท่านั้น ซึ่ง Codemagic ก็มีราคาเหมาเช่นกัน แต่จะคิดที่ $299 ต่อเดือน อะไรจะคุ้มกว่ากัน ถ้าเราจะต้องจ่าย ?

โดยผมได้คำนวณคร่าวๆ ในการคำนวณนี้ จะใช้โควต้าฟรีต่อเดือนที่มีให้ และเวลาในการ build Flutter โปรเจคเล็กๆ 1 โปรเจคก่อนหน้านี้

โปรเจคเล็กApp CenterCodemagic
ต้องการ build โปรเจคเล็ก 100 ครั้งต่อเดือน$40$26.6
ต้องการ build โปรเจคเล็ก 130 ครั้งต่อเดือน$40$40.2

จะเห็นได้ว่า การ build Flutter โปรเจคเล็กๆ 130 ครั้งต่อเดือน ค่าใช้จ่ายของ App Center กับ Codemagic จะเท่ากันที่ประมาณ $40 หากใช้มากกว่านี้ App Center จะคุ้มกว่าเพราะเป็นราคาเหมาทั้งเดือน

ทีนี้ ผมลองใช้งานโปรเจคที่ใหญ่ขึ้น เป็นโปรเจคที่เป็นแอปงานจริงๆ ใช้เวลา build มากขึ้นกว่าเดิมประมาณ 2.5 เท่า

โปรเจคใหญ่App CenterCodemagic
Android35 min15 min
iOS35 min15 min

ซึ่งพอคำนวณแล้ว ค่าใช้จ่ายของ App Center กับ Codemagic จะเท่ากันที่ $40 หากใช้ build โปรเจคใหญ่อันนี้ 52 ครั้งต่อเดือน หากมากกว่านี้ App Center จะคุ้มกว่า

จากนั้นลองคำนวณ Codemagic แบบเหมา $299 พบว่า เราจะต้อง build โปรเจคใหญ่ 280 ครั้งต่อเดือน ถึงจะต้องจ่ายประมาณ $299 ดังนั้น หาก build มากกว่านี้ ให้จ่าย $299 ไปเลยสำหรับ Codemagic จึงจะคุ้มนั่นเอง

โปรเจคใหญ่App CenterCodemagic
ต้องการ build โปรเจคใหญ่ 52 ครั้งต่อเดือน$40$40.3
ต้องการ build โปรเจคใหญ่ 100 ครั้งต่อเดือน$40$95
ต้องการ build โปรเจคใหญ่ 280 ครั้งต่อเดือน$40$300

สรุป

สรุปได้ว่า ในแง่ความสามารถ ฟีเจอร์ ความง่ายในการ config ระยะเวลาในการ build สำหรับ Flutter ต้องยกให้ Codemagic ว่าตอบโจทย์จริงๆ อีกทั้งสำหรับโปรเจคเล็กๆเริ่มต้นหรือโปรเจคทดลองต่างๆ Codemagic ก็ยังตอบโจทย์ เพราะ Free Plan ให้เวลามากถึง 500 นาที ซึ่งมากพอจะ build โปรเจคเล็กๆได้สบายๆ 40 ครั้งต่อเดือน

ส่วนโปรเจคที่จริงจังขึ้น ใหญ่ขึ้น หากใช้เวลา build ไม่เกิน 1,560 นาที (26 ชั่วโมง) Codemagic ก็ยังตอบโจทย์ความคุ้มค่ากว่า เพราะค่าจ่ายจะยังไม่ถึง $40 ต่อเดือน

แต่หากโปรเจคที่ใหญ่มากขึ้น มีหลายโปรเจค และต้อง build รวมๆกันมากกว่า 50 ครั้งต่อเดือน ความคุ้มค่าจะตกเป็นของ App Center เพราะจะจ่ายเป็น Fix cost ที่ $40 ต่อเดือน ซึ่งตรงนี้ตอบโจทย์โปรเจคใหญ่ๆแน่นอน หรือหากมีเงินและไม่อยากคิดอะไรมาก ขี้เกียจจัดการกับบิลที่รายจ่ายไม่แน่นอน App Center ก็เป็นตัวเลือกที่เหมาะสม ส่วนตัวคิดว่า $40 ถือว่าเป็นราคาที่รับได้

จบแล้ว

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