Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is epuBear?
epuBear is a commercial EPUB reader SDK: a closed-source, cross-platform engine plus thin language wrappers that let you add EPUB reading to your own app rather than build a reader from scratch. It handles EPUB 2 and EPUB 3 files, renders pages, and exposes navigation, bookmarks, search, text selection, notes, text-to-speech, and in-book audio/video and image zoom.
The wrappers are the practical part. If your team already ships Kotlin/Android, Swift/iOS, C#/MAUI, or Dart/Flutter code, you initialize the SDK in that language and keep your existing UI stack; the shared core does the parsing and rendering. Desktop targets named on the page are Windows, macOS, and Linux, alongside iOS and Android.
Who it fits
- App teams adding a reading module to an existing product (education, publishing, internal document apps) without hiring an EPUB engine team.
- Cross-platform projects that want one reading behaviour across mobile and desktop, with offline reading.
- Products that need accessibility-adjacent features such as TTS, vertical and right-to-left writing, and night/appearance modes.
Who it fits less well
- Anyone wanting to read or modify the engine source — the core is closed.
- Projects needing DRM or unusual EPUB 3 coverage out of the box; the page lists those as custom work rather than included features.
- Simple one-off EPUB display where a free rendering library would be enough.
Trade-offs to weigh
| Consideration | What it means for you |
|---|---|
| Closed-source core | Predictable integration, but you depend on the vendor for fixes and can't patch internals |
| Feature set listed as included on purchase | Faster path to a full-featured reader; confirm which EPUB 3 details are covered |
| Custom work offered | DRM, partial EPUB 3, or bespoke features are possible but become a separate project |
| Per-platform wrappers | Low friction if you use Kotlin, Swift, C#, or Dart; other stacks may need bridging |
A useful next step: list the reader features your product genuinely needs (say, bookmarks, search, TTS, RTL text), then check that list against the SDK's core features and treat anything left over as custom scope. For licensing terms and cost, use the pricing section on epuBear rather than assuming a model.
How do I integrate epuBear into an Android app using Kotlin?
Integrate epuBear into an Android app by adding the SDK's Kotlin wrapper to your project, creating an EpubearConfig with your company name, app name, license key and a writable data directory, then instantiating EpubearSdk and registering your listeners.
The initialization pattern shown on the site looks like this:
val config = EpubearConfig(
companyName,
appName,
licenseKey,
ApplicationProvider.getAppContext().filesDir
)
epubear = EpubearSdk(ApplicationProvider.getAppContext(), config).apply {
setEventListener(this)
setCfiListener(this)
setAppearanceMode(EpubearSdk.EPUBAppearanceMode.EPUBAppearanceModeNormal)
setFontSize(0, false)
}
A few practical notes on that snippet:
filesDiris app-private storage, which suits offline EPUB content and avoids runtime permission handling on modern Android.setEventListenerandsetCfiListenerare the hooks for page/navigation events and reading-position callbacks. Implement both before you load a book, or you will miss early state changes.setAppearanceModeandsetFontSizeare the reading-experience controls you would typically wire to a settings screen and persist across sessions.
What to plan before coding
- Confirm your target wrapper. epuBear ships wrappers for Kotlin (Android), Swift (iOS), C# (MAUI) and Dart (Flutter). The Android path is the Kotlin one; if your app also targets desktop, the same core is described as cross-platform.
- Decide how books arrive. The SDK reads EPUB files from storage or from memory, so you can support both a local library and streamed/downloaded titles.
- Check feature coverage against your roadmap. The advertised set includes EPUB 2 and EPUB 3 compatibility, bitmap page rendering, vertical and right-to-left writing, bookmarks, text search, selection with highlight/underline, notes, text-to-speech, embedded audio/video, and image zoom. The site notes that full or particular EPUB 3 support, DRM integration and other custom features fall outside the immediate set and are handled as custom development.
- Budget for licensing. The page has a Pricing section but no figures, so request a quote rather than assuming a model.
A concrete scenario
If you are building a study or exam-prep app, the likely flow is: store downloaded EPUBs in filesDir, initialize the SDK at app start with your license key, load a book, then use the selection and notes APIs so learners can highlight passages and attach comments. Text-to-speech then covers commute or accessibility use, and text search covers revision lookups. Vertical and right-to-left support matters if you ship to Japanese, Chinese or Arabic markets — verify rendering with a real sample book in each script rather than trusting the feature list alone.
For the exact wrapper artifact, minimum Android version and any Gradle setup steps, work from the vendor's own integration guide at epuBear and confirm licensing terms with their team before you commit to an architecture.
How do I initialize epuBear in an iOS Swift project?
Initialize epuBear in Swift by creating a configuration object with your company name, app name, license key, and a writable directory, then passing that configuration to the SDK. On iOS the page's example points to the caches directory as the storage location:
guard let cachesDirectory = FileManager.default.urls(
for: .cachesDirectory,
in: .userDomainMask
).first else { return }
let config = EpubearConfig(
companyName: "YourCompany",
appName: "YourApp",
licenseKey: "YOUR_LICENSE_KEY",
cachesDirectory
)
let epubear = EpubearSdk(config: config)
The exact initializer signature and property names come from the SDK's Swift wrapper, so confirm them against the header or sample project shipped with your build. The fields shown here — company name, app name, license key, storage path — are the ones the page's Android example uses, and the iOS wrapper mirrors that shape.
<H3>What to set up next</H3>
After initialization, the page's Android sample attaches listeners and sets display state (setEventListener, setCfiListener, appearance mode, font size). Expect equivalent calls in Swift: register a listener for reading events, one for CFI position changes if you want to persist the reader's location, and set the initial appearance mode and font size before opening a book. If your app supports night mode or user-adjustable text size, set those at this point rather than after the first page renders, to avoid a visible reflow.
<H3>Practical gotchas</H3>
- Use a directory your app can write to. The caches directory works, but iOS may purge it under storage pressure. If you need bookmarks, notes, or reading positions to survive, keep your own persistent copy in Application Support and treat the SDK directory as scratch space.
- Initialize once per app session. Creating multiple SDK instances against the same storage path risks conflicting state; hold one reference, typically in a singleton or your app-level model.
- License key handling. Pass the key at runtime from your build configuration rather than hardcoding it in a public repository.
- Test vertical and RTL content early. The SDK lists vertical and right-to-left writing support, but layout issues in those modes are easier to catch with a real book file during initial integration than after your UI is built around a single test EPUB.
For a concrete starting point, take one EPUB 3 file with images and one with audio or video, open both through your initialized instance, and verify that page rendering, search, and TTS all behave before you build screens around them.
Can epuBear be used with Flutter or MAUI for cross-platform development?
Yes. epuBear ships wrappers for both Flutter (Dart) and .NET MAUI (C#), so you can add EPUB reading to a cross-platform app without building a native reader from scratch. The same package also covers Kotlin for Android and Swift for iOS, plus desktop targets (Windows, macOS, Linux) according to the product page.
What each option means in practice
| Your stack | Integration route | Typical fit |
|---|---|---|
| Flutter (Dart) | Dart wrapper around the closed-source core | Teams with one Dart codebase for iOS, Android and desktop |
| .NET MAUI (C#) | C# wrapper | Shops already standardized on .NET and Visual Studio |
| Kotlin / Swift | Native wrappers | Apps that want platform-native UI and only need the reading engine |
What you get out of the box
The page lists EPUB 2 and EPUB 3 compatibility, reading files from storage or memory, page rendering to bitmaps, bookmarks, text search, selection with highlight/underline, notes, text-to-speech, audio and video playback inside EPUB content, image zoom, and multi-language support including vertical and right-to-left writing. Navigation and appearance (night mode, font size) are configurable, and initialization examples are shown for Android and iOS.
Trade-offs to weigh
- Closed-source core. The wrappers are interfaces to a binary core, so you depend on the vendor for fixes and for anything beyond the listed feature set. The page explicitly says extra items such as fuller EPUB 3 coverage, DRM integration or custom features are separate work.
- Wrapper depth varies. The published code samples cover Android and iOS; expect to verify Flutter and MAUI API parity yourself before committing.
- Rendering to bitmaps suits paginated reading views, but check it against your own performance and accessibility requirements if you need selectable native text everywhere.
Next step
Ask the vendor for the Flutter and MAUI sample projects or a trial build, then prototype one screen: load a local EPUB, render a page, and toggle night mode. If both wrappers expose the same configuration and event callbacks (appearance, CFI, events), the cross-platform path is viable for your project. For comparison, established alternatives include Readium and Folio if you prefer open-source foundations.
What features does epuBear offer for EPUB reading, such as TTS, bookmarks, or night mode?
epuBear is an EPUB reader SDK, not a finished reading app. Its documented feature set covers the reading experience itself: EPUB 2 and EPUB 3 compatibility, opening files from storage or memory, extracting document information, rendering pages to bitmaps, navigation, bookmarks, text search, selection with highlight and underline, notes, text-to-speech, audio and video playback inside EPUB content, and image opening and zooming. It also lists multiple-language support, including vertical and right-to-left writing, plus a customizable reading experience and appearance modes (the Android sample sets an appearance mode and font size, which is where a night/dark reading mode would be configured).
Matching the features you asked about
| Requested feature | Documented on the page | Practical note |
|---|---|---|
| TTS | Yes, "Text-to-Speech support" | Useful for accessibility, language learning, and hands-free reading; you still supply or configure the voice engine on each platform |
| Bookmarks | Yes, "Bookmark management" | Stored per book, so you need your own UI for listing and syncing them across devices |
| Night mode | Not named as "night mode" | The page describes a customizable reading experience and an appearance mode setting, so dark themes are handled through appearance configuration rather than a labelled night-mode switch |
What this means for a real project
If you are building a reading feature into an existing product — a school platform, a subscription library, or a document app — the SDK gives you the hard parts (parsing, pagination, rendering, selection) and leaves the product layer to you. A team shipping on both iOS and Android would use the Swift and Kotlin wrappers, while a Flutter or .NET MAUI codebase uses the Dart or C# wrappers, so the same reading engine backs every platform.
Two trade-offs are worth weighing before you commit. First, the core is closed-source, so you cannot patch the engine yourself; custom needs such as fuller EPUB 3 coverage or DRM go through the vendor's development team as paid work. Second, the page states that the full feature list is available immediately upon purchase, and it has a Pricing section, but no figures are published — so budget and licensing terms have to come from a direct quote.
A sensible next step: list the features your product genuinely needs, then request pricing and confirm which items are in the standard licence versus custom development. If you are still comparing approaches, general-purpose rendering stacks such as W3C publishing specs and platform toolkits like Android Developers or Apple Developer can help you judge how much work an in-house reader would take.
How much does epuBear cost and what licensing options are available?
epuBear's own site does not publish a price or a breakdown of licensing tiers. The Pricing heading exists, and the feature list is marked as "available immediately upon purchase," which tells you the SDK is sold commercially rather than offered as a free or open-source library. Beyond that, cost and license terms are handled through direct contact.
What the page does make clear about licensing:
- It is a commercial SDK with a closed-source cross-platform core plus wrappers for Kotlin (Android), Swift (iOS), C# (MAUI) and Dart (Flutter).
- Initialization requires a license key passed into the SDK config alongside company and app names, so licensing is per-integration and presumably tied to your app identity.
- Features listed as included at purchase cover EPUB 2/3 compatibility, rendering, navigation, bookmarks, search, selection, notes, TTS, and audio/video and image handling.
- Anything beyond that — fuller EPUB 3 coverage, DRM integration, custom functionality — is described as a custom engagement with their development team, which usually means separate scoping and cost.
How to get an actual number
Because no price is listed, the practical next step is to request a quote with enough detail that the vendor can price it accurately. Prepare:
- Platforms you ship on (Android, iOS, MAUI, Flutter, desktop) — each wrapper may affect the quote.
- Whether you need DRM and which DRM system, since that is explicitly called out as custom work.
- Distribution scale — number of apps, titles, or end users, if they license that way.
- Support expectations — the page mentions ongoing support alongside custom solutions, so ask whether that is bundled or a separate line item.
- Source access — ask directly whether the closed core can be escrowed or source-licensed, since that materially changes both risk and price.
Decision criterion
If your app only needs to display EPUB files and you control the content, compare epuBear's quote against building on an open-source rendering engine, where the license cost is zero but you own the integration and maintenance work. If you need DRM, TTS, vertical and RTL writing, or multi-platform parity across four frameworks, the commercial route is usually cheaper than assembling those pieces yourself — but only once you have the quote in hand. For a broader view of what comparable reader SDKs charge, check vendors like Readium for open-source alternatives before you commit.
User reviews (0)