Skip to content

farsroidx/andromeda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ElasticOverscroll Banner

🌟 The Android Dev Ecosystem 🌟

🚀 Powering the Next Generation of Android Development 🚀

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.

Ecosystem Android Kotlin Peace

License Kotlin Codacy Badge

Min SDK ktlint Last Commit

Made with ❤️ for the Android Community

🪶 Total Binary Size: ~250KB

Includes all published AAR | JAR artifacts (latest version, whitout signutures).


✨ Goals

  • 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

📦 Modules

Andromeda is composed of multiple standalone modules, including but not limited to:

Feature Stopped Under Development Stable Version
andromeda-bom Maven Central
andromeda-crypto Maven Central
andromeda-foundation Maven Central
andromeda-foundation-ktx Maven Central
andromeda-ktx Maven Central
andromeda-logging Maven Central
andromeda-ui Maven Central
andromeda-ui-compose Maven Central
andromeda-ui-core Maven Central
andromeda-ui-ktx Maven Central
andromeda-viewmodel Maven Central
andromeda-gradle-tools Gradle Plugin Portal

Each module is versioned and published as an independent artifact, while remaining fully compatible through the Andromeda BOM.


🔗 Dependency Management (BOM)

Andromeda provides a Bill of Materials (BOM) to ensure all modules work seamlessly together.

1. in settings.gradle.kts:
@Suppress("UnstableApiUsage")
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        mavenLocal()
        mavenCentral()
        google()
    }
}
2. in libs.versions.toml:

Maven Central

[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"
]
3. in build.gradle.kts:
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)
}

Ask Me Anything !

About

Andromeda – A modern, modular Android architecture toolkit

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages