Proje
Rehber — 30 modülü tek sohbetten yöneten sağlık koçu
Namaz vaktinden ilaç saatine, su tüketiminden uyku düzenine kadar günü takip eden modüller tek uygulamada; hepsi Türkçe tek bir cümleyle de yönetilebiliyor.
Problem
Türkçe konuşan kullanıcılar için namaz vaktinden ilaç takibine, su tüketiminden uyku düzenine kadar günlük sağlık ve alışkanlık takibi genelde beş ayrı uygulamaya dağılıyor — her biri kendi arayüzü, kendi hatırlatma sistemiyle. Tek bir yerden, doğal dilde yönetilebilen bir sistem yoktu.
Çözüm
30'dan fazla modül içeren tek bir iOS uygulaması kurdum — namaz, ilaç, su, uyku, spor, diyet, görevler, finans, hatırlatmalar, günlük, ruh hali, sigara bırakma, deprem uyarısı ve daha fazlası. Her modül, "LocalAgent" adını verdiğim kural tabanlı bir Türkçe doğal dil işleme motoru üzerinden sohbetten de yönetilebiliyor: "dünkü uyku kaydını 7 saate güncelle" ya da "az önce eklediğim ilacı sil" gibi bir cümle, doğrudan SwiftData'da doğru kaydı bulup güncelliyor.
Modül sayısı arttıkça asıl zorluk arayüz oldu: kimse 30 modülü aynı anda görmek istemiyor. Bu yüzden modüller kategori kategori açılıp kapatılabiliyor, sık kullanılanlar favoriye alınıp ana ekrana sabitleniyor. Uygulamanın kapsamı geniş; günlük yüzeyi ise kullanıcının seçtiği kadar.
Teknoloji
Öne Çıkan Detay
Uygulamanın açılış kurtarma zinciri, bir SwiftData store dosyasının "okunamaz" (cihaz kilitliyken) olmasıyla "bozuk" olmasını birbirinden ayırıyor — bu ikisi karıştırıldığında gereksiz yere veri sıfırlanabiliyor. Rehber önce okunamazlık kapısından geçiyor, ancak gerçekten bozuksa (ve sadece quick_check doğrulamasından geçen bir yedek varsa) atomik olarak kurtarmaya gidiyor; store dosyaları hiçbir otomatik akışta doğrudan silinmiyor, önce karantinaya taşınıyor.
Ekranlar
Benzer bir problemi konuşalım
Kapsamı belirsiz bir ürün fikri ya da dijitalleşmesi gereken bir süreç varsa, bir e-posta yeterli.