Skip to content
Engineering

One reader, six native builds.

Nyora is shipped by a single developer across six platforms — a Kotlin Android app, two Swift/SwiftUI Apple builds, three desktop targets and a no-install web app — all sharing one account and sync layer. Each case study below digs into the real architecture and the hardest problems solved on that platform.

  • nyora-android

    Nyora for Android

    A solo-built Android manga reader whose headline feature reads any page of foreign-language comic art, runs it through a three-stage OCR-to-translation-to-AI pipeline, and re-letters the result onto the original artwork inside a 60fps zoomable reader — across a roughly 120,000-line Kotlin codebase.

    • Kotlin
    • Android (View system + Material Components / Material You)
    • Jetpack Compose (incrementally adopted)
    • Hilt (Dagger) DI
    • Room
    • +10
    Read the case study
  • nyora-ios

    Nyora for iOS & iPadOS

    A native SwiftUI manga reader for iPhone and iPad that runs the same 11,507-line JavaScript source-parser engine as its sibling apps inside a hidden web view, and typesets whole-page AI translation back over the original artwork entirely on-device.

    • Swift 5.9
    • SwiftUI (iOS/iPadOS 17+)
    • WKWebView + JavaScriptCore (JS parser host)
    • URLSession (async/await networking)
    • Apple Vision (OCR)
    • +6
    Read the case study
  • nyora-mac

    Nyora for macOS

    A native SwiftUI Mac reader that translates whole pages of Japanese, Chinese, and Korean comics on-device, while driving a headless Kotlin engine as a private background service over a local-only API.

    • Swift 6 (strict concurrency, language mode v6)
    • SwiftUI (macOS 15+ native front end)
    • Swift Package Manager (executable target)
    • Apple Vision (VNRecognizeTextRequest + RecognizeDocumentsRequest)
    • Core Image (CIFilter preprocessing pipeline)
    • +8
    Read the case study
  • nyora-windows

    Nyora for Windows

    A self-contained Windows manga reader, built from one Kotlin codebase, that ships as native installers for both Intel/AMD and ARM64 machines and translates Japanese pages in place using only the operating system's own text-recognition engine.

    • Kotlin 2.1.21 (JVM)
    • Compose Multiplatform for Desktop 1.8.2
    • Skiko 0.9.4.2 (windows-x64 + windows-arm64)
    • GraalVM JS / Truffle (shared engine)
    • SQLDelight 2.1.0 (SQLite/JDBC)
    • +5
    Read the case study
  • nyora-linux

    Nyora for Linux

    A native Linux desktop manga reader that runs a complete server-grade source engine — JavaScript parser sandbox, SQLite store, and image proxy — inside its own GUI process, packaged as a self-contained, runtime-bundled binary that installs on every major distribution with one command.

    • Kotlin/JVM (2.1.x)
    • Compose Multiplatform for Desktop 1.7.3
    • Material 3 + custom design system
    • GraalVM Polyglot (GraalJS) for JS source parsers
    • SQLDelight (SQLite/JDBC)
    • +6
    Read the case study
  • nyora-web

    Nyora for the Web

    A browser-native manga reader that runs a full web-scraping parser engine entirely on the user's device with no application backend, reaching arbitrary manga sites through a single 270-line edge proxy while staying in cross-device sync with five native apps.

    • Vanilla JavaScript (ES modules, no framework)
    • esbuild (code-split, content-hashed production bundle)
    • Cloudflare Pages + Cloudflare Workers
    • Service Worker / PWA (offline app shell)
    • IndexedDB + localStorage
    • +5
    Read the case study