· kaynak Hacker News – Front Page (native)
Kadō, iOS'a hesap gerektirmeyen, açık kaynaklı ve ikili olmayan puanlamalı alışkanlık takibini getiriyor
Kadō, iPhone ve iPad için hesap, telemetri veya üçüncü taraf SDK gerektirmeyen ücretsiz, MIT lisanslı bir alışkanlık takip uygulaması. Alışkanlıkları üstel hareketli ortalama ile puanlıyor, verileri yerel olarak saklıyor ve isteğe bağlı iCloud senkronizasyonu sunuyor.
iPhone ve iPad için açık kaynaklı bir alışkanlık takip uygulaması olan Kadō, 6 Eylül 2026'da Hacker News'in ana sayfasına çıktı. Uygulama, GitHub'da scastiel/kado deposunda MIT lisansıyla açık bir şekilde geliştiriliyor, App Store'da 1.7 sürümüyle ücretsiz olarak sunuluyor ve README'sine göre hesap gerektirmiyor, analitik çalıştırmıyor ve üçüncü taraf SDK içermiyor.
Seri değil, puan
Uygulamayı tanımlayan tercih, ilerlemeyi ölçme biçimi. Android'deki Loop Habit Tracker'dan ilham alan Kadō, ikili olmayan bir alışkanlık puanı hesaplıyor — tamamlamaların üstel hareketli ortalaması — böylece kaçırılan bir gün eğilimi silmek yerine sadece hafifçe düşürüyor. Seriler yine de alışkanlık detay ekranında görünüyor (güncel ve en iyi), bir bilgi baloncuğu puanlama matematiğini açıklıyor, ancak başlıca metrik puan.
README'deki ürün analizi, uygulamanın hedeflediği boşluğu şöyle çerçeveliyor: Köklü açık kaynak takipçi Loop yalnızca Android'de; iyi bilinen iOS seçeneği Streaks kapalı kaynaklı ve ikili seriler üzerine kurulu; yakın tarihli açık kaynak bir iOS girişimi olan Teymia ise freemium. Kadō'nun önerisi, Loop'un algoritmasını ücretsiz, MIT lisanslı ve native bir iOS uygulaması olarak sunmak.
Programlar, notlar ve entegrasyonlar
Özellik seti geniş. Bir Bugün ekranı o gün yapılması gereken alışkanlıkları listeler; tamamlamak için tek dokunuş, kısmi tamamlamalar, notlar veya zamanlayıcılar için uzun basış yeterli; sürükleyerek alışkanlıklar yeniden sıralanabiliyor ve yeni sıra senkronize ediliyor. Detay ekranındaki ay ay takvim, alışkanlığın var olmadığı günler dahil geçmiş herhangi bir günün düzenlenmesine izin veriyor ve günlük notlar dışa ve içe aktarımda korunuyor. Bir genel bakış ekranı, puanla renklendirilmiş hücrelere sahip alışkanlıklara-günlere göre bir matris gösteriyor ve programa dışı kaydedilen tamamlamalar dinlenme günü olarak gizlenmek yerine görüntüleniyor.
Programlar günlük, haftada N gün, belirli hafta günleri veya N günde bir olabiliyor; döngü her tamamlamada yeniden sabitleniyor, böylece erken bir bitiş kullanıcıyı cezalandırmıyor. Alışkanlıklar ikili, sayaç veya zamanlayıcı olabiliyor. 'Gün başlangıcı' ayarı, geçmişyi yeniden gruplamadan günlük geçişi sabaha 6'ya kadar öteleyebiliyor ve gece geç saatteki kayıtları amaçlanan günde tutuyor.
Widget'lar Ana Ekranı (küçük, orta, büyük) ve Kilit Ekranını (dikdörtgen, dairesel, satır içi) kapsıyor; App Intents ile hızlı tamamlama yapılabiliyor. Siri ve Shortcuts bir alışkanlığı tamamlayabiliyor, değer kaydedebiliyor ya da puanları ve serileri bildirebiliyor. Hatırlatıcılar, işaretle ve atla eylemleriyle alışkanlık başına yerel bildirimler. StoreKit 2 üzerine kurulu isteğe bağlı bir Bahşiş Kavanozu hiçbir şeyin kilidini açmıyor; README tüm uygulamanın reklamsız, aboneliksiz ve izlemesiz olarak ücretsiz kaldığını vurguluyor. Erişilebilirlik tarafında XXXL'ye kadar Dynamic Type, tüm yüzeylerde VoiceOver etiketleri ve tam Dark Mode var; yerelleştirme İngilizce ve ana dili Fransızca olarak sunuluyor.
Yerel öncelikli veri, isteğe bağlı senkronizasyon
Depolama, hesap katmanı olmadan SwiftData üzerinde yerel. Senkronizasyon isteğe bağlı ve yalnızca kullanıcının özel CloudKit veritabanından geçiyor — geliştirici işletmesine ait bir sunucu değil, kullanıcının kendi iCloud'u — ve Ayarlar, senkronizasyon çalışmadığı zamanlar dahil canlı senkronizasyon durumunu gösteriyor. Dışa aktarma JSON ve CSV'de kayıpsız; projenin test edildiğini söylediği gidiş-dönüş sayesinde bir CSV yedeği Numbers veya Excel'de açılıp düzenlenip geri içe aktarılabiliyor. Gizlilik politikası, depoda PRIVACY.md olarak yayımlanmış.
Native, bağımlılıksız bir yapı
Yığın tamamen Apple'ın: durum için @Observable ile SwiftUI, ilk günden şema göçleri bağlanmış şekilde kalıcılık için SwiftData, senkronizasyon için CloudKit, eklentiler ve otomasyon için WidgetKit ve App Intents, Bahşiş Kavanozu için StoreKit 2. Widget'lar bir App Group JSON anlık görüntüsünden okuyor, böylece eklenti süreci asla SwiftData açmıyor. Proje sıfır üçüncü taraf bağımlılığı taşıyor, birim testler için Swift Testing, arayüz testleri için XCTest kullanıyor ve iOS 18.0 veya sonrasını hedefliyor. Gizli bir geliştirici modu, geçmiş puan ve seri davranışıyla deneyler için tohumlanmış bir korumalı alan veritabanı takıyor.
README'ye göre yol haritasında sıradaki: zamanlayıcı alışkanlıkları için Live Activities ve Dynamic Island desteği, ardından temalar, biyometri, kategoriler ve yedek dosyaları. Native bir Apple Watch uygulaması ve HealthKit otomatik tamamlaması erken aşamada kapsamlandı, sonra kapsamdan çıkarıldı — geliştirici, hiçbir kullanıcının ikisini de istemediğini yazıyor ve gerçek bir talep ortaya çıkarsa ikisinin de yeniden değerlendirileceğini belirtiyor.
Neden önemli
App Store ekonomisi küçük yardımcı uygulamaları aboneliklere ve analitik SDK'larına itiyor; bu da tamamen native, MIT lisanslı ve bağımlılıksız bir alternatifi iOS'ta nadir bir örneğe dönüştürüyor. Kadō ayrıca somut bir gizlilik modeli sergiliyor — önce yerel depolama, kullanıcının kendi iCloud'u üzerinden senkronizasyon, belgelenmiş kayıpsız dışa aktarma — ve diğer bağımsız uygulamalar bunu kopyalayabilir. Loop'un affedici puanlama yaklaşımını iPhone'a taşıyarak, Loop Android'de varsayılan açık kaynak önerisi haline geldiğinden beri var olan bir boşluğu kapatıyor.
- #open-source
- #ios
- #habit-tracker
- #privacy
- #swift