flutter_epub_viewer_kit 0.1.1
flutter_epub_viewer_kit: ^0.1.1 copied to clipboard
A customizable EPUB reader widget for Flutter. Supports iOS, Android, and Web platforms with features like pagination, scrolling, bookmarks, and customizable themes.
0.1.1 #
Bug Fixes #
- Fix page content changing when toggling top/bottom bars — reader now uses stable viewport constraints regardless of bar visibility, preventing unnecessary repagination
New Features #
- Add reading progress bar at the top of the screen when bars are hidden (2px thin indicator)
- Top/bottom bars now render as overlays instead of resizing the reader content area (iBooks/Kindle-style UX)
0.1.0 #
Bug Fixes #
- Fix pagination freeze —
_isPaginatingflag now resets on cancelled pagination runs, preventing permanent loading screen - Fix paragraph index gaps in EPUBs with multi-row tables, which caused scroll-mode page tracking errors
- Fix settings panel overflow on small screens — Color Theme, Font Family, View Mode selectors now use
Wrap/Columnlayout - Fix
_buildControlRowlabel overflow with long localized strings — label now usesFlexiblewith ellipsis - Fix
onSettingsChangedcallback firing on every scroll/page turn — now only fires on actual settings changes - Fix content area wasting 56px when bottom bar is hidden — layout now adapts dynamically to bar visibility
- Fix
Bookmark.copyWithunable to clear nullabletitle/excerptfields — uses sentinel pattern
New Features #
- Support swapping EPUB source without recreating the widget (
didUpdateWidget) - Add
==/hashCodetoReaderSettings,EpubSourcesubclasses, andBookmark.copyWithsentinel support
Performance #
- Parallelize settings storage load and EPUB parsing on startup (previously sequential)
- Eliminate redundant
setSettingscalls on every scroll tick
Internal #
- Extract
_buildSectionhelper in settings panel to reduce layout duplication - Unify duplicated table-splitting logic into single loop in
_loadBookContent
0.0.9 #
- Add multi-language localization support with
EpubReaderLocalization - Built-in translations for 11 languages: Korean (default), English, Chinese (Simplified), Hindi, Spanish, Arabic, French, Portuguese, Russian, Japanese, German
- All UI strings (settings panel labels, error messages) are fully localizable
- Custom translations supported via constructor with Korean defaults for backwards compatibility
- Fix
fontSansSerifEnglish value from'Gothic'to'Sans-serif' - Fix non-
EpubLoadExceptionerrors displaying rawe.toString()instead of localized unknown error message - Localize Noto Sans font button label via
fontNotoSansfield for consistency - Change
ColorTheme.namevalues from Korean to English
0.0.8 #
- Fix images not rendering in EPUB files — image-only elements (e.g.
<img>directly in<body>) were misclassified as spacing and silently dropped - Fix
getElementsByTagNamenot matching when the element itself is the<img>tag — now also checkselement.localName - Fix image paragraphs being filtered out due to empty
plainText—richContenttype now bypasses text-based filtering - Fix pagination for image-heavy EPUBs — each image paragraph is allocated a full page instead of near-zero height
- Add
blockTagssupport forimg,image,svgin_splitIntoBlockElements - Wrap standalone
<img>elements in<div>for correctflutter_htmlTagExtensionhandling - Improve EPUB image path resolution with filename-based and case-insensitive fallback matching
0.0.7 #
- Fix pagination density: pages no longer show only 1-2 lines or half-empty content
- Add
_ParagraphTypeclassification (plainText, dialogue, richContent, spacing) for accurate per-type measurement and rendering - Fix dialogue table rendering: measure and render with matching two-column layout (name + text)
- Fix
requiresRichContentalways being true — plain text paragraphs now useTextwidget instead ofHtml - Preserve spacing paragraphs (
 ) for proper section gaps - Split multi-row dialogue tables into individual paragraph items
- Reduce safe margin from 2x to 1x line height for better page utilization
- Remove unsupported platform files (linux, macos, windows) from example app
0.0.6 #
- Add comprehensive example app with feature configuration screen
- Add page/scroll mode toggle to settings panel
- Example app demonstrates all widget features: source types, watermark, max pages, persistence, resume position, custom bars, initial bookmarks
0.0.5 #
- Remove flutter_riverpod dependency to prevent version conflicts with user apps
- Replace Riverpod with Flutter's built-in ChangeNotifier for internal state management
- Remove unused bookmarks_provider.dart
0.0.3 #
- Remove unused platform runners (linux, macos, windows)
- Update README for pub.dev installation
0.0.2 #
- Initial release
- EPUB reader widget with pagination and scroll modes
- Customizable themes and fonts
- Bookmark management
- Settings persistence
- Support for iOS, Android, and Web platforms