Conversation

Replying to and
Also as an interesting piece of trivia, I am actually targeting a non-phone hardware platform which chose to use Android as its base but which does not run conventional Android apps and does not, in fact, appear to support Java at all But still uses the Android/Java build system
1
9
Replying to and
The funny part about it is that Android SDK/NDK build system isn't what's used by Android itself. Android itself is busy replacing a far superior build system to the one they make app developers use with a better one, after previously going through a past replacement like that.
2
1
Replying to and
Whenever I ask why a particular weird piece of Google tooling is the way it is, the answer seems to be "well internally they use Blaze, but that's internal, so they made an external OSS tool which implements a subset of Blaze. ... another one"
1
1
Replying to and
gradle isn't the kind of thing they'd build though. They just made a plugin for it. The Android build system itself may not be as wonderful as Bazel would have been but it's actually the nicest build system that I've used overall. gradle could actually be the worst.
2
1
Replying to and
I barely deal with gradle and it makes me unhappy. It's ridiculously complex and every 6 months it has become completely different. I don't like Groovy either, but I don't want to learn how Kotlin gradle works since it's a waste of space in my brain.
1
Replying to and
I really like having a declarative DSL with basic conditionals, etc. where if really needed there is some escape hatch with an actual programming language like Go or whatever rather than dealing with the horrifying build system programming languages.
2
Google's involvement is making that magical Android gradle plugin dealing with everything for you. It's part of the incomprehensible gradle world though, where everything is seemingly just supposed to magically work and you're screwed if it doesn't actually do that.
1
1
I thought I understood the basics of gradle so I actually used it to build a few server-side Java and Kotlin projects. I had no clue that the Android gradle plugin was what was giving me release vs. debug builds, reproducible builds, assembling things into an actual release, etc
1