6 puan yazan GN⁺ 2025-08-16 | Henüz yorum yok. | WhatsApp'ta paylaş
  • PureGym uygulamasının yavaş kullanımını ve karmaşık giriş sürecinin yarattığı rahatsızlığı çözmek için, bunu kişisel olarak Apple Wallet için optimize etti
  • Mevcut QR kodu, her seferinde uygulamayı açıp bilgileri yüklemeyi gerektiren ve yaklaşık 47 saniye süren verimsiz bir giriş yöntemi
  • Çeşitli reverse engineering çalışmaları, mitmproxy kullanımı ve PassKit framework’ü gibi teknik süreçler üzerinden otomatik yenilenebilen bir Wallet geçiş kartı hayata geçirildi
  • Bu süreçte PIN kodundaki güvenlik açıkları, API kimlik doğrulama yapısı ve şube konum bilgileri gibi PureGym’in internette görülebilen iç işleyişi ortaya çıkarıldı
  • Sonuçta 3 saniyede giriş sağlayan bir kullanıcı deneyimi oluşturuldu ve bunun yalnızca kişisel bir deney olduğu, resmî bir hizmet olmadığı açıkça belirtildi

47 saniye: rahatsızlığın başlangıcı

  • Hafta içi saat 11:15’te, PureGym girişinde uygulamayı açmak 47 saniye sürdü
  • Sinyal zayıftı; Wi‑Fi’a bağlanma, uygulamayı başlatma, çeşitli push bildirimlerini ve özel indirim tekliflerini geçme gibi adımlardan sonra QR kodu göründü
  • QR kodunun gerçekten görünmesi uzun sürüyor ve insan diğer üyelerin bakışlarından rahatsız oluyor
  • Haftada 6 kez tekrarlandığında, bu verimsiz deneyim her hafta 282 saniye kaybettiriyor
  • Amazon Fresh gibi sürtünmesiz deneyimlerle kıyaslandığında, PureGym’in giriş UX’i oldukça geride kalıyor

8 yıllık PIN gizemi

  • Yazar, 8 haneli PIN kodunu 8 yıldır hiç değiştirmeden kullanıyor
  • Bu PIN ne süresi doluyor ne de değişiyor
  • Buna karşılık, uygulama içindeki QR kodu her 1 dakikada bir yeni bir değerle değişiyor
  • Gerçek güvenlik seviyesi ile fiilî uygulama arasında büyük bir çelişki var
  • PIN yöntemi aşırı uzun süre korunurken yalnızca QR kodunun sıkı biçimde korunması bir tür "güvenlik gösterisi" etkisi yaratıyor

mitmproxy ile PureGym’i anlamak

  • İlk başta QR kodunun ekran görüntüsünü Apple Wallet’a koyup kullanmayı denedi, ancak bu hemen işe yaramadı
  • PureGym’in QR kodu dinamik olarak üretiliyor, yaklaşık 1 hafta içinde süresi doluyor ama uygulamada her 1 dakikada bir yenileniyor
  • GitHub’da "PureGym" ile ilgili depolar aranarak API kimlik doğrulama yapısı bulundu
    • Giriş için kullanılan 8 haneli PIN, API parolası olarak da aynı şekilde kullanılıyor
    • Base64 ile kodlanmış temel kimlik doğrulama bilgileri de zayıf güvenlik sunuyor
  • Uygulama trafiğini analiz etmek için mitmproxy gibi proxy araçlarıyla istekler yakalandı
    • QR kodunun JSON yapısı part1 (sabit id), part2 (timestamp), part3 (yenileme için salt) bölümlerinden oluşuyor
    • API, yenileme zamanlamasından sona erme koşullarına kadar her şeyi bildiriyor

PassKit: Apple Wallet’ın potansiyeli

  • Apple Wallet pass’leri statik kartlar değil; kendi kendini yenileyebilen, push bildirimi alabilen ve konuma tepki verebilen mini uygulama yapıları
  • PassKit uygulaması için JSON spesifikasyonu, görsel kaynaklar, sertifika imzası ve gerçek zamanlı yenileme için web servisleri gerekiyor
  • Apple geliştirici portalından Pass Type ID ve WWDR sertifikası alınması şart
  • Sertifika imzalama ve yönetimi zahmetli olsa da, başarıldığında gerçek cihazda akıcı bir deneyim sağlanabiliyor

Swift backend kurulumu

  • Genelde Node.js kullanılsa da, yazar PassKit web servislerini doğrudan Swift tabanlı Vapor ile geliştirdi
    • Pass güncellenmesi gerektiğinde, silent push ile otomatik güncelleme sağlanıyor
    • Kullanıcının fark etmediği doğal bir pass yenileme deneyimi gerçekleştiriliyor

Ülke çapındaki PureGym konumlarını otomatikleştirme

  • Apple Wallet pass’leri belirlenen konumlarda otomatik olarak gösterilebiliyor
  • PureGym’in resmî sitesinde ayrıntılı koordinatlar yoktu, ancak API üzerinden ülke genelindeki şubelerin koordinat listesi alındı
  • Tüm şube koordinatları parse edilerek her pass için en yakın şube atandı
  • Dezavantajı şu: PureGym bir alışveriş merkezinin içindeyse, sadece alışverişe gidildiğinde bile pass’in görünmesi gibi küçük bir rahatsızlık oluşabiliyor

Apple Watch entegrasyonu

  • Apple Wallet pass’leri ek bir işlem olmadan Apple Watch ile otomatik senkronize oluyor
  • Bilekten iki kez tıklayıp taratmak ve içeri girmek artık sadece 3 saniye sürüyor
  • Zamanın %93’ünden fazlası tasarruf edilmiş oldu

Rakamlarla değişim

  • Eski PureGym uygulamasıyla giriş süresi: 47 saniye
  • Apple Wallet pass’iyle giriş süresi: 3 saniye
  • Haftalık ortalama kazanılan zaman: 4,4 dakika (yılda 3,8 saat)
  • Yakındaki üyeler 23 kez "Böyle bir uygulama mı var?" diye sordu; hepsine bunun gayriresmî olduğu açıklandı
  • Talep olsa da telif ve hizmet politikaları nedeniyle dağıtma planı yok

Bonus: Home Assistant entegrasyonu

  • PureGym API’sindeki içerideki kişi sayısı endpoint’i üzerinden IoT panosunda spor salonunun anlık yoğunluğu gösteriliyor
  • Veriye dayanarak daha sakin saatlerde yeniden gitmeye karar verilebiliyor; bu da egzersiz verimliliğini ve motivasyonu artırıyor

Mühendislik gerçeği ve etik

  • Bu, tamamen kişisel bir rahatsızlığı çözme girişimiydi; ancak PureGym içinde yıllardır iyileştirilmeyen bir alana dokunuyordu
  • Kurum dışından geliştirilen bir prototip bazen resmî yol haritasından daha hızlı biçimde sorun çözebiliyor
  • Bunun resmî açıdan kullanım koşullarını ihlal etmesi mümkün ve PureGym bunu istediği zaman engelleyebilir
  • Kesinlikle otomasyona veya paylaşıma açılmadı; yalnızca kişisel deney amacıyla kullanıldı ve kararlılık için cache gibi ilkelere uyuldu

Sonraki adımlar ve kapanış

  • İleride "utandırma push bildirimi" gibi genişletme fikirleri önerilebilir
  • Pratik faydası küçük olsa da, yılda 3,8 saatlik "gereksiz hareket"in optimize edilmesi tatmin edici bulundu
  • PureGym bunu resmî olarak uygularsa çok daha fazla kullanıcı kolaylığı sağlayabilir
  • "Gayriresmî ama etkili bir deneyim" üretmenin bir örneği olarak kayda geçti

Henüz yorum yok.

Henüz yorum yok.