Vim + Kotlin + Android App
Vim + Kotlin + Android App
It has been a long time since I've written about programming. I used to write a lot about Actionscript back when I was a professional Flash/Flex/Actionscript developer. It was one of the things that helped me to become an expert in the field. For reasons, mostly having to do with employment agreements that scared me, I stopped writing. I also created a disclaimer, which I linked on all my social media, for this reason.
I want to learn like that again. It is for this reason that I've challenged myself. I have challenged myself to create an Android App, in Vim (or a Vim variant), with Kotlin. This seems like quite a bit of pain. Why would I do this to myself?
My main reason for all this is learning. I've yet to use Kotlin for anything more than small scripts I learn Kotlin with. Working on a whole application in the language will force me to get more comfortable with it. Since I currently do Android development for work, it can help me to be able to jump to Kotlin when we start using it on our team.
But, Why?
But why would I build an Android App in Vim (or neovim/veonim more likely)? That just seems like torturing myself. Android Studio is a really great IDE. If I want Vim key bindings, IdeaVim is a very decent option. The reason is still learning. IDEs are great, but it's that 'I' that hides the inner workings from us. This is a great thing. Most of the time we don't want to be bogged down with how things work, we just want it to work. If we use the metaphor of a car, most drivers just want them to be able to drive but don't really care about the details. It's time for me to understand how different things work? How do I build? How do I install? How do I debug? All of this, from the command line. Then, how do I present it to myself in my neovim setup? Can I also learn about creating a Vim plug-in?
I've been using Vim key bindings for years. In recent months I've gotten very comfortable in command line Vim and am now using neovim quite a bit. In the past couple days I've been testing out veonim, an IDE-esque experience based on neovim. So far, it seems like neovim but with a bit of presentational polish. So I'll be learning that as well.
Conclusion
So, it is time to learn again and I've got a plan. This is actually what I always recommend to people. If you want to learn some aspect of computer programming, make something. It is in the process of making something, running into and overcoming problems, that you learn.
So, what's the project? I'm going to work on creating an App for my podcast, The Spoilers with Diacre. At the most basic it will be a podcast player. That's a complex enough App to last me quite a long time and hopefully a few articles.
This article was written in neovim with the vimwiki plugin and a few learnings from the book Writing with Vim by Anthony Panozzo