Mobile Application
Open Source

Smart PDF Reader & TDK Dictionary Assistant

DartFlutterHive (NoSQL)Syncfusion PDFGoRouterHTTP Scraping

A hybrid PDF and text reading engine designed to eliminate context switching, featuring on-the-fly TDK dictionary translations and local NoSQL memory tracking.

Tech Stack

DartFlutterHive (NoSQL)Syncfusion PDFGoRouterHTTP Scraping

System Metrics

Heavy PDF text-extraction algorithms are deferred from the main UI thread, strictly preventing frame drops and UI jank
Hive database boxes are pre-loaded into RAM during application startup, completely eliminating disk I/O bottlenecks during active reading
Strict 5-second timeout constraints are enforced on all TDK HTTP requests to prevent application hangs during degraded network conditions

Why Did I Build This?

"Reading heavy literature or academic PDFs on mobile devices usually requires constantly jumping between the reader and a dictionary app, completely destroying focus and flow. To eliminate this friction, I engineered a highly isolated reading assistant that merges a robust PDF viewer with instant access to the TDK (Turkish Language Institution) dictionary right within the same UI layer."

Architecture & Decisions

The core application is built with Flutter. For local data persistence (favorites, search history, and page tracking), I bypassed asynchronous SQLite in favor of Hive, a memory-mapped, ultra-fast NoSQL key-value store. PDF rendering and underlying text extraction are handled by the Syncfusion engine. The TDK network layer features an aggressive sanitization routine that strips punctuation via Regex and spoofs browser User-Agent headers to seamlessly bypass basic bot-protection mechanisms on the target API.

Key Features

  • 01.Dual-mode reading supporting both local device storage and direct online PDF URL streaming
  • 02.Non-intrusive Draggable Bottom Sheet integration that instantly fetches TDK definitions upon text selection
  • 03.Zero-latency search history and favorite vocabulary management driven by the Hive NoSQL architecture
  • 04.Autonomous state tracking that automatically saves and restores the exact page the user last read
  • 05.Dynamic `manageExternalStorage` permission handling natively adapted for Android 13+ (SDK 33)
Processing PDFs on mobile platforms inherently carries significant memory management risks. I actively mitigated potential memory leaks by strictly managing the lifecycle (dispose hooks) of the Syncfusion instances. The true engineering highlight of this project lies in the TDK integration: even if a user clumsily highlights a word alongside trailing punctuation, the intercepting Regex sanitization engine strips the string down to its core, feeding the API exactly what it expects and ensuring a flawless UX.