Bunu Neden İnşa Ettim?
"Edebi veya akademik PDF'leri akıllı cihazlarda okurken bilinmeyen bir kelime için sürekli farklı bir sözlük uygulamasına geçmek okuma akışını ve odağı tamamen yok ediyordu. Bu sürtünmeyi ortadan kaldırmak için, PDF okuma deneyimi ile Türkiye'nin en güvenilir sözlük kaynağını (TDK) aynı UI katmanında birleştiren kendi izole okuma asistanımı geliştirdim."
Mimari & Kararlar
Uygulamanın çekirdeği Flutter üzerinde çalışıyor. Yerel veri kalıcılığı (favoriler, arama geçmişi ve sayfa takibi) için asenkron SQLite yerine, doğrudan belleğe haritalanan (memory-mapped) ultra hızlı NoSQL çözümü Hive kullanıldı. PDF rendering ve metin ayıklama (extraction) işlemleri Syncfusion motoruna devredildi. TDK ağ katmanında (Network Layer), basit bot korumalarını aşabilmek adına tarayıcı taklidi yapan (User-Agent spoofing) ve gelen metni Regex ile noktalama işaretlerinden arındıran agresif bir sanitization rutini kurguladım.
Temel Özellikler
- 01.Cihaz içi (Local) ve Online URL tabanlı PDF yükleme yeteneği
- 02.PDF üzerinden metin seçildiği an TDK'dan veriyi çeken, UI'ı bölmeyen Draggable Bottom Sheet entegrasyonu
- 03.Hive NoSQL mimarisiyle çalışan sıfır gecikmeli (zero-latency) arama geçmişi ve favori kelime yönetimi
- 04.Otonom sayfa takibi: Kitap kapatıldığında kalınan sayfayı otomatik kaydetme ve geri yükleme
- 05.Android 13+ (SDK 33) için dinamik `manageExternalStorage` dosya erişim yönetimi
Mobil platformlarda PDF işlemek ve bellek yönetimi (memory management) sağlamak her zaman risklidir. Syncfusion instance'larını doğru yaşam döngüsüyle (dispose) yöneterek olası bellek sızıntılarını (memory leak) kapattım. Projenin asıl mühendislik değeri ise TDK entegrasyonunda yatıyor; kullanıcı PDF üzerinden kelimeyi virgül veya noktayla yanlışlıkla seçse bile, araya giren Regex tabanlı sanitization motoru string'i temizleyip API'nin tam istediği hale getiriyor ve kusursuz bir kullanıcı deneyimi (UX) sunuyor.