Skip to content

Repository files navigation

PDF Reader

A clean, feature-rich PDF reader for Android built with Flutter. Manage your library, annotate documents, and read with a distraction-free immersive viewer.

Download the App

You can download the latest production APK directly to your Android device here: 👉 Download Latest Android APK

Features

  • Library management — add PDFs from your device, organise into collections, mark favourites, rename, and share files
  • Immersive reader — smooth, high-fidelity rendering via pdfrx with auto-hiding controls
  • Annotations — highlight text in multiple colours, draw freehand, and attach notes; all annotations are persisted locally
  • Table of contents — jump to chapters and sections via the in-reader TOC panel
  • In-document search — find text across the entire document with a results panel
  • Reading modes — continuous scroll, single page, or horizontal paging
  • Recents — quick access to recently opened files
  • Settings — light/dark/system theme, reading mode, and scroll direction preferences
  • Share — share any PDF directly from the library, recents, or device browser

Tech Stack

Concern Package
State management flutter_riverpod
Navigation go_router
PDF rendering pdfrx
PDF manipulation syncfusion_flutter_pdf
Local database sqflite
Persistence shared_preferences
Fonts google_fonts

Getting Started

Prerequisites: Flutter SDK ≥ 3.44.0, Dart ≥ 3.12.0

# Install dependencies
flutter pub get

# Run code generation (freezed / json_serializable)
dart run build_runner build --delete-conflicting-outputs

# Run on a connected device
flutter run

# Build release APK (arm64)
flutter build apk --release --target-platform android-arm64

Project Structure

lib/
├── core/
│   ├── database/      # SQLite DAOs (annotations, notes)
│   ├── models/        # Freezed data models
│   ├── services/      # Business logic (library, scanning, recents)
│   ├── theme/         # ThemeData, colours, reading mode enums
│   ├── router/        # GoRouter configuration
│   └── utils/         # Shared utilities
├── features/
│   ├── library/       # Library & collections UI + state
│   ├── reader/        # PDF viewer, annotations, TOC, search
│   ├── recents/       # Recently opened files
│   ├── device/        # Device file browser
│   ├── home/          # App shell & splash screen
│   └── settings/      # User preferences
└── shared/
    └── widgets/       # Reusable widgets

About

A clean, feature-rich PDF reader for Android built with Flutter. Supports library management, collections, text highlighting, freehand drawing, notes, TOC navigation, in-document search, and multiple reading modes - all persisted locally.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages