2.3 KiB
2.3 KiB
Worldhopper Project Overview
Purpose
An Android application to read OPDS-PS feeds (Open Publication Distribution System - Publication Server). The app allows users to:
- Browse and connect to OPDS catalog servers
- View publication feeds and details
- Download and read EPUB publications
- Track reading progress across devices
Tech Stack
- Framework: Flutter (Dart SDK ^3.5.1)
- State Management: Riverpod (flutter_riverpod ^2.5.1)
- Routing: GoRouter (^14.0.0)
- HTTP Client: Dio (^5.4.0) with authentication support
- Database: SQLite via sqflite (^2.3.2)
- XML Parsing: xml package (^6.5.0) for OPDS feed parsing
- EPUB Reader: flutter_epub_viewer (^1.2.2) - Epub.js with WebView integration
- Image Loading: cached_network_image (^3.3.1) with flutter_cache_manager
- Models: Freezed (^2.4.7) for immutable data classes
- UI: Material Design 3 with theme support
- Target Platforms: Android (primary), with support for iOS, web, macOS, Windows, and Linux
Key Features
- OPDS Server Management: Add, edit, and manage multiple OPDS catalog servers with authentication
- Feed Browsing: Navigate through OPDS feeds (navigation and acquisition feeds)
- Publication Details: View detailed information about publications
- EPUB Reading: Integrated EPUB reader with reading progress tracking
- Reading Progress: Persistent reading progress stored in local SQLite database
- Image Caching: Efficient image loading and caching for cover images
- Authentication: Support for HTTP basic auth and other authentication methods
Project Status
Active development with core features implemented:
- ✅ OPDS feed parsing and navigation
- ✅ Server management with authentication
- ✅ SQLite database for servers and reading progress
- ✅ EPUB reader integration
- ✅ Material Design 3 theming
- ✅ Routing with GoRouter
- ✅ State management with Riverpod
Architecture
- Clean Architecture: Separation of concerns with models, services, repositories, and providers
- State Management: Riverpod with code generation for type-safe providers
- Data Layer: SQLite database with structured tables and repositories
- Service Layer: Dedicated services for OPDS operations, authentication, and EPUB handling
- UI Layer: Screen-based navigation with reusable widgets
Version
1.0.0+1