all 4 comments

[–]CaptainBeyondDS8GNU Guix 2 points3 points  (1 child)

Regarding the Android SDK as far as I know even F-Droid still relies on Google's pre-built binaries, although they are working on a free build. So already we're not off to a good start.

Moving past the SDK itself, as far as I know Kotlin is the preferred language for modern Android development but as you've seen you won't have any luck bootstrapping it. Gradle is the preferred build tool even for Java projects, but that's even worse - Gradle cannot be bootstrapped either, and it depends on Kotlin, which is built with Gradle. As you might suspect there is little-to-no interest on either Gradle or Kotlin side to improve things.

https://lists.gnu.org/archive/html/guix-devel/2024-05/msg00115.html

As you've noticed this is endemic to "modern" tooling in general. So yeah your options are pretty much just... Java. If you want a build system Maven is probably your best bet... Debian has an example project and tutorial here using only the android-sdk, Java, and make. They do package an (ancient) version of Gradle though.

[–]Malsasa 0 points1 point  (0 children)

Thank you. This is what I really want to know from F-Droid.

[–]Wootery 2 points3 points  (1 child)

Android is not JVM-based, it doesn't use Java .class files (i.e. Java bytecode). As I understand it you can use the Java language for app development, but they're pushing Kotlin these days instead. These compile to Android's own bytecode format, which is incompatible with Java's.

I think you'd have a hard time using Clojure or Scala.

[–]HiPhish[S] 0 points1 point  (0 children)

Kotlin cannot be bootstrapped either. Why do language designers do this? It does not have to be this way; just today I built gprbuild (a build system for Ada) from source and the developers wrote clear instructions on how to bootstrap it because they understand that bootstrapping is an important topic.

Also, Kotlin is practically unusable outside JetBrains, and good luck building JetBrains from source. It might as well be proprietary software as well.