Skip to content

Add hello-world Android Java & Kotlin examples using Mill (2000USD bounty) #3550

@lihaoyi

Description

@lihaoyi

From the maintainer Li Haoyi: I'm putting a 2000USD bounty on this issue, payable by bank transfer on a merged PR implementing this.


We have a bunch of examples for generic library dev and backend server dev (spring-boot, micronaut), but we don't have any android examples.

Something like https://hereket.com/posts/android_from_command_line/ or https://github.com/authmane512/android-project-template could be good references.

As this is a large bounty, I'm breaking it down into four pieces:

  1. 500USD Android Java Support:
  • A folder in example/javalib/android/1-hello-world that contains a build that contains Java code for building a trivial hello-world android app APK, that can then be loaded into a physical phone or android emulator.
  • Just the simplest plain-old-Java android app is fine: no need fancier features or C++ code or whatever.
  • Manual testing of the final APK is fine, but the process to build it should be exercised in the example.
  • The app should have two modules containing Java code, one depending on another, to demonstrate how splitting of a app codebase into modules works
  • Android-specific config should be extracted into a trait AndroidJavaModule in mill.javalib, and only app-specific config should be in the example/javalib/android/1-hello-world example
  • Both the library code and the example code should be rigorously documented w.r.t. how it is used and how it fits into the larger Android ecosystem
  1. 500USD Testing Android Java Example
  1. 500USD Android Kotlin Support:
  • Same as (1) above, except for Kotlin: example/kotlinlib/android/1-hello-world, plain-old-Kotlin code, manual testing, two modules, with a trait AndroidKotlinModule in mill.kotlinlib
  1. 500USD Jetpack Compose Example
  • A hello-world example demonstating usage of the Jetpack Compose framework for Android with Kotlin

Metadata

Metadata

Assignees

No one assigned

    Labels

    bountyThe fix/close of this issue is rewarded with a bounty

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions