A Flutter Android app for reading PDF, images, text, DOCX, and ZIP files.
flutter pub get
flutter run- Flutter 3.16+
- Dart 3.0+
- Android SDK 21+
lib/
βββ main.dart # App entry point
βββ models/
β βββ recent_file.dart # File model + FileType enum
β βββ bookmark.dart # Bookmark model
βββ providers/
β βββ app_provider.dart # Global state (ChangeNotifier)
βββ screens/
β βββ home_screen.dart # Home tab β recent files + file picker
β βββ files_screen.dart # Files tab β categorized view
β βββ settings_screen.dart # Settings tab
β βββ upgrade_screen.dart # Pro upgrade / IAP screen
β βββ pdf_viewer_screen.dart # PDF viewer (Syncfusion)
β βββ image_viewer_screen.dart # Image viewer with zoom
β βββ text_viewer_screen.dart # Text / JSON viewer with search
β βββ docx_preview_screen.dart # DOCX text preview (Pro)
β βββ zip_preview_screen.dart # ZIP contents viewer (Pro)
βββ services/
β βββ storage_service.dart # SharedPreferences wrapper
β βββ purchase_service.dart # Google Play Billing / IAP
β βββ file_cache_service.dart # File caching
βββ widgets/
β βββ file_card.dart # File list card
β βββ empty_state.dart # Empty state component
β βββ pro_banner.dart # Upgrade to Pro banner
β βββ quick_preview_sheet.dart # Long-press bottom sheet
β βββ section_header.dart # Section title with action
β βββ ThemedView.dart # Themed container
βββ utils/
βββ app_theme.dart # Material 3 light/dark themes
βββ file_utils.dart # File utilities
- Open PDF files (smooth scroll, zoom, page navigation, search, bookmarks)
- Open image files (JPG, PNG, GIF, BMP, WebP) with pinch-to-zoom
- Open text files (TXT, JSON, MD, CSV, XML, etc.) with search
- Recent files history
- Categorized file view (Documents, Images, Others)
- Dark mode
- DOCX / Word document preview
- ZIP archive contents viewer
- Unlock all future formats
- Add your Syncfusion license key in
main.dartif needed for production - Configure Google Play Billing in Google Play Console with product ID:
pro_unlock - Add your own app icon assets to
assets/images/ - Run
flutter pub run flutter_launcher_iconsto generate launcher icons
The app requests:
READ_EXTERNAL_STORAGE(Android β€ 12)READ_MEDIA_IMAGES/READ_MEDIA_VIDEO(Android 13+)MANAGE_EXTERNAL_STORAGE(for broad file access)com.android.vending.BILLING(for in-app purchases)
- State Management: Provider (ChangeNotifier)
- Storage: SharedPreferences via
StorageService - PDF Viewer: Syncfusion Flutter PDF Viewer
- File Picker: file_picker package
- IAP: in_app_purchase package (Google Play Billing v6)
- Animations: flutter_animate
- Theme: Material 3 + Google Fonts (Inter)