A modern, feature-rich file manager application for Android built with Kotlin and Jetpack Compose.
- π Comprehensive File Browsing: Navigate through your device's storage with ease.
- π Storage Analysis: Visualize storage usage with category breakdowns and identify large files.
- β‘ Quick Access:
- Recent Files: Quickly access your most recently modified files.
- Favorites: Bookmark important files and folders for instant access.
- π οΈ File Operations:
- Copy, Move, Delete, and Rename files and folders.
- Create new folders.
- Zip/Unzip: Compress files into archives and extract them.
- Share: Share files with other apps.
- π Smart Sorting & Viewing:
- Sort by Name, Size, Date, or Type.
- Switch between List and Grid view modes.
- π¨ Modern UI:
- Material Design 3 implementation.
- Dynamic Dark/Light theme support.
- File type icons and previews.
- βΉοΈ File Details: View detailed properties of files (path, size, modified date, type).
- Language: Kotlin
- UI Framework: Jetpack Compose
- Architecture: MVVM (Model-View-ViewModel)
- Dependency Injection: Manual / ViewModelFactory
- Asynchronous Processing: Coroutines & Flow
- Image Loading: Coil
- Navigation: Navigation Compose
- Permissions: Accompanist Permissions
- Local Storage: DataStore Preferences (for settings)
com.legozia.files/
βββ data/ # Data sources and preferences
β βββ FilePreferences.kt
β βββ ThemePreferences.kt
βββ model/ # Data models
β βββ FileItem.kt
β βββ FileOperation.kt
β βββ ...
βββ repo/ # Repositories and business logic
β βββ FileRepository.kt
β βββ FileOperations.kt
βββ ui/ # UI Components (Screens & Widgets)
β βββ components/
β βββ theme/
β βββ FileManagerScreen.kt
β βββ AnalyzeStorageScreen.kt
β βββ ...
βββ util/ # Utility classes
β βββ FileIconProvider.kt
β βββ FileSizeCalculator.kt
βββ viewmodel/ # ViewModels
β βββ FileManagerViewModel.kt
β βββ StorageViewModel.kt
β βββ ...
βββ MainActivity.kt
The app requires the following permissions to function correctly:
READ_EXTERNAL_STORAGE(Android 10 and below)MANAGE_EXTERNAL_STORAGE(Android 11+) - Required for full file access.
- Open the project in Android Studio.
- Sync Gradle files.
- Build and run on an emulator or physical device (Android 8.0+ recommended).
./gradlew build