Storage cleaner & duplicate detection
Cleanly
Cleanly focuses on real-world device libraries: fast scanning, reliable grouping, and safe cleanup flows supported by native capabilities.
In reviewOwned & built end-to-end
Impact
Role
End-to-end ownership
Status
In review
Focus
Storage cleaner & duplicate detection
Platform
iOS / Android
What I did
- Owned delivery end-to-end: product direction, Flutter implementation, backend integrations, and store-ready execution.
- Designed production-grade architecture for speed, scalability, and clean iteration cycles.
- Built subscription + analytics/release workflows to support ongoing growth post-launch.
Highlights
- Native media pipeline (iOS/Android) for scanning & grouping
- Performance-first processing for large libraries (isolates/native)
- Export / cleanup flows designed for everyday usage
Challenges
- Handling very large media libraries without freezing the UI or draining battery.
- Grouping duplicates reliably while supporting edge cases (bursts, edits, similar videos).
- Designing safe deletion/cleanup flows that users can trust (undo, confirmations, preview).
- Bridging native media APIs with Flutter while keeping performance and maintainability high.
Architecture and delivery
- Native iOS/Android media access layer + Flutter orchestration for predictable performance.
- Background/isolate processing for hashing/grouping and progress-driven UI updates.
- Safe operations pipeline (preview → select → confirm → execute) with guardrails and telemetry points.
- Modular code structure designed for adding new scanners (screenshots, large files, duplicates) without rewrites.
Tech stack
FlutterFirebaseSwiftKotlin
Problem
Users run out of storage because duplicate or low-value media silently accumulates — but deleting must be safe and fast.
Solution
A performance-focused scanning and grouping pipeline with native integrations and user-friendly cleanup flows.
Outcome
Production-ready build prepared for store review, built to handle large libraries with a scalable architecture for future features.