Which Platforms and Frameworks Does epuBear Support?

Updated

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.