Skip to content

CodePandaaAI/Secure-Box

Repository files navigation

Secure Box Logo

Secure Box

your files, your way


Android Kotlin Compose


A file manager that doesn't feel like one.

No clutter. No bloat. Just your files, shown the way you want.


What does it do?

It manages your files. That's it. But it does it well.

You open it. You see your recent files right there — no digging through folders. You want to browse? Tap a category. Downloads, Pictures, Documents, Audio, Videos — one tap, you're in.

Every file can be renamed, copied, moved, or deleted. Long press → pick what you want → done. If you're copying or moving, you pick the folder — we show you a clean folder picker with a "paste here" button at the bottom.

It shows image thumbnails instantly. Folders show their sizes. Everything loads fast because it only loads what you can see.


Screenshots


How it's built

No shortcuts. No tutorials copy-pasted. This is built from scratch to learn Android properly.

The UI is Jetpack Compose with Material 3. Every screen — Home, File Browser, Recents, Destination Picker — is its own composable with its own ViewModel. The theme follows the device — light or dark, it adapts.

The architecture is MVVM with a repository layer. ViewModels hold the state. The repository talks to the file system. State flows down, events flow up. No weird callbacks, no spaghetti.

File operations use Kotlin's Result<T>. Every operation — rename, delete, copy, move — either succeeds or fails with a specific error. Not "something went wrong". You get "File not found" or "Permission denied" or "Name already exists". The exact problem.

Navigation uses Navigation3 with a simple back stack. No fragments. No XML. Just a list of screens.


The stack

Layer What Why
Language Kotlin Only choice for modern Android
UI Jetpack Compose Declarative, fast, less code
Design Material 3 Looks native, supports dynamic color
DI Hilt Inject once, use everywhere
Images Coil 3 Async loading, caching, thumbnails
Navigation Navigation3 Type-safe, composable-first
Async Coroutines + Flow Non-blocking, lifecycle-aware
Serialization Kotlinx Serialization Type-safe route args

Things I'm still working on

This is a learning project. It's not done. Here's what's next:

  • Snackbar system using Channel instead of StateFlow strings
  • Use cases for file operations (domain layer)
  • Split the shared ViewModel — it's too big right now
  • Search
  • Favorites / pinned folders
  • Multi-select for batch operations
  • Sort and filter options in file browser

Run it yourself

# Clone
git clone https://github.com/CodePandaaAI/Secure-Box.git

# Open in Android Studio, sync gradle, run on device/emulator
# Needs "All Files Access" permission — the app will ask on first launch

Note: Needs Android 11+ (API 30) for MANAGE_EXTERNAL_STORAGE. Works best on a real device — emulator file system is mostly empty.



Built by learning, not by copying.

Made with Kotlin, Compose, and a lot of late nights.

About

A clean Android file manager built with Kotlin and Jetpack Compose, featuring recents, MediaStore collections, file browsing, file operations, custom file icons, and Coil thumbnails.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages