Skip to content

farsroidx/andromeda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Andromeda Android Kotlin Made with Love

Maven Central License Kotlin Codacy Badge Min SDK ktlint Last Commit

💚 🤍 ❤️

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.


🪶 Total Binary Size: ~150KB

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 Unavailable In Development Stable Latest Version
andromeda-bom 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-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-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"
]
3. in build.gradle.kts:
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)
}

Ask Me Anything !

About

Andromeda – A modern, modular Android architecture toolkit

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages