Skip to content

soham-kyo/KyoReader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


KyoReader – Universal File Reader

A Flutter Android app for reading PDF, images, text, DOCX, and ZIP files.

Getting Started

flutter pub get
flutter run

Requirements

  • Flutter 3.16+
  • Dart 3.0+
  • Android SDK 21+

Project Structure

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

Features

Free

  • 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

Pro (β‚Ή11 one-time)

  • DOCX / Word document preview
  • ZIP archive contents viewer
  • Unlock all future formats

Setup Notes

  1. Add your Syncfusion license key in main.dart if needed for production
  2. Configure Google Play Billing in Google Play Console with product ID: pro_unlock
  3. Add your own app icon assets to assets/images/
  4. Run flutter pub run flutter_launcher_icons to generate launcher icons

Android Permissions

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)

Architecture

  • 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)

About

πŸ“–KyoReader is a fast, ad-free universal file reader built using Flutter, capable of opening PDFs, images, and text files in a smooth, offline-first experience. It features a clean UI, smart file handling, and a premium unlock system via Google Play Billing, making it a lightweight yet powerful everyday utility app.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors