- File Management: In-app file and folder explorer.
- PDF Operations:
- Merge multiple PDFs into one.
- Convert Images to PDF & Merge Images.
- Compress, split, and reorder pages.
- Security: Add and remove password protection.
- Viewing: Native viewing for PDFs and images (supports GIF previews).
- Customization: Live Theme & Language switcher.
- Settings: Comprehensive control over permissions, destination folders, and naming conventions.
- Language: Dart (SDK constraint:
^3.9.2) - Framework: Flutter
- State Management:
provider - Routing:
go_router
| Category | Packages |
|---|---|
| PDF Core | pdfx, pdf, pdf_combiner |
| File/IO | path_provider, external_path, open_filex |
| Media | image_picker, flutter_image_compress, signature |
| Utils | permission_handler, share_plus |
lib/
├── core/
│ ├── enums/
│ ├── exception/
│ ├── localization/
│ ├── routing/
│ ├── theme/
│ └── utility/
├── models/
├── presentation/
│ ├── component/
│ ├── layouts/ # Widget layouts / screens
│ ├── models/
│ ├── pages/
│ ├── provider/
│ └── sheets/
├── providers/
└── service/
assets/
android/
This project delegates numeric SDK values to the Flutter toolchain via android/app/build.gradle.kts.
- minSdk: 21 (Default Flutter support)
- targetSdk / compileSdk: 34 (Recommended)
To verify the exact SDK values currently being used by your build, run:
cd android
./gradlew :app:propertiesThe app requires the following permissions in AndroidManifest.xml:
- Network:
android.permission.INTERNETandroid.permission.ACCESS_NETWORK_STATE
- Storage / Files:
android.permission.READ_EXTERNAL_STORAGEandroid.permission.WRITE_EXTERNAL_STORAGE(Legacy)android.permission.MANAGE_EXTERNAL_STORAGE(Android 11+ for broad access)
- Media:
android.permission.CAMERA(For image capture features)
Note: Runtime permissions are handled gracefully using
permission_handler.
-
Install Dependencies:
flutter pub get
-
Run the App:
flutter run
-
Clean Build (if modifying Gradle files):
flutter clean flutter pub get
See the LICENSE file in the project root for details.
- Consolidation: Merged the "Quick summary" and "Quick facts" sections to avoid repetition.
- Formatting: Fixed the broken PowerShell code block that interrupted the text in your original draft.
- Organization: Grouped all Android-specific information (SDKs and Permissions) into one clear section.
- Visuals: Added a table for the libraries to make the tech stack easier to scan.
- Cleanup: Removed internal notes (like "Why this README") to make it suitable for public viewing/GitHub.
