Add hello-world Android Java & Kotlin examples using Mill (2000USD bounty)
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:
- [x] 500USD Android Java Support:
- A folder in
example/javalib/android/1-hello-worldthat 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 AndroidJavaModuleinmill.javalib, and only app-specific config should be in theexample/javalib/android/1-hello-worldexample - 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
- [ ] 500USD Advanced Android Java Example
-
A more sophisticated version of the example in (1) above, demonstrating usage of:
- Unit testing and Integration testing your android app
- Third-party library dependencies (https://developer.android.com/build/dependencies)
- The R8 application minifier (https://developer.android.com/build/shrink-code)
- Publishing a module of your android build as a library (https://developer.android.com/build/publish-library)
- [x] 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 atrait AndroidKotlinModuleinmill.kotlinlib
- [ ] 500USD Jetpack Compose Example
- A hello-world example demonstating usage of the Jetpack Compose framework for Android with Kotlin
@lihaoyi can you assign this to me? I can start working on this immediately
@aybanda go ahead. Bounties aren't assignned and remain open until completed, but typically there's few enough people doing them that you dont need to worry about conflicts with others
@lihaoyi I Guess i Fixed #3550 Issue please check my PR : #3596
Bumping this to a 1000USD bounty for Java and added 1000USD bounty for further kotlin support
@lihaoyi Please Check my pr #3596 i have everything running fine in local but getting problem with the live test i dont know whats happening please do consider my efforts and review the pr once
I fleshed out the Java and Kotlin bounties in more detail and added intermediate milestones
i think first milestone is almost done by me #3596 and now the main thing is to add documentation but @lihaoyi please explain me how and in what format documentation will be ?
Reopened because only 1/4 tasks is complete
Hi @lihaoyi, I've seen that you usually create bounties for issues, maybe you're interested in using Opire. It integrates with GitHub, but you can always put bounties from the dashboard if you don't want to install the bot. Also, you don't pay until someone claims the bounty with a PR.
PS: I'm the co-founder, so if you need anything, feel free to contact me.
@lihaoyi Sir, What should be the name for this like we have used 1-hello-world for simple then for this what to do...
what i used 2-jetpack-compose-hello-world
- [ ] 500USD Jetpack Compose Example
- A hello-world example demonstating usage of the Jetpack Compose framework for Android with Kotlin
This is An Extension for the conversation #3735
Issue
Error: Unresolved Reference (Kotlin Android Jetpack Compose)
Description
Error: Unresolved Reference (This Issue comes out when we are trying to implement androidx libraries related to issue: #3550 and pr: #3696)
Steps to Reproduce
- Cherry Pick the commits of Pr: #3696
- Run the Command
./mill -i -j3 -k example.kotlinlib.android[2-jetpack-compose-hello-world].__.local.testCached - After running it will get unresolved reference error for andoridx libraries
Expected Behavior
It should compile and build the application using jetpack compose
Actual Behavior
Getting unresolved reference error which should not come in general coz we are using aar and jar files both and following rules.
Logs
Actual Error: https://github.com/com-lihaoyi/mill/pull/3696#issuecomment-2405827244
CompileClasspath(before converting aar to jar): https://github.com/com-lihaoyi/mill/pull/3696#issuecomment-2407513779
CompileClasspath(after converting aar to jar): https://github.com/com-lihaoyi/mill/pull/3696#issuecomment-2408521905
Additional Information
This issue is raised to get some attention regarding the issue #3550 part 4th and i think current issue needs to be solved first
Please help out, if anyone can solve this or guide me for this...
@0xnm, I need your help in adding jetpack compose support to mill if you are available for help then please once reply its very hard to add jetpack compose support (adding compilation and resource linking)
Please once Reply if You are available...
@lihaoyi to be honest without adding jetpack compose or any other third party aar dependency support fully we can't move to other examples and follow ups coz i know the backend implementation and without proper support its not possible so i request you if we are not able to solve this problem you please hire one specialist for this who can add proper professional support for aar libraries handling and this needs to be done first for resolving follow ups
Jetpack Compose example was delivered in https://github.com/com-lihaoyi/mill/pull/4188, no need to work on this anymore.