💚 🤍 ❤️
Andromeda is a modern, modular Android architecture toolkit designed to help you build scalable, maintainable, and production-ready Android applications.
This repository serves as the parent project for the Andromeda ecosystem and contains multiple independent modules that can be used together or individually.
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 | Unavailable | In Development | Stable | Latest Version |
|---|---|---|---|---|
| andromeda-bom | — | — | — | |
| andromeda-foundation | ✔ | ✔ | ||
| andromeda-foundation-ktx | ✔ | ✔ | ||
| andromeda-ktx | ✔ | ✔ | ||
| andromeda-logging | ✔ | ✔ | ||
| andromeda-ui | ✔ | ✔ | ||
| 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-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-ktx = { module = "ir.farsroidx:andromeda-ui-ktx" }
andromeda-viewmodel = { module = "ir.farsroidx:andromeda-viewmodel" }
[bundles]
andromeda = [
"andromeda-foundation",
"andromeda-foundation-ktx",
"andromeda-ktx",
"andromeda-logging",
"andromeda-ui",
"andromeda-ui-ktx",
"andromeda-viewmodel"
]dependencies {
implementation(
platform(
libs.andromeda.bom
)
)
// with bundle:
implementation(libs.bundles.andromeda)
// without bundle:
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.ktx)
implementation(libs.andromeda.viewmodel)
}