Skip to content

Overview

Kotatsu is an open-source manga reader application for Android that allows users to read manga from various online sources and local storage. This document provides a high-level introduction to the application's architecture, key components, and features.

Purpose and Features

Kotatsu aims to provide a comprehensive manga reading experience with the following key capabilities:

  • Reading manga from multiple online sources
  • Downloading manga for offline reading
  • Multiple reading modes (standard, webtoon, right-to-left, vertical)
  • Tracking reading progress and history
  • Favorites management with categories
  • Customizable reading experience
  • Chapter updates tracking and notifications
  • Search and discovery features

High-Level Architecture

Kotatsu follows modern Android development practices, implementing a multi-layer architecture that separates concerns between UI, domain logic, and data management.

Core Components

Application Structure

Kotatsu's main components are organized around key user flows:

TODO diagram

Settings and Preferences

The app's settings are centralized in the AppSettings class, which provides access to user preferences through a SharedPreferences wrapper:

classDiagram
  SharedPreferences <|-- AppSettings:uses
  AppSettings <|-- Activities:read/write
  AppSettings <|-- ViewModels:observe
  class SharedPreferences{
  }
  class Activities{
  }
  class ViewModels{
  }
  class AppSettings{
    -prefs: SharedPreferences
    +listMode: ListMode
    +theme: Int
    +colorScheme: ColorScheme
    +readerMode: ReaderMode
    +isReaderModeDetectionEnabled: Boolean
    +isTrackerEnabled: Boolean
    +isIncognitoModeEnabled: Boolean
    +subscribe()
    +unsubscribe(listener)  
  }

Main Features

Reader System

The reader is a core component of Kotatsu, providing multiple viewing modes and a customizable reading experience:

TODO diagram

The reader supports various features:

  • Multiple reading modes (standard, right-to-left, vertical, webtoon)
  • Customizable controls and gestures
  • Page preloading
  • Reading progress tracking
  • Brightness and contrast adjustments
  • Auto-scroll functionality

Manga Sources System

Kotatsu can load manga from multiple sources, including online repositories and local storage:

TODO diagram

The source system allows:

  • Browsing multiple manga sources
  • Enabling/disabling sources
  • Source-specific settings
  • Automatic mirror switching for reliability
  • Content filtering options

User Interface

The app features a modern Material Design interface with:

  • Bottom navigation for main sections
  • List/grid view options for manga collections
  • Dark and light themes with color schemes
  • Support for multiple languages

Technical Foundation

Build System

Kotatsu uses Gradle for building, with dependency management through the Gradle Version Catalog:

Component Description
Build Tools Android Gradle Plugin 8.9.1
Kotlin Version 2.1.20
Target SDK 35 (Android 15)
Minimum SDK 21 (Android 5.0)
Architecture MVVM with repositories
Dependency Injection Hilt
Database Room
Network OkHttp
Image Loading Coil 3
Async Processing Kotlin Coroutines

Dependencies and Libraries

Kotatsu integrates several key libraries:

  • AndroidX components for UI and lifecycle management
  • Room for local database storage
  • Hilt for dependency injection
  • Coil for efficient image loading
  • OkHttp for network requests
  • Adapter Delegates for RecyclerView implementation
  • WorkManager for background tasks
  • Material Components for UI elements

Internationalization

The app supports multiple languages through Android's string resources system, with translations available for:

  • English (default)
  • Russian
  • Spanish
  • Turkish
  • Belarusian
  • Ukrainian
  • French
  • Italian
  • Portuguese
  • German
  • Chinese
  • And many others

Summary

Kotatsu is a feature-rich manga reader application built with modern Android development practices. It offers a customizable reading experience, supports multiple manga sources, and provides convenient management features for manga collections. The app's architecture follows a clean separation of concerns between UI, domain logic, and data management, making it maintainable and extensible.

For more detailed information about specific aspects of the application, refer to the relevant sections in this wiki.