A modular, Kotlin‑first architecture ecosystem built to simplify, unify, and accelerate Android development.
From libraries and Compose UI to Gradle and AndroidStudio plugins — engineered for speed, scalability, and clean architecture.
Includes all published AAR | JAR artifacts (latest version, whitout signutures).
- Provide a clean and modular architecture for Android projects
- Encourage clear separation of concerns
- Offer a unified BOM for safe and consistent dependency management
- Stay Kotlin-first and aligned with modern Android development practices
Andromeda is composed of multiple standalone modules, including but not limited to:
| Feature | Stopped | Under Development | Stable Version |
|---|---|---|---|
| andromeda-bom | — | — | |
| andromeda-crypto | — | ✔ | |
| andromeda-foundation | — | ✔ | |
| andromeda-foundation-ktx | — | ✔ | |
| andromeda-ktx | — | ✔ | |
| andromeda-logging | — | ✔ | |
| andromeda-ui | — | ✔ | |
| andromeda-ui-compose | — | ✔ | |
| andromeda-ui-core | — | ✔ | |
| andromeda-ui-ktx | — | ✔ | |
| andromeda-viewmodel | — | ✔ | |
| andromeda-gradle-tools | — | ✔ |
Each module is versioned and published as an independent artifact, while remaining fully compatible through the Andromeda BOM.
Andromeda provides a Bill of Materials (BOM) to ensure all modules work seamlessly together.
@Suppress("UnstableApiUsage")
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenLocal()
mavenCentral()
google()
}
}[versions]
andromeda-bom = "🔝LATEST_VERSION🔝"
[libraries]
andromeda-bom = { module = "ir.farsroidx:andromeda-bom", version.ref = "andromeda-bom" }
andromeda-crypto = { module = "ir.farsroidx:andromeda-crypto" }
andromeda-foundation = { module = "ir.farsroidx:andromeda-foundation" }
andromeda-foundation-ktx = { module = "ir.farsroidx:andromeda-foundation-ktx" }
andromeda-ktx = { module = "ir.farsroidx:andromeda-ktx" }
andromeda-logging = { module = "ir.farsroidx:andromeda-logging" }
andromeda-ui = { module = "ir.farsroidx:andromeda-ui" }
andromeda-ui-compose = { module = "ir.farsroidx:andromeda-ui-compose" }
andromeda-ui-core = { module = "ir.farsroidx:andromeda-ui-core" }
andromeda-ui-ktx = { module = "ir.farsroidx:andromeda-ui-ktx" }
andromeda-viewmodel = { module = "ir.farsroidx:andromeda-viewmodel" }
[bundles]
andromeda = [
"andromeda-crypto",
"andromeda-foundation",
"andromeda-foundation-ktx",
"andromeda-ktx",
"andromeda-logging",
"andromeda-ui",
"andromeda-ui-compose",
"andromeda-ui-core",
"andromeda-ui-ktx",
"andromeda-viewmodel"
]dependencies {
implementation(
platform(
libs.andromeda.bom
)
)
// with bundle:
implementation(libs.bundles.andromeda)
// without bundle:
implementation(libs.andromeda.crypto)
implementation(libs.andromeda.foundation)
implementation(libs.andromeda.foundation.ktx)
implementation(libs.andromeda.ktx)
implementation(libs.andromeda.logging)
implementation(libs.andromeda.ui)
implementation(libs.andromeda.ui.compose)
implementation(libs.andromeda.ui.core)
implementation(libs.andromeda.ui.ktx)
implementation(libs.andromeda.viewmodel)
}