⚙🤖 Starting an Android Project

Sat 20 Nov 2021

So I'm starting an Android project in my Copious Free Time, and after installing Android Studio on my laptop and getting all the SDKs and everything installed, I'm finding myself completely clueless about a development environment for the first time in about 15 years. Even getting into Common Lisp and dipping my toes in Rust were less disorienting.

I had looked into developing an Android app using some non-mainstream setup like EQL5, LambdaNative or Kawa Scheme, but it looked like they were all pretty fragile and untested build environments. I had also hoped Clojure would be an option, but apparently the Android Clojure build tools were maintained by one person and have bitrotted, and no one ever solved the slow start-up time problem with Clojure apps on Android.

I've installed Android Studio on this computer before, to build slightly tweaked versions of apps from F-Droid, and it's always ground it into the dirt. Apparently, Google do not expect Android developers to be working on an 8-year-old computer (ThinkPad X230, 8GB RAM). However, it's not so bad this time... probably the last time was before I replaced the HDD in it with an SSD.

I then had to choose between Kotlin and Java. Kotlin is a much better language, but I kind of already know Java, and it looks like the LSP server for Java is much more stable and complete than the one for Kotlin, which means I'll have a better time with Java in Emacs. Oh well.

After getting a Hello World project set up, I had really just no idea what to do next. I struggled with adding one dependency I knew I'd need. I last used Java in earnest about 10 years ago, and apparently the dependency management situation has changed twice since then.

That's where it stands for now. I'm not saying anything about what the project is, because I don't want anyone getting excited about it when it's very likely this won't go anywhere. I mostly just wanted to post about how hard it is to get started developing for Android.

(I also have a lot of other projects that are More Important than this one. Mostly home improvement, but also Gemini Quickstart, which is really overdue for merging translations and being updated to the current conditions of Geminispace.)

Updated Sun 21 Nov 2021

Probably giving up on this unless someone volunteers to help me with it. I got lsp-java basically working after some struggles, except that it doesn't seem to like projects created by Android Studio, takes quite a bit of coercion to use the right Gradle version for the project, and won't build anything that has sub-projects not created by Eclipse.

I decided instead to try again with Kotlin, but though I was able to build the Kotlin language server, the lsp-kotlin package for Emacs seems to be bitrotted and not match up with the current version of lsp-mode. So that is out, too.

I considered just going ahead and developing with Android Studio, which does seem to run a little better than it used to, but then I compiled the Hello World project I had created and ran it in the emulator, and it promptly caused my Gnome session (Android Studio will not run under Sway) to OOM-kill.

I just can't see this being any fun, to be honest. And though this project kind of needs to exist, I'm clearly not in a position to do it.