การทำ Force update โดยใช้ Siren

สำหรับหลายคนที่มีApplication อยู่บน Production เวลามีการอัพเดต ก็อยากให้ถูกคนที่กำลังใช้แอพเราอัพเดตเป็นเวอร์ชันล่าสุดใช่ไหมครับ ทั้งการที่ users จะได้รับ ฟังก์ชันใหม่ๆ หรือบางที APIs เปลี่ยน ถ้าเกิด users ไม่อัพเดตจะใช้งานไม่ได้เลย ก็มี

แล้วเราจะทำยังไงหล่ะ ให้ Users update app ของเราเป็นเวอร์ชันล่าสุด ?

สามารถทำได้หลายวิธีเช่น ประกาศให้คนอัพเดต แจ้งบนหน้าเว็บว่ามีอัพเดต ฯลฯแต่วิธีที่แน่นอนที่สุดผมคิดว่าก็คือการสั่งให้ Application ของเรานั้นบังคับ Force update ซึ่งถ้า user ของเราไม่ใช้แอพเวอร์ชั่นล่าสุด ก็จะมีการแจ้งเตือนให้อัพเดตทันทีเลย ก่อนใช้งานต่อนั่นเอง

ซึ่งผมคิดว่าการทำ Force update นั้นก็มีหลายวิธีมากๆ แต่วิธีที่ผมจะมาแนะนำวันนี้เป็นวิธีที่ง่ายมากครับ โดยเรามีตัวช่วย นั่นก็คือ Library ที่ชื่อว่า Siren นั่นเองครับ

คำอธิบายของ Library นี้ก็คือ “Siren checks a user’s currently installed version of your iOS app against the version that is currently available in the App Store.”

ซึ่งเราไม่ต้องมานั่งเช็คเอง ให้ api ส่ง appversion มาแล้วมาเทียบกับ bundle id ของแอพเรา เจ้าตัวนี้มันจะเทียบกับ Production ใน App Store ให้เลยครับ ซึ่งผมคิดว่ามันง่ายมากๆ

ซึ่งจะทำงานยังไง ไปดูกันเลยครับ

โหลๆๆ แอพมีอัพเดตนะเฮ้ยยยยย

เริ่มต้นกันที่ PodFile (ผมจะใช้ Xcode8 และ Swift3 เป็นตัวอย่างนะครับ)

หลังจากเราติดตั้ง pod เสร็จเรียบร้อย เปิดแอพขึ้นมาเลยครับ

ใน AppDelegate.swift

จัดการ import Siren เข้ามา
เจ้า siren นี้ถูกเขียนขึ้นมาเป็น singleton ฉะนั้น สร้างตัวแปรเพื่อใช้มันได้เลยครับ

ตัว Alert type ของ siren นี่ จะมีให้เลือกครับ ถ้าเราอยากให้ user อัพเดตอย่างเดียว ไม่มีการให้เลือกว่าอัพเดตภายหลังอะไรแบบนี้ ก็จัดการ Force ไปเลย

ผลของการเลือก option ต่างๆ (ภาพจาก github ของ siren)

เราสามารถตั้งค่าได้ว่าจะให้ siren เช็คเวอร์ชั่นของเรายังไงบ้าง เช็คทันที ทุกวัน หรือ อาทิตย์ละครั้ง จะมี enum มาให้เลือกเลยครับ

เสร็จแล้วครับ

…….

ห๊ะ.. เสร็จแล้วหรอ? ใช่ครับ ง่ายมากๆๆๆ แค่นี้พื้นฐานของการทำ Force update โดยการใช้ siren ก็เสร็จแล้วครับ ผมถึงอยากแนะนำ Library ตัวนี้มากๆ เพราะว่าความง่ายกับความสามารถของมันนั้นสุดยอดจริงๆ แต่ถ้าเกิดอยากปรับแต่งเพิ่มเติมก็สามารถเข้าไปดูรายละเอียดของ Siren ได้ที่นี่เลยครับ

ทดสอบ

มาดูกันดีกว่าว่าโค้ดแค่ไม่กี่คำที่ผมใส่เข้าไปมันจะใช้ได้ผลรึเปล่า?
แล้วจะเทสยังไงในเมื่อไม่มี App บน Appstore?
ทาง Document ของ siren บอกว่าก็ให้เราเปลี่ยน bundle app เราให้กลายเป็นแอพที่อยู่บน store แล้วเลือกเวอร์ชันต่ำกว่านั้นเองครับ ในที่นี้จะใช้ตัวอย่าง bundle ของ iTunes Connect Mobile ดังนี้

ผมก็ลองเลือก Version 1.0 เพราะมันต่ำกว่าที่อยู่ใน Appstore
ลองรันดูเลย

บังคับให้ update อย่างเดียวเพราะ ตั้งค่าเป็น Force

เป็นยังไงบ้างครับ ง่ายมากๆ ง่ายวัวตายควายล้มกันเลยทีเดียว ด้วยโค้ดเพียงสามบรรทัด 1) สร้างตัวแปรมาเรียกใช้ 2)ตั้งalert type 3)ตั้งเวลาเช็ค
จบ ได้ force update มาอยู่ในแอพเราเรียบร้อยแล้ว

ยังไงก็ฝากบล็อกนี้ไว้ด้วยนะครับ เป็นบทความแรกที่เขียนขึ้นมาเลย ผมก็ยังไม่เก่งมากเพิ่งเริ่มเขียน แต่จะพยายามขึ้นเรื่อยๆแล้วถ้ามีอะไรน่าสนใจ ก็จะพยายามนำมาแนะนำอีกเรื่อยๆครับและหากผิดพลาประการใด ก็ขออภัยมา ณ ทีนี้ด้วยครับ ยินดีรับคำแนะนำทุกอย่างครับ(ผมยัง resizeรูปไม่เป็นเลย 5555) จบกันไปเท่านี้ สวัสดีครับ :)

Show your support

Clapping shows how much you appreciated Attawee Leelaphattanapong’s story.