13 puan yazan xguru 2024-05-13 | 2 yorum | WhatsApp'ta paylaş
  • Birleşik Krallık Kanser Merkezi'nin "günde 100 şınav meydan okuması"na katılmak için uygulama ararken, şınav sayısını doğrudan sayan eğlenceli bir şey yapmaya karar verdi
  • iOS’un Core Motion framework’ünü inceledi
    • Sensör verilerinden nasıl yararlanabileceğini araştırırken AirPods’un hareket verilerini kullanmak için CMHeadphoneMotionManager kullanmaya karar verdi
    • Core Motion; ivmeölçer, jiroskop, manyetometre gibi sensörlerden veri sağlar
    • Hareket ve yönelimi doğru ve güvenilir biçimde ölçmek için kullanışlıdır
    • Kullanıcı gizliliğini korumak için veri erişim izni gerekir
  • Yapay zekayı nasıl uygulayacağını düşündü
    • ARKit gibi framework’leri kullanan çok sayıda uygulama zaten var
    • Bunun yerine, fikrin hayata geçirilmesine yapay zekanın yardımcı olabileceğine karar verdi
    • Core Motion konusunda eğitilmiş bir GPT kullanarak doğal dille sorular sordu ve çözümler aldı
  • Uygulama mimarisini tasarladı
    • Motion Manager: sensör verilerini akış halinde iletir ve cihaz sensörü güncellemelerini işler
    • Pushups Detector: akış halindeki verileri analiz eder, önceden tanımlanmış eşiklere göre şınavı algılar ve sayar
    • SwiftUI View: kullanıcı şınav çekerken gerçek zamanlı güncellenen duyarlı bir arayüz sunar
  • Motion Manager uygulaması
    • Güncellenen değerlere erişmek için delegate pattern kullandı
    • Cihaz hareket verilerini almak için CMHeadphoneMotionManager kullandı
    • Sensör güncellemelerini başlatmak ve durdurmak için startUpdates() ve stopUpdates() kullandı
    • pitch ve accelerationY değerlerini güncelleyip delegate’e bildirdi
  • Pushups Detector uygulaması
    • Veri akışını analiz etmeyi başlatıp durdurmak için "oturum" kavramını ekledi
    • Ham verileri yorumlayarak kullanıcının duruşunu ve şınav yapıp yapmadığını belirledi
    • Eşikleri kullanarak şınavın aşağı inişini ve yukarı çıkışını algıladı, ardından sayacı artırdı
    • İvme ve pitch değerlerindeki değişimleri işlemek için MotionManagerDelegate uyguladı
  • SwiftUI ile basit bir görünüm oluşturdu
    • Oturum başlat/durdur düğmesi ve şınav sayısını gösteren büyük rakamlardan oluşur
    • Kullanıcının duruşunun doğru olup olmadığını gösteren bir metin de ekledi
  • Veri analizi ve görselleştirme
    • Ham sensör verilerini görselleştirmek ve örüntüleri belirlemek için Swift Charts kullandı
    • Y ekseni ivmelenmesinde şınavın aşağı iniş (-1.0) ve yukarı çıkış (+0.5) örüntülerini keşfetti
    • Gerçek testlerle eşikleri ayarlayarak doğruluğu artırdı (+0.4, -0.7)
  • Gerçek zamanlı takibin çekiciliği
    • AirPods’u takıp başlat düğmesine basınca şınav sayısı otomatik olarak güncellenir
    • Kullanıcının herhangi bir etkileşimi olmadan çalışır
  • Projeden öğrendikleri
    • Erken doğrulama ve yinelemeli iyileştirmenin önemini yeniden gördü
    • Anlamlı bir şey üretmenin eğlencesini ve tatminini hissetti
    • Arayüzü iyileştirme ve birden fazla güne yayılan şınav sayımı gibi geliştirilmesi gereken noktalar da var
    • Görsel arayüzün yanı sıra kullanıcı deneyimini geliştirmek için AirPods üzerinden sesli geri bildirim ekledi
  • Sonuç
    • Core Motion, SwiftUI ve yapay zekayı birleştirerek 24 saat içinde fitness takibine yeni bir boyut katan bir uygulama geliştirdi
    • Yeni teknolojilerin günlük sorunlara nasıl uygulanabileceğini sorgulamanın önemli olduğunu vurguladı

2 yorum

 
ing03201 2024-05-13

Yine de 3 temel kaldırışın tekrarlarını sayan Galaxy Watch gerçekten etkileyici.

 
jooyh1021 2024-05-13

Birkaç yıl önce iPhone yakınlık sensörünü kullanan Thirty adında bir şınav challenge uygulaması yapmıştım; demek ki bunu AirPods ile yapmanın da bir yolu varmış.. Yakınlık sensörünün doğruluğu da Dynamic Island eklendikten sonra biraz düşmüş gibi :(