FinWallet, manuel harcama kaydını cihaz üzerinde fiş OCR'ı ve harcama analitiğiyle birleştiren bir Android uygulaması. Jetpack Compose ile yazıldı, offline-first çalışıyor ve tüm veri cihazda kalıyor.
Fiş tarama akışı şöyle: CameraX ile fotoğraf çekiliyor ya da galeriden seçiliyor, ML Kit metin tanıma çalışıyor, sezgisel ayrıştırma satıcı/toplam/tarih/vergi alanlarını çıkarıyor ve kaydetmeden önce bir gözden geçirme ekranı gösteriliyor. Düşük kaliteli çekimler hata vermek yerine kullanıcıya düzeltme şansı veriyor.
02Öne Çıkan Özellikler
Manuel harcama — tutar (minor unit), kategori, satıcı, not, tarih ve ödeme tipi (nakit, kart, dijital cüzdan, havale, diğer)
Fiş tarama — CameraX çekimi veya galeri, ML Kit metin tanıma, sezgisel alan ayrıştırma ve kaydetmeden önce gözden geçirme
Kalıcılık — Room veritabanı; para birimi, tema ve bildirim tercihleri DataStore'da
Analitik — bu ay/geçen ay karşılaştırması, kategori payı, Canvas ile çizilen günlük harcama grafiği
Hatırlatıcılar — WorkManager ile haftalık değerlendirme ve isteğe bağlı günlük kayıt dürtmesi
Material 3 — Android 12+ dinamik renk, koyu/açık/sistem teması
03Teknik Notlar
MVVM + tek yönlü veri akışı: composable'lar durumu render ediyor, ViewModel'ler StateFlow ile arayüz durumunu yayımlıyor.
Tutarlar kayan noktalı sayı yerine minor unit (kuruş) olarak tutuluyor — para hesabında yuvarlama hatası riskini ortadan kaldırıyor.
OCR tamamen cihaz üzerinde çalışıyor; fiş görselleri hiçbir sunucuya gönderilmiyor.