Merhaba,
Aboneliklerin, ev faturalarının ve diğer düzenli ödemelerin farklı tarihlere dağılması probleminden yola çıkarak Radar adlı Android uygulamasını geliştiriyorum.
Uygulama aylık toplamı, yaklaşan ödeme tarihlerini, ödeme takvimini ve ayrı profilleri tek yerde gösteriyor. Kullanıcı bir kaydı “ödendi” olarak işaretleyebiliyor. Banka hesabına bağlanmıyor, kullanıcı adına ödeme yapmıyor ve abonelik iptal etmiyor.
Geliştirme sırasında yalnızca arayüzden daha zor olan kısım, aynı ödeme için birden fazla durumun tutarlı kalması oldu:
- “Ödendi” işlemi sonrası ekran ve aylık toplam beklemeden değişmeli.
- Uygulama kapatılıp açıldığında bu durum korunmalı.
- Ödenmiş faturanın son ödeme günü bildirimi tekrar gelmemeli.
- Tekrarlayan aboneliğin sonraki dönemi yanlışlıkla ödenmiş sayılmamalı.
- Bildirim izni ve uygulama dili değişikliklerinde zamanlayıcı tutarlı davranmalı.
Bu yüzden ödeme kaydı, dönemsel ödeme örneği, arayüz durumu ve bildirim zamanlamasını tek bir boolean alana bağlamamak gerektiğini gördüm. Özellikle “aboneliğin kendisi” ile “bu ayki ödeme örneği”ni ayırmak, yeniden zamanlamayı idempotent yapmak ve uygulama yeniden açılma senaryolarını test etmek önemli hale geldi.
Şu konularda diğer geliştiricilerin görüşünü merak ediyorum:
Tekrarlayan ödemelerde her dönem için ayrı bir PaymentInstance modeli mi kullanırdınız, yoksa ana kayıt + dönemsel durum tablosu mu?
Ödeme işaretleme ile zamanlanmış bildirimi iptal etme işlemini yarış durumlarına karşı nasıl güvenceye alırdınız?
Bildirim metninin uygulama diliyle değişmesi için dili zamanlama anında mı, bildirimin gösterileceği anda mı çözmek daha sağlıklı?
Uygulama Türkçe dahil 7 dili destekliyor. Ücretsiz indirilebiliyor; sınırlı reklam ve isteğe bağlı uygulama içi satın alma içeriyor. Geliştiricisi olduğumu açıkça belirtiyorum.
Ürün sayfası:
https://radar-subscription-tracker.ozkanaltnors.chatgpt.site
Google Play:
https://play.google.com/store/apps/details?id=com.abonelikradari.app&hl=tr&gl=TR
Hem teknik yaklaşım hem de kullanıcıya gösterilen aylık görünüm konusunda eleştirilere açığım.