Website profiles · Technology insights · Alternatives

epubear.scand.com

Get a powerful EPUB reader SDK to build feature-rich, cross-platform eBook apps. epuBear offers EPUB 2/3 support, TTS, bookmarks, night mode, and seamless integration for iOS, Android, MAUI & Flutter.

No paid content found
Visit website
Profile views 4 Outbound visits 1 Normal
epuBear Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
2001
Hosting
New Dream Network, LLCInferred
HTTPS certificate trusted
PassedObserved
Last updated

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:

  • filesDir is app-private storage, which suits offline EPUB content and avoids runtime permission handling on modern Android.
  • setEventListener and setCfiListener are the hooks for page/navigation events and reading-position callbacks. Implement both before you load a book, or you will miss early state changes.
  • setAppearanceMode and setFontSize are the reading-experience controls you would typically wire to a settings screen and persist across sessions.

What to plan before coding

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Platforms you ship on (Android, iOS, MAUI, Flutter, desktop) — each wrapper may affect the quote.
  2. Whether you need DRM and which DRM system, since that is explicitly called out as custom work.
  3. Distribution scale — number of apps, titles, or end users, if they license that way.
  4. Support expectations — the page mentions ongoing support alongside custom solutions, so ask whether that is bundled or a separate line item.
  5. 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.

Related questions

More questions →
What EPUB Features Are Not Included in the Standard epuBear SDK?

The standard epuBear SDK ships with a defined feature set that becomes available immediately upon purchase, but several capabilities fall outside that scope and require custom development. Based on the vendor's own description, full or particular EPUB 3 support, DRM integration, and other custom features are not part of the standard package — they are delivered by the epuBear development team as custom solutions with ongoing support. If your product roadmap depends on any of these, plan for a custom engagement rather than assuming the base SDK covers them.

What the standard SDK does include

To judge what's missing, it helps to know what you get out of the box. According to the product page, the following are available immediately upon purchase:

  • EPUB 2 and EPUB 3 compatibility
  • Reading EPUB files from file storage or loaded into memory
  • Extracting EPUB document information
  • Rendering pages to bitmap images
  • Multiple languages, including vertical and right-to-left writing
  • Navigation features
  • Customizable reading experience
  • Bookmark management
  • Text search
  • Text selection (highlight and underline)
  • Text notes
  • Text-to-Speech support
  • Audio and video playback within EPUB content
  • Opening and zooming pictures within EPUB content

The SDK is described as a closed-source cross-platform core with wrappers for Kotlin (Android), Swift (iOS), C# (MAUI), and Dart (Flutter).

Features that require custom work

Full or particular EPUB 3 support

The page lists "EPUB 2 and EPUB 3 compatibility" as a standard feature, yet also names "full or particular EPUB 3 support" as an example of additional functionality requiring custom delivery. The practical reading: baseline EPUB 3 compatibility is included, but if your content relies on specific EPUB 3 capabilities beyond that baseline, treat it as a customization request and confirm coverage with the vendor before committing.

DRM integration

DRM integration is explicitly listed as a custom feature, not a standard one. If you distribute protected content — for example, a subscription reading app that must honor a publisher's rights-management scheme — you cannot assume the base SDK handles it. This is a scoping and licensing conversation, not a configuration toggle.

Other custom features

The vendor states that "any other custom features" can be delivered by its development team, with ongoing support. That's an open-ended category, so the useful move is to map your requirements against the standard list above and route anything unmatched into a custom-scope discussion.

How to decide

Your requirement Standard SDK Custom engagement
EPUB 2 / baseline EPUB 3 reading Yes —
Specific or full EPUB 3 behaviors — Confirm scope with vendor
DRM integration — Yes
Features not on the standard list — Yes

If your needs sit entirely within the standard feature list, the base SDK is the straightforward path. If any requirement touches DRM, advanced EPUB 3 behavior, or something not listed, start a scoping conversation early — these affect architecture, timeline, and cost, and the page does not publish pricing or terms for custom work.

How to Use Ahrefs for Your First SEO Audit: A Step-by-Step Tutorial

If you're new to Ahrefs and want to run your first SEO audit, the fastest path is: open Site Explorer, enter your target URL, review the Overview for a health snapshot, then dig into Organic Keywords, Top Pages, and Site Audit to find specific problems. From there, build a short prioritized to-do list instead of trying to fix everything at once.

This tutorial walks through that workflow using a realistic starting scenario, explains what the numbers mean, and shows how to turn findings into actions.

Before You Start: Pick a Narrow Scope

A common beginner mistake is auditing an entire large website on day one. The reports become overwhelming, and you can't tell which issues matter.

Instead, choose one of these starting points:

  • A single important page (your homepage or a key product/service page)
  • A small site (under ~50 pages, e.g., a personal blog or small business site)
  • One section of a bigger site (e.g., /blog/)

For this tutorial, assume you're auditing a small business site with about 30 pages. The same steps scale up later.

You'll need an Ahrefs account to follow along. Ahrefs offers paid plans, and pricing and feature limits change over time, so check the current Pricing page for what's included in each tier before committing.

Step 1: Enter Your Target in Site Explorer

Site Explorer is Ahrefs' core tool for analyzing any website or URL.

  1. Open Site Explorer from the top navigation.
  2. In the search box, paste your domain (e.g., example.com).
  3. Choose the Exact URL or Domain mode depending on scope. For a full-site view, use Domain or Prefix; for a single page, use Exact URL.
  4. Press Enter.

You'll land on the Overview report. Don't try to absorb everything — focus on four numbers first.

Reading the Overview Snapshot

Metric What it tells you How to use it
Ahrefs Rank (AR) Relative strength of the site's backlink profile vs. others in the database Useful for comparing against competitors, not as a standalone goal
Organic traffic Estimated monthly visits from search A rough trend indicator, not exact analytics
Organic keywords Estimated number of keywords the site ranks for Shows breadth of visibility
Backlinks / Referring domains Total links and unique sites linking to you Referring domains matter more than raw backlink count

Important caveat: Ahrefs' traffic and keyword numbers are estimates based on its own data. They won't match Google Search Console or your analytics exactly. Treat them as directional, not absolute.

Step 2: See What You Already Rank For

Go to Organic Keywords in the left sidebar. This shows queries where your site appears in search results.

Sort by Traffic (descending) to see which pages bring the most estimated visitors. Then look for:

  • Keywords ranking in positions 4–15 — these are often the easiest wins. A small content or on-page improvement can push them onto page one.
  • Keywords with high volume but low position — potential opportunities if the topic is relevant.
  • Irrelevant keywords — if you rank for something off-topic, it may signal thin or mismatched content.

Write down 5–10 of the position 4–15 keywords. These become your first optimization targets.

Step 3: Find Your Best and Weakest Pages

Open Top Pages. This ranks your URLs by estimated organic traffic.

Look for two things:

  1. Your top performers — understand what topics and formats work. Can you create more content like this?
  2. Pages with traffic but poor rankings — these may need on-page fixes (title, headings, internal links).

If a page gets zero traffic and targets a topic you care about, it's a candidate for a rewrite or consolidation.

Step 4: Run a Technical Site Audit

Now move to Site Audit. This crawls your site and flags technical and on-page issues.

  1. Click Site Audit → New project.
  2. Enter your domain and set crawl settings (default is usually fine for a small site).
  3. Start the crawl and wait for it to finish.

Once complete, you'll see a Health Score and a list of issues grouped by category.

Which Issues to Fix First

Not all issues are equal. Prioritize in this order:

Priority Issue type Why it matters
1 Broken links (404s) Bad for users and crawl efficiency
2 Pages blocked from indexing They can't rank at all
3 Missing or duplicate title tags Directly affects click-through and relevance
4 Slow-loading pages Affects experience and rankings
5 Thin content Low value to users and search engines

Ignore low-impact warnings (like minor meta description length) until the big items are handled.

Step 5: Turn Findings Into a To-Do List

You now have raw data. Convert it into a short, actionable list. Example:

  1. Fix 3 broken links found in Site Audit.
  2. Rewrite title tags on 5 pages with duplicate titles.
  3. Improve 4 pages ranking in positions 6–12 by adding missing subtopics and internal links.
  4. Remove or update 2 thin pages with no traffic.

Keep the list to 5–10 items max for your first audit. Finishing a short list beats starting a long one.

Common Beginner Mistakes

  • Chasing every red flag. Site Audit flags many minor issues. Fix what affects rankings and users first.
  • Trusting estimates as exact numbers. Ahrefs data is modeled, not measured from your analytics.
  • Auditing a huge site too early. Start small to learn the interface.
  • Ignoring search intent. A page can be technically perfect but still fail if it doesn't match what searchers want.
  • Forgetting to re-crawl. After fixes, run Site Audit again to confirm improvements.

Where to Go Next

Once your first audit is done:

  • Compare with competitors using Site Explorer's Competing Domains and Content Gap reports.
  • Track keyword rankings over time with Rank Tracker.
  • Explore backlink opportunities in the Backlinks and Link Intersect reports.
  • Set up recurring Site Audit crawls so new issues surface automatically.

Your first audit isn't about perfection — it's about building a repeatable habit: enter a target, read the key reports, pick the highest-impact fixes, and act. Do that once a month and your site's health compounds.

What Features Does the epuBear SDK Provide Out of the Box?

epuBear ships with a full reading feature set enabled at purchase: EPUB 2/3 parsing, page rendering, navigation, bookmarks, search, text selection and notes, TTS, and in-book audio/video and image handling. It is a closed-source cross-platform core with wrappers for Kotlin (Android), Swift (iOS), C# (MAUI), and Dart (Flutter), so the same feature set is reachable from native and cross-platform projects on Windows, macOS, Linux, iOS, and Android. If your product needs DRM, full or partial EPUB 3 coverage beyond the built-in level, or other custom behavior, that falls outside the standard package and is handled as custom development.

Core reading and format features

  • EPUB 2 and EPUB 3 compatibility — both format generations are supported by the core.
  • Flexible content loading — read EPUB files directly from file storage, or load them into memory.
  • Document information extraction — pull metadata and structural information out of an EPUB document.
  • Page rendering to bitmap images — pages can be rendered as bitmaps, which is useful when you need your own display layer or thumbnails.
  • Offline support — reading works without a network connection.
  • Lightweight, customizable core — the SDK is described as lightweight and highly flexible, intended to be embedded in an existing product rather than used as a standalone app.

Reading experience and interaction

  • Navigation features — move through the book structure.
  • Customizable reading experience — appearance and typography are adjustable; the Android sample shows an appearance mode setter and a font size setter.
  • Bookmark management — create and manage bookmarks.
  • Text search — search within the content.
  • Text selection with highlight and underline — select text and apply highlight or underline styling.
  • Text notes — attach notes to text.
  • Night mode — listed among the reader capabilities.

Multilingual and media features

  • Multiple languages, including vertical and right-to-left writing — relevant if you publish Japanese-style vertical text or Arabic/Hebrew RTL content.
  • Text-to-Speech — built-in TTS for reading content aloud.
  • Audio and video playback inside EPUB content — media embedded in the book can be played.
  • Open and zoom pictures inside EPUB content — inline images can be opened and scaled.

Platform and integration surface

Area What is provided
Core Closed-source cross-platform engine
Wrappers Kotlin (Android), Swift (iOS), C# (MAUI), Dart (Flutter)
Desktop targets Windows, macOS, Linux
Mobile targets iOS, Android
Initialization Config object with company name, app name, license key, and a files directory; event and CFI listeners can be attached

The Android initialization example shows the shape of integration: build an EpubearConfig with your company name, app name, license key, and app files directory, then construct EpubearSdk and register listeners for events and CFI (reading position), followed by appearance and font settings. The iOS example begins by resolving a caches directory, indicating the SDK expects a writable storage location for its data.

What is not included by default

The feature list above is what is available immediately upon purchase. The following are explicitly named as custom work rather than standard features:

  • Full or particular EPUB 3 support beyond the built-in level
  • DRM integration
  • Any other custom functionality

For those, the vendor's development team provides custom solutions and ongoing support.

How to decide

If your requirement is a standard EPUB reader embedded in an app — reading, navigation, bookmarks, search, annotations, TTS, and embedded media — the out-of-the-box set covers it, and the wrapper for your stack (Kotlin, Swift, C#, or Dart) determines integration effort. If your roadmap depends on DRM-protected catalogs or specific EPUB 3 features not in the list above, treat those as a separate scoped project rather than assuming they are included.

Which Platforms and Frameworks Does epuBear Support?

epuBear supports desktop (Windows, macOS, Linux) and mobile (iOS, Android) targets, with official wrappers for Kotlin (Android), Swift (iOS), C# (MAUI), and Dart (Flutter). If your project is built in one of those four languages or frameworks, you can integrate the SDK directly. If you are working in another stack, epuBear does not list a wrapper for it.

How the architecture works

epuBear is not a single library you drop into every project. It consists of two layers:

  • A closed-source cross-platform core that handles the actual EPUB parsing, rendering, and reading logic.
  • A set of wrappers that expose interfaces for calling that core from native or cross-platform projects.

This means the platform coverage comes in two dimensions: the operating systems the core runs on, and the languages/frameworks the wrappers are written for. You need both to line up with your project.

Platform and framework matrix

Target Wrapper language Notes
Android Kotlin Wrapper provided
iOS Swift Wrapper provided
Windows C# (MAUI) Desktop support via core
macOS C# (MAUI) Desktop support via core
Linux C# (MAUI) Desktop support via core
Cross-platform (mobile + desktop) Dart (Flutter) Wrapper provided

The desktop operating systems (Windows, macOS, Linux) are listed as supported targets, and MAUI is the C# wrapper named for that path. Flutter's Dart wrapper covers cross-platform projects. Android and iOS each have their own native wrapper.

What integration looks like

You initialize the SDK inside your chosen language, then call its functions from your app code. The site provides initialization examples for Android and iOS.

Android (Kotlin):

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

iOS (Swift): the example begins by resolving the caches directory:

guard let cachesDirectory = FileManager.default.urls(
    for: .cachesDirectory,
    in: .userDomainMask
).first

The pattern is the same across wrappers: construct a config object (including a license key and a storage directory), instantiate the SDK, then attach listeners and set reading options. The input is your app context plus configuration; the action is SDK initialization; the expected result is a live reader instance you can drive from your UI.

Choosing based on your stack

  • Native Android app → use the Kotlin wrapper.
  • Native iOS app → use the Swift wrapper.
  • .NET / MAUI app targeting desktop → use the C# wrapper for Windows, macOS, or Linux.
  • Flutter app targeting mobile or desktop → use the Dart wrapper.

If your project uses a language or framework outside this list, the published wrappers do not cover it. The site notes that custom solutions are available from its development team for additional functionality, so an unsupported stack is a conversation to have with the vendor rather than something you can assume works out of the box.

What you get once integrated

The core feature set — available immediately upon purchase — includes EPUB 2 and EPUB 3 compatibility, reading from file storage or memory, document info extraction, page rendering to bitmaps, multi-language support (including vertical and right-to-left writing), navigation, bookmarks, text search, selection (highlight/underline), notes, text-to-speech, audio/video playback inside EPUB content, and image open/zoom.

Features beyond this set — such as full or particular EPUB 3 support, DRM integration, or other custom work — are handled as custom development, not part of the standard package.

How to Integrate and Initialize the epuBear SDK

epuBear is a closed-source, cross-platform EPUB reader SDK. You integrate it by adding the wrapper that matches your development environment — Kotlin (Android), Swift (iOS), C# (MAUI), or Dart (Flutter) — then constructing an SDK instance with a config object that carries your company name, app name, license key, and a writable files directory. The steps below cover the Android and iOS initialization paths shown in the official documentation, plus the basic calls you make right after init.

What the SDK is made of

epuBear ships as two layers:

  • A closed-source cross-platform core that does the actual EPUB parsing and rendering.
  • Language wrappers that expose that core to your project. The documented wrappers are Kotlin (Android), Swift (iOS), C# (MAUI), and Dart (Flutter).

Because the core is shared, the same feature set is available regardless of which wrapper you pick. The documented capabilities include EPUB 2 and EPUB 3 compatibility, reading files from storage or memory, extracting document information, rendering pages to bitmaps, multi-language support (including vertical and right-to-left writing), navigation, bookmarks, text search, selection with highlight/underline, notes, text-to-speech, audio/video playback inside EPUB content, and opening/zooming images.

Prerequisites

Before you write any code, confirm you have:

  1. A license key. The config object requires one, and the documentation states the full feature set is available upon purchase. Pricing terms are not published on the page, so treat licensing as a commercial step you complete before integration.
  2. A writable directory on the device for the SDK to use (the examples use the app's cache or files directory).
  3. The wrapper package for your platform added to your project.

Initialize on Android (Kotlin)

The documented pattern is to build an EpubearConfig, then construct EpubearSdk with it, then attach listeners and set display options.

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

What each part does:

  • EpubearConfig(companyName, appName, licenseKey, filesDir) — identifies your app to the SDK and gives it a storage location. The fourth argument is the files directory from the application context.
  • EpubearSdk(context, config) — creates the reader instance.
  • setEventListener(this) — routes SDK events (for example, reading progress or state changes) to your listener.
  • setCfiListener(this) — subscribes to CFI (canonical fragment identifier) updates, which is how you track and restore reading position.
  • setAppearanceMode(...) — sets the reading theme; the example uses the normal appearance mode.
  • setFontSize(0, false) — sets the text size. The two arguments let you pass a size and a flag; the example uses 0 and false as the starting values.

Initialize on iOS (Swift)

The iOS example begins by resolving a caches directory, which is the equivalent of the Android files directory:

guard let cachesDirectory = FileManager.default.urls(
    for: .cachesDirectory,
    in: .userDomainMask
).first

Use that directory when constructing the iOS config, then create the SDK instance and apply the same categories of setup — event listener, CFI listener, appearance mode, and font size — through the Swift wrapper. The wrapper names differ from Kotlin, but the sequence is the same: resolve a writable directory, build the config with your company name, app name, and license key, instantiate the SDK, then attach listeners and set display options.

Verify the integration

After initialization, check these before building features on top:

  • The SDK instance is non-null and was created without a license or config error.
  • Listeners fire — open a sample EPUB and confirm your event and CFI callbacks receive data.
  • Display options take effect — change the appearance mode or font size and confirm the rendered page updates.
  • A file loads — the SDK reads EPUB files either directly from file storage or loaded into memory, so test both paths if your app uses both.

Common sticking points

  • Missing or invalid license key. The config constructor requires it; initialization is where a bad key surfaces.
  • Unwritable directory. Passing a path the app cannot write to will break caching and rendering. Use the app's own files or caches directory, as both examples do.
  • Forgetting the listeners. Without setEventListener and setCfiListener, you get a reader that renders but does not report progress or position back to your app.
  • Assuming extra features are included. The documented feature list is what ships on purchase. If you need full or particular EPUB 3 support, DRM integration, or other custom functionality, the documentation states these are handled as custom solutions by the development team rather than being part of the standard SDK.

Website Overview

Identifiable technologies and additional version or configuration signals make the service easier to fingerprint, which may help targeted scanners narrow their checks. An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality.

Domain and Registration

Registered in 2001, this domain has about 25 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain uses the common .com extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by DigitalOcean, indicating managed DNS hosting. MX records point to the Zoho Mail email service. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

No X-Powered-By header was found, reducing one common source of backend fingerprinting information. All six checked browser-security headers are present. Their effectiveness still depends on the policy values and application behavior. No obvious internal addresses or debug information were found in the headers. The Server header identifies Apache without an exact version. No explicit CDN or WAF marker was found in the response headers.

Technology Stack Analysis

The public page identifies WordPress 5.7.17, Apache, with exact versions exposed for 1 technologies. These details can narrow vulnerability checks, although exposure alone is not a vulnerability.

Search and Social Sharing

The title has 71 characters and may be truncated in search results. The meta description has 200 characters and may be shortened in search results. The Generator tag identifies WordPress 5.7.17, making the publishing system easier to fingerprint. Twitter Card metadata is configured. The observed directives allow indexing and link following.

Hosting and Email

DNSDigitalOcean
HostingNew Dream Network, LLC
EmailZoho Mail
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagAshburn, Virginia, United States Inferred 173.236.247.132

Registration details

RDAP / WHOIS

RegistrarNetregistry Wholesale Pty Ltd
Registered2001-04-05
Expires2027-04-05
Domain statusclient transfer prohibited、client update prohibited
Nameserversns1.digitalocean.com、ns2.digitalocean.com、ns3.digitalocean.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Aepubear.scand.com173.236.247.1323600—
MXscand.commx.zoho.eu311210
MXscand.commx2.zoho.eu311220
MXscand.commx3.zoho.eu311250
NSscand.comns1.digitalocean.com1800—
NSscand.comns2.digitalocean.com1800—
NSscand.comns3.digitalocean.com1800—
TXTscand.comamazonses:KIFPt2CSTNiy6POPpX7+1fG6YWCmk5CyCjS0+RrwvC0=3600—
TXTscand.comgoogle-site-verification=wgGDzGBLOlyDZSyjEdPc-fTSXUVWHkEDnvnwBBcfcXs3600—
TXTscand.comv=spf1 include:netblocks.dreamhost.com include:emailsrvr.com include:amazonses.com include:_spf.google.com include:zohomail.eu ~all3600—
TXTscand.comzoho-verification=zb08077068.zmverify.zoho.eu3600—
CAAscand.com0 issue "amazon.com"3600—
CAAscand.com0 issue "globalsign.com"3600—
CAAscand.com0 issue "letsencrypt.org"3600—
CAAscand.com0 issuewild "letsencrypt.org"3600—
DMARC_dmarc.scand.comv=DMARC1; p=none; rua=mailto:[email protected]3600—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectepubear.scand.com
IssuerLet's Encrypt
Valid until2026-12-18T19:00 · Remaining when checked: 74 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlno-store, no-cache, must-revalidate, post-check=0, pre-check=0
serverApache
strict-transport-securitymax-age=31536000; includeSubdomains; preload
content-security-policyscript-src 'self' 'unsafe-inline' 'unsafe-eval' https: http: data:; frame-ancestors 'self'; base-uri 'self'; object-src 'none'
x-frame-optionssameorigin
x-content-type-optionsnosniff
referrer-policysame-origin
permissions-policyfullscreen=(self), geolocation=*, microphone=()

Identified technologies

WordPress 5.7.17Apache

Pages, Search and Sharing

Meta descriptionGet a powerful EPUB reader SDK to build feature-rich, cross-platform eBook apps. epuBear offers EPUB 2/3 support, TTS, bookmarks, night mode, and seamless integration for iOS, Android, MAUI & Flutter.
Canonical URLhttps://epubear.scand.com/
LanguageEnglish (default)
Twitter Cardsummary
All bots 5 allowed · 9 disallowed
  • Allow/*.js
  • Allow/*.css
  • Allow/*.jpg
  • Allow/*.gif
  • Allow/*.png
  • Disallow/wp-admin/
  • Disallow/wp-includes/
  • Disallow/xmlrpc.php
  • Disallow/wp-login/
  • Disallow*/plugins/
  • Disallow/feed/
  • Disallow/wp-json/
  • Disallow/sample-page/
  • Disallow/hello-world/

User reviews (0)

  • No reviews yet.