AozoraBooks is a modern, cross-platform reading app built with Kotlin Multiplatform, designed for reading novels in the Aozora Bunko (青空文庫) format. It supports advanced layout features like ruby annotations and vertical text, and runs on Android, iOS.
- Support for Aozora Bunko HTML format, including:
- Ruby text (
<ruby>) - ..
- Ruby text (
- Cross-platform with shared codebase (Android / iOS)
| Layer | Tech |
|---|---|
| Language | Kotlin Multiplatform |
| UI | Jetpack Compose Multiplatform |
| Parsing | Ksoup (for HTML), custom parser |
| I/O | Okio, kotlinx-io |
| State Mgmt | Circuit (Composable UDF) |
| Dependency Injection | Koin |
| Platforms | Android, iOS |
- Android Studio(Meerkat or newer)
- Install the Kotlin Multiplatform Plugin in Android Studio.
- Xcode(for iOS build)
- JDK(17)
- Connect an Android device or start an emulator in Android Studio.
- Wait for the Gradle sync to complete successfully.
- Add a new Android Run Configuration, and select the
composeAppmodule.Android Studio usually recognizes this module automatically. If not, configure it manually.
- Click the Run
▶️ button to launch the app.
- Wait for the Gradle sync to complete successfully.
- Add a new iOS Application Configuration in Android Studio or IntelliJ IDEA.
Xcode project path:
<project root>/iosApp/iosApp.xcodeproj
Execution target: any simulator compatible with your installed Xcode version - Click the Run
▶️ button to launch the app.
This project uses ktlint.`
running ./gradlew ktLintFormat to automatically fix lint errors.
running ./gradlew spotlessApply to add copyright.
./gradlew allTest
