จาก 47 วินาทีสู่ 3 วินาที: วิศวกรผู้เปลี่ยน UX ฟิตเนสด้วยตัวเอง

Vadim ต้องใช้เวลา 47 วินาทีทุกครั้งในการเข้า PureGym ผ่านแอปที่โหลดช้า เต็มไปด้วยโฆษณาและข้อมูลไม่จำเป็น ทั้งที่เขาเข้าใช้งานถึง 6 วันต่อสัปดาห์ นั่นคือเวลาที่เสียไปกว่า 3.8 ชั่วโมงต่อปีเพียงเพื่อ “สแกนเข้า” ฟิตเนส

เขาสังเกตว่า PIN 8 หลักที่ใช้เข้าอาคารนั้นไม่เคยเปลี่ยนเลยตลอด 8 ปี แต่ QR code ในแอปกลับรีเฟรชทุก 60 วินาทีอย่างเข้มงวดราวกับปกป้องข้อมูลลับระดับชาติ—นี่คือ “Security Theatre” ที่ดูจริงจังแต่ไม่สมเหตุสมผล

Vadim เริ่มต้นด้วยการลองแคปหน้าจอ QR code แล้วใส่ใน Apple Wallet แต่ไม่สำเร็จ เพราะ QR code มีการเข้ารหัสและหมดอายุเร็ว เขาจึงใช้เครื่องมือ proxy เช่น mitmproxy เพื่อดักจับข้อมูล API ของ PureGym และพบว่า QR code มีโครงสร้างที่สามารถสร้างใหม่ได้

เขาจึงสร้างระบบ backend ด้วย Swift และ Vapor เพื่อสร้าง Apple Wallet pass ที่อัปเดต QR code อัตโนมัติผ่าน push notification โดยไม่ต้องเปิดแอปเลย แถมยังเพิ่มฟีเจอร์ให้ pass ปรากฏบนหน้าจอล็อกเมื่ออยู่ใกล้ฟิตเนส และซิงค์กับ Apple Watch ได้ทันที

แม้จะรู้ว่าการทำแบบนี้อาจละเมิดข้อกำหนดการใช้งาน แต่เขายืนยันว่าไม่ได้แจกจ่ายให้ใคร และทำเพื่อการใช้งานส่วนตัวเท่านั้น

ปัญหาการใช้งานแอป PureGym
ใช้เวลา 47 วินาทีในการเข้าอาคารทุกครั้ง
แอปโหลดช้า เต็มไปด้วยข้อมูลไม่จำเป็น
PIN 8 หลักไม่เคยเปลี่ยนเลยตลอด 8 ปี

ความไม่สมเหตุสมผลของระบบความปลอดภัย
QR code รีเฟรชทุก 60 วินาที
PIN ที่ไม่ปลอดภัยกลับใช้งานได้ทุกที่
เป็นตัวอย่างของ “Security Theatre”

การแก้ปัญหาด้วย Apple Wallet
ใช้ mitmproxy ดักจับ API ของ PureGym
สร้างระบบ backend ด้วย Swift และ Vapor
สร้าง pass ที่อัปเดต QR code อัตโนมัติ
ซิงค์กับ Apple Watch ใช้งานได้ใน 3 วินาที

ฟีเจอร์เสริมที่เพิ่มเข้าไป
pass ปรากฏบนหน้าจอล็อกเมื่ออยู่ใกล้ฟิตเนส
ดึงข้อมูลตำแหน่งฟิตเนสทั่ว UK จาก API
เพิ่มข้อมูลความหนาแน่นของผู้ใช้งานใน Home Assistant

ผลลัพธ์ที่ได้
ประหยัดเวลาได้ 3.8 ชั่วโมงต่อปี
มีคนถามถึงระบบนี้ถึง 23 ครั้ง
ได้เรียนรู้การใช้งาน PassKit อย่างลึกซึ้ง

https://drobinin.com/posts/how-i-accidentally-became-puregyms-unofficial-apple-wallet-developer/
🧠 จาก 47 วินาทีสู่ 3 วินาที: วิศวกรผู้เปลี่ยน UX ฟิตเนสด้วยตัวเอง Vadim ต้องใช้เวลา 47 วินาทีทุกครั้งในการเข้า PureGym ผ่านแอปที่โหลดช้า เต็มไปด้วยโฆษณาและข้อมูลไม่จำเป็น ทั้งที่เขาเข้าใช้งานถึง 6 วันต่อสัปดาห์ นั่นคือเวลาที่เสียไปกว่า 3.8 ชั่วโมงต่อปีเพียงเพื่อ “สแกนเข้า” ฟิตเนส เขาสังเกตว่า PIN 8 หลักที่ใช้เข้าอาคารนั้นไม่เคยเปลี่ยนเลยตลอด 8 ปี แต่ QR code ในแอปกลับรีเฟรชทุก 60 วินาทีอย่างเข้มงวดราวกับปกป้องข้อมูลลับระดับชาติ—นี่คือ “Security Theatre” ที่ดูจริงจังแต่ไม่สมเหตุสมผล Vadim เริ่มต้นด้วยการลองแคปหน้าจอ QR code แล้วใส่ใน Apple Wallet แต่ไม่สำเร็จ เพราะ QR code มีการเข้ารหัสและหมดอายุเร็ว เขาจึงใช้เครื่องมือ proxy เช่น mitmproxy เพื่อดักจับข้อมูล API ของ PureGym และพบว่า QR code มีโครงสร้างที่สามารถสร้างใหม่ได้ เขาจึงสร้างระบบ backend ด้วย Swift และ Vapor เพื่อสร้าง Apple Wallet pass ที่อัปเดต QR code อัตโนมัติผ่าน push notification โดยไม่ต้องเปิดแอปเลย แถมยังเพิ่มฟีเจอร์ให้ pass ปรากฏบนหน้าจอล็อกเมื่ออยู่ใกล้ฟิตเนส และซิงค์กับ Apple Watch ได้ทันที แม้จะรู้ว่าการทำแบบนี้อาจละเมิดข้อกำหนดการใช้งาน แต่เขายืนยันว่าไม่ได้แจกจ่ายให้ใคร และทำเพื่อการใช้งานส่วนตัวเท่านั้น ✅ ปัญหาการใช้งานแอป PureGym ➡️ ใช้เวลา 47 วินาทีในการเข้าอาคารทุกครั้ง ➡️ แอปโหลดช้า เต็มไปด้วยข้อมูลไม่จำเป็น ➡️ PIN 8 หลักไม่เคยเปลี่ยนเลยตลอด 8 ปี ✅ ความไม่สมเหตุสมผลของระบบความปลอดภัย ➡️ QR code รีเฟรชทุก 60 วินาที ➡️ PIN ที่ไม่ปลอดภัยกลับใช้งานได้ทุกที่ ➡️ เป็นตัวอย่างของ “Security Theatre” ✅ การแก้ปัญหาด้วย Apple Wallet ➡️ ใช้ mitmproxy ดักจับ API ของ PureGym ➡️ สร้างระบบ backend ด้วย Swift และ Vapor ➡️ สร้าง pass ที่อัปเดต QR code อัตโนมัติ ➡️ ซิงค์กับ Apple Watch ใช้งานได้ใน 3 วินาที ✅ ฟีเจอร์เสริมที่เพิ่มเข้าไป ➡️ pass ปรากฏบนหน้าจอล็อกเมื่ออยู่ใกล้ฟิตเนส ➡️ ดึงข้อมูลตำแหน่งฟิตเนสทั่ว UK จาก API ➡️ เพิ่มข้อมูลความหนาแน่นของผู้ใช้งานใน Home Assistant ✅ ผลลัพธ์ที่ได้ ➡️ ประหยัดเวลาได้ 3.8 ชั่วโมงต่อปี ➡️ มีคนถามถึงระบบนี้ถึง 23 ครั้ง ➡️ ได้เรียนรู้การใช้งาน PassKit อย่างลึกซึ้ง https://drobinin.com/posts/how-i-accidentally-became-puregyms-unofficial-apple-wallet-developer/
DROBININ.COM
How I accidentally became PureGym's unofficial Apple Wallet developer
Tired of fumbling with the PureGym app for 47 seconds every morning, I reverse-engineered their API to build an Apple Wallet pass that gets me in with a quick wrist scan. Along the way, I discovered their bizarre security theatre: QR codes that expire every minute while my ancient 8-digit PIN lives forever.
0 Comments 0 Shares 24 Views 0 Reviews