Effective Celestia is a ✨ cross-platform educational app ✨ that brings the wonders of space to your fingertips. Designed as an open-source sample project using Compose Multiplatform, it aims to showcase modern UI/UX, scalable architecture, and best practices for quickly bootstrapping production-ready apps across Android, iOS, Desktop, and Web.
This project serves as a starter template for developers building Kotlin Multiplatform apps. It demonstrates:
- Clean, scalable architecture (Clean Architecture)
- State management, DI, navigation, and platform-specific patterns
- A modern, polished user interface
- Compose Multiplatform’s power across all major targets
Android![]() |
iOS![]() |
Desktop![]() |
Web
|
||
- Kotlin Multiplatform – shared logic across platforms
- Jetpack Compose Multiplatform – unified declarative UI
- Koin – lightweight dependency injection
- Kotlinx Serialization – JSON handling
- Napier – multiplatform logging
- Navigation Compose – declarative screen transitions
- Material 3 – modern UI styling
- YandexGPT API – AI-powered content generation
- Gradle (Kotlin DSL) – build automation
- Run KDoctor to validate environment
- Install JDK 17+
- Create a
local.propertiesfile with your Android SDK path - Add YandexGPT credentials:
gpt.api.key=your_api_key_here gpt.model.id=your_model_id_here
To run:
- Open in Android Studio, select Android run config
To build APK:
./gradlew :composeApp:assembleDebugAPK will be located at composeApp/build/outputs/apk/debug/
To run UI tests:
./gradlew :composeApp:connectedDebugAndroidTestRun the desktop app:
./gradlew :composeApp:runWith hot reload:
./gradlew :composeApp:jvmRunHotUI tests:
./gradlew :composeApp:jvmTestTo run:
- Open
iosApp/iosApp.xcprojectin Xcode - Or use the KMM Plugin
iOS simulator tests:
./gradlew :composeApp:iosSimulatorArm64TestRun in browser:
./gradlew :composeApp:wasmJsBrowserDevelopmentRun --continueBrowser UI tests:
./gradlew :composeApp:wasmJsBrowserTestcomposeApp– multiplatform entry points and navigationcore:*– shared core logiccore:ui– common components and themingcore:domain– models and interfacescore:data– repositories and data sources
feature:*– modular featuressplash,quiz,planet,test,aboutus
The project follows Clean Architecture with these layers:
- Presentation – UI, ViewModels (MVI pattern)
- Domain – business logic, use cases
- Data – repositories, data models, APIs
Each feature module respects this structure for clarity and reusability.
- Navigation – Compose Navigation with centralized route definitions (
NavRoutes.kt) - Dependency Injection – via
Koin, structured per module - UI Layer – Compose + Material 3 + custom space-themed components
- AI Integration – using YandexGPT to generate quizzes and recommendations
- Add test coverage
- CI/CD pipeline setup
- Code linting configuration
Software Engineer – Stanislav Radchenko
📬 Telegram: @StanislavRadchenko
UI/UX Designer – Alexandra Korytova
🎨 Telegram: @alesrkt


