A cross-platform book discovery app for Android, iOS, and Desktop, built with Kotlin Multiplatform and Compose Multiplatform.
Search millions of books powered by the Open Library API, explore details, and save your favourites — all from a single shared codebase.
- Features
- Tech Stack
- Getting Started
- Project Structure
- License
- 🔍 Search & browse books — Find books instantly using the Open Library API
- 📖 View book details — Explore in-depth information including title, author, description, and cover
- ❤️ Save favourites — Bookmark your favourite books for quick access anytime
| Technology | Description |
|---|---|
| Kotlin Multiplatform | Shared business logic for Android, iOS & Desktop |
| Compose Multiplatform | Shared UI across all platforms |
| Ktor | HTTP client for Open Library API calls |
| Kotlinx Serialization | JSON parsing |
| Swift | iOS app entry point |
| Gradle (Kotlin DSL) | Build system |
- Android Studio (Hedgehog or newer recommended)
- Xcode 15+ (for iOS builds — macOS only)
- JDK 17+
- Kotlin Multiplatform plugin installed in Android Studio
git clone https://github.com/M0bileDev/BookpediaKmpAppProject.git
cd BookpediaKmpAppProjectOpen the project in Android Studio, select the composeApp run configuration from the toolbar, and hit Run.
# macOS / Linux
./gradlew :composeApp:assembleDebug
# Windows
.\gradlew.bat :composeApp:assembleDebugInstall on a connected device or emulator:
./gradlew :composeApp:installDebugRequires macOS with Xcode installed.
Open the /iosApp directory in Xcode:
open iosApp/iosApp.xcodeprojSelect your target device or simulator and press Run (⌘R).
Run the desktop app directly from the terminal:
# macOS / Linux
./gradlew :composeApp:run
# Windows
.\gradlew.bat :composeApp:runBookpediaKmpAppProject/
├── composeApp/
│ └── src/
│ ├── commonMain/ # Shared UI, business logic, API calls (KMP + Compose)
│ ├── androidMain/ # Android-specific implementations
│ ├── iosMain/ # iOS-specific implementations
│ └── desktopMain/ # Desktop (JVM)-specific implementations
├── iosApp/
│ └── iosApp/ # iOS app entry point (Swift / SwiftUI)
├── gradle/ # Gradle wrapper files
├── build.gradle.kts # Root build configuration
├── settings.gradle.kts # Project settings
└── gradle.properties # Gradle properties
This project is licensed under the Apache 2.0 License.