Gerçek zamanlı koşu derecesi tahmini yapan uygulama - Pace Teller
(paceteller.tera.co.kr)Merhaba, tek başıma geliştirme yapıyorum.
Bu aralar koşu hobim oldu ve mevcut popüler uygulamalarda benim ihtiyaç duyduğum özellik olmadığı için bunu kendim yapmayı denedim.
Flutter ile geliştirdim; ilk konsept doğrulama sürümünü yaklaşık 2 haftada tamamladım, ancak bunu cilalayıp yayınlanabilir seviyeye getirmek 3-4 ay kadar sürdü.
Şu anda Apple ve Google mağazalarında yayında ve indirilebilir durumda; web sitesini ziyaret edip ilgili mağaza bağlantılarına tıklayarak kolayca edinebilirsiniz.
Hizmet tanıtımı
Pace Teller, koşarken gerçek zamanlı olarak 10 km, yarı maraton ve tam maraton için tahmini bitiriş derecenizi gösteren bir uygulamadır.
Neden yaptım
- 'Her gün 5-6 km koşu meydan okuması' yaparken, son hızımla koşmaya devam edersem 10 km tahmini derecemin ne olacağını birden merak ettim.
- Koşu uygulamalarında ortalama hızı görme özelliği var, ancak son durumuma göre gerçek derecemi kafamda tahmin etmek kolay değildi.
- Sık koşan biri kabaca tahmin yapabilir, ama yaklaşık bitiriş derecesini hesaplamakta zorlananlar için bu uygulamayı geliştirdim.
- Gerçekten koşarken tahmini dereceleri duymak, hedef motivasyonu ve tempoyu düşürme gibi kondisyon ayarlamalarında bana çok yardımcı oluyor.
- Aslında sadece kendim kullanmak için yapmıştım ama deneyince çok beğendim ve cesaretimi toplayıp Show GN'de paylaşmaya karar verdim.
Tahmini derece hesaplama yöntemi
- Şimdiye kadar koşulan mesafe ortalama hızla hesaplanıyor, kalan mesafe ise son %20'lik bölümün temposu baz alınarak hesaplanıyor ve böylece gerçek zamanlı tahmini derece sunuluyor.
- Ayrıca, sesli (TTS) yönlendirme ile dereceyi dinleyebilmenizi sağladım.
- Ancak bu hesaplama yönteminin bir sınırı var: son tempo çok iyiyse tahmini derece gereğinden fazla iyi görünebilir.
- Şu anda kondisyonun iyileştiği ya da kötüleştiği tempolar hesaba katılmıyor, ancak ileride antrenman bittikten sonra kullanıcıya kondisyon durumunu sorarak bunu düzeltmeyi planlıyorum.
Hizmet özellikleri
- Temel koşu uygulamalarının sunduğu göstergelerin çoğunu kaydedebilirsiniz.
- Antrenman bazlı filtreler, takvim görünümü ve istatistik görünümü sunar.
- GPX dosyası içe/dışa aktarma özelliğini destekler. (Bu uygulamadaki kayıtları diğer hizmetlere aktarmayı kolaylaştırdım.)
- Strava verilerini içe aktarma veya Strava'ya (otomatik) gönderme özelliği vardır.
- RunKeeper gibi tüm GPX verilerini export eden bir hizmette, dosyaları indirip sıkıştırılmış haliyle içe aktarırsanız veriler tek seferde girilir.
- Galaxy cihaz kullanıcıları sağlık verilerini içe aktarabilir ve kalp atış hızını antrenman verileriyle eşleyebilir.
- Uygulama içinde SQLite DB kullanılır; veriler harici bir sunucuda tutulmadığı için hızlı çalışır.
- Open Weather Map API anahtarını kullanıcı kendisi girerse hava durumu bilgileri de otomatik kaydedilir (ancak doğruluk biraz düşük olabilir).
- İngilizce/Türkçe değil, İngilizce/Korece desteği vardır.
Gelecekte planlanan özellikler
- Saatte çalışan bir uygulama yapmak istiyorum.
- Özellikle tam maraton tahmini derecesini Garmin kullananların çok merak ettiğini duydum; bunu yaparsam muhtemelen bir Garmin uygulaması geliştirmem gerekecek.
- Şu anda hem saat uygulamasını hem de bu uygulamayı açıp ikisine aynı anda basarak koşuyorum.
- Kadans ve tempo grafikleriyle ilgili eksikleri iyileştirmeyi planlıyorum.
- Verileri sunucuda saklama özelliğini hâlâ değerlendiriyorum, ancak geliştirme ihtimali yüksek. Şu anda GPX dosyası olarak dışa aktarmadığınız sürece uygulamayı silerseniz tüm veriler kaybolabilir. Ancak Strava'ya otomatik gönderimi ayarlarsanız veriler Strava'da saklanacağı için içiniz rahat olabilir.
- Topluluk veya başarı paylaşımı gibi sosyal özellikler eklemeyi de düşünüyorum. Ancak Strava bunu zaten çok iyi yaptığı için gerçekten eklemek gerekip gerekmediğinden emin değilim.
- Koşu rotalarını 'Route' haline getirip "Bu mahallede hangi rota iyi?" gibi bir hizmet sunmayı da düşünüyorum, ama bunu başka uygulamalar zaten yaptığı için bunda da kararsızım.
Geliştirme sonrası notlar
- Geliştirirken hissettiğim şey şuydu: "Vay, böyle bir uygulama tek kişi tarafından bu kadar hızlı yapılabiliyor mu??" AI destekli geliştirme konusunda herkesin yaşadığı şaşkınlığı ben de bu projede yaşadım.
- iOS ve Android uygulamalarını native olarak ayrı ayrı yaptığım dönemlerde, birini bitirip diğerine başlarken sık sık motivasyon düşüşü yaşıyordum.
- Bu yüzden Flutter ile başladım ve en azından bu tür 'zihinsel stres' açısından son derece memnunum.
- Ancak paketler ve kütüphaneler sık sık güncellendiği ve bağımlılık sorunları çıktığı için çok zorlandım; ileride de bunun sorun yaratmasından endişeliyim.
- GPS'in verdiği hız gibi veriler kusursuz olmadığı için, hesaplama formülünün doğruluğunu çeşitli yöntemlerle artırmaya çalışırken uygulamanın olgunlaşması çok zaman aldı.
- Elbette yapay zekadan çok yardım aldım ve bu yüzden bazen aynı yerde dönüp durduğum da oldu, ama kullanmadan da yapamazdım.
- Her zaman olduğu gibi, her iki mağazada da düzenli abonelik sistemini bağlama işi zorlu oldu.
4 yorum
Bağımlılık sorunları ya da benzeri şeyler aslında native geliştirseniz de aynı şekilde endişe verici olabiliyor.. hehe
Acaba hangi paket olduğunu paylaşabilir misiniz?
Evet, öyle tabii ki ^^ Hangi paketi kast ediyorsunuz? Hangi pakette bağımlılık sorunu yaşadığımı söylememi mi istiyorsunuz? Çok sık olduğu için ve ben de Flutter hakkında yeterince bilgim yokken yaşadığım bir sorun olduğu için açıkçası pek hatırlamıyorum ^^
Strava yakında Kore hizmetini kapatıyor..!
Evet, zaten mağazadan kaldırıldı. Ama bu, hizmeti kullanamayacağınız anlamına gelmiyor. Mevcut kullanıcılar kullanabiliyor ve web üzerinden de erişilebiliyor.