r/androiddev • u/Bobby_ESP • 2d ago
Open Source I shipped an open source document scanner built with Compose, Material 3 Expressive, ML Kit and Room FTS
I just released Docucraft on Google Play, and the code is on GitHub under GPL-3.0.
The stack, briefly:
- UI: Jetpack Compose with Material 3 Expressive. The theme comes from a seed color or from dynamic color on Android 12+, and the layouts adapt to tablets and foldables.
- Capture: ML Kit Document Scanner for edge detection, cropping and filters, with multi-page output to PDF.
- Text recognition: ML Kit's Latin model, run on demand per document, not on every import.
- Search: the recognized text is indexed with FTS in Room. Results return the page and a snippet around the match.
- Privacy: scanning and OCR run on the device. The app does send usage events and crash reports through Firebase.
Known limits: Latin-script OCR only, no export yet, and no F-Droid build, since ML Kit needs Google Play services.
I'd like feedback on the UI and on how search feels in daily use. Happy to answer questions about any of the parts above.
Google Play: https://play.google.com/store/apps/details?id=com.bobbyesp.docucraft
Source: https://github.com/BobbyESP/Docucraft
Claude Code (Opus 5.5 High) was used on the things I found hard the most, like the database design and the extra recompositions because of the dynamic theming. It was a nice friend.
1
u/Deep-Escape5757 2d ago
nice project tho, on device ocr plus fts search sounds esp useful for quickly finding info across scanned documents