Back to projects

Android app ยท Frozen V1

PhotoSwipe Cleaner

A local camera-roll cleaner that stages Keep, Delete, and Protect decisions in short sessions, then asks Android to confirm before anything is removed.

Screenshots

About Project

About Project

PhotoSwipe Cleaner is a Flutter Android app for reviewing photos and videos in 5-minute sessions. Cleanup stays on the device. Swipe only stages items. A review queue comes next, and Android must confirm before MediaStore removal. Camera Roll Score is a simple cleanliness indicator, not a security diagnosis. V1 does not detect similar-looking photos, blurry photos, or best shots.

Problem

Camera rolls grow until cleanup feels overwhelming, while many gallery tools either delete too automatically, upload media, or advertise similarity and blur detection that this V1 does not ship.

Role

Designed and built the frozen Android V1: local MediaStore scanning, swipe staging, review-before-delete, Camera Roll Score, ads and Play Billing boundaries, and physical-device deletion QA.

Outcome

V1 is code-frozen and accepted on a TECNO KM4n running Android 15. Remaining work is release configuration: Play listing, production AdMob, signing, and these hosted legal pages.

Key Features

Key Features

  • Five-Minute Cleanup sessions with Keep, stage Delete, and Protect
  • Review-before-delete, then Android confirmation; cancel removes nothing
  • Screenshot, screen-recording, large-video, and month-by-month cleanup
  • Camera Roll Score as a motivational cleanliness indicator
  • Statistics-only share card with no photos included
  • Local MediaStore scan and deletion reconciliation, including trashed-item filtering
  • System dark mode and optional Pro tools: exact-duplicate review, advanced filters, custom sessions, and cleanup history

Key decisions

Key decisions

  • Kept media on-device. PhotoSwipe Cleaner code does not upload camera-roll bytes.
  • Made swipe a staging action. Confirmed deletion goes through review, then Android's delete request on API 30+.
  • Left Phase 5 flags off: similar photos, blur, best-shot, video compression, and interstitial ads are not in V1.
  • Kept free manual cleanup useful. Pro is optional annual or lifetime, with no weekly plan and no first-launch paywall.

Technologies

Technologies

  • Flutter
  • Dart
  • Android
  • MediaStore
  • Riverpod
  • sqflite

What I Learned

  • A cleaner is only trustworthy when OS cancel cannot look like a successful delete.
  • Accessible-library counts must ignore trashed MediaStore rows after a confirmed removal.
  • Store graphics can overclaim post-launch ideas; frozen V1 copy has to stay narrower than the roadmap.

Future Improvements

  • Finish Play Console, production AdMob, and signing so a public listing can ship.
  • Add extra OEM and older-API deletion coverage before production trust on those devices.
  • Keep similar-photo, blur, and best-shot work in a later Phase 5 release rather than implying they exist now.

Project Links