mobile development
Some quick thoughts on mobile development, native vs React Native...
So, I’ve been trying for a while to make a few quick and relatively basic Android games for our kids to have on their tablets that are completely free of microtransactions. I write Java regularly, I’ve done Android before, hell, I’ve even made some of these before, so it seemed like a fairly easy process to just fire up Android Studio and get these going.
That’s where I was wrong.
Native Android development is a mess. Full speed emulators on Windows require you to not be running Hyper-V, unless you want to go through the (far superior, honestly) Visual Studio Emulator for Android. I don’t mind that. Android Studio itself is quite possibly the worst configured JetBrains instance that I’ve ever used, however–every single default seems to be specifically chosen to make development as painful as possible. Why on earth would I not want to build/deploy the current code when I select either build or deploy? Why do the included templates recommend using deprecated APIs, patterns, and just general poor ideas?
Long story short, it’s felt like something virtually impossible, even for the most basic of games (no event loops, just respond when input happens). I was thinking through it and realized that I don’t necessarily need to do native development in its proper form, though, and pulled up the docs for React Native.
I had code running on my phone in 10 minutes. I did not have to think about the process at all. I had multiple screens properly linked together within 30. I’ve got basic logic in place for everything after an hour, completely from scratch. To be clear, I don’t even really know a whole lot about React itself, other than some very very basic reading and examples I’ve built. I don’t know if I’ve ever been so solidly sold on a development tool so quickly from having such a great onboarding experience–I know this can’t replace everything from full native app development, but I certainly see why it’s been so popular. It was actually fun to write code doing this, something which I also hear about Kotlin.
I’m excited. I’ll have further posts on this (and those apps) soon, I hope.