Skip to content

Set up :android module with Android Library plugin and dependencies #75

Description

@MessiasLima

Description

Create the :android Gradle module as an Android Library. This module will host all Android-specific resolvers but begins empty — only the project scaffolding, build configuration, and an empty AndroidTypeResolverProvider.

  • Scope and constraints

    • Create android/build.gradle.kts applying com.android.library, org.jetbrains.kotlin.android, autoservice-ir, and com.vanniktech.maven.publish.
    • Configure android { compileSdk = 37; defaultConfig { minSdk = 21 } } and kotlin { jvmToolchain(17) }.
    • Add :core as api dependency.
    • Add androidx.compose.ui:ui as implementation dependency.
    • Add AGP (com.android.library), Kotlin Android plugin (org.jetbrains.kotlin.android), and AndroidX Compose entries to gradle/libs.versions.toml.
    • Verify that the current Gradle Wrapper (9.5.1) is compatible with AGP 9.2.0; downgrade to 8.14 if not.
    • Create android/src/main/AndroidManifest.xml with minimal <manifest />.
    • Add the empty AndroidTypeResolverProvider in dev.appoutlet.some.android.provider returning emptyList().
    • Wire Maven Central publishing: artifactId = "some-android", same signing and POM metadata as :core (description should mention Android extension).
    • Shared build config (Detekt, gitHooks, Dokka) is already handled by ticket Set up Gradle version catalog #1; this ticket only adds Android-specific plugins and deps.
  • References

Scope

In scope: build files, version catalog, Gradle Wrapper compatibility check, empty provider class, publishing wiring.
Out of scope: any resolver implementation.

Acceptance criteria

  • ./gradlew :android:build compiles successfully (may produce warnings about empty source set but must not fail)
  • ./gradlew :android:test runs (no-op since no test sources yet, but task exists and succeeds)
  • :core classes are accessible from :android (e.g., TypeResolver, TypeResolverProvider resolve at compile time)
  • AndroidTypeResolverProvider exists with @AutoService(TypeResolverProvider::class) and compiles
  • androidx.compose.ui:ui resolves and is on the compile classpath
  • AndroidManifest.xml is present and valid
  • Maven publish configuration resolves artifactId = "some-android" for the :android module
  • Gradle Wrapper is at a version compatible with AGP 9.2.0 (8.14+)
  • Version catalog contains entries for agp, kotlin-android, and androidx-compose-ui

Metadata

Metadata

Assignees

No one assigned

    Labels

    julesJules lives

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions