Android as a software platform isn’t going anywhere anytime soon. Here’s why.

When I took my first steps into software, having completed John Purcell’s excellent Java for Beginners tutorial series - which I’d thoroughly recommend for absolute beginners to programming - I was at a bit of a loss as to which direction to take my new-found skills, even though all I could really do at that point was write very impressive “Hello World” console apps. It was then that I took out my one-year-old OnePlus 1 smartphone and realised that it would be super nice to write something visual that I could interact with in the palm of my hand.

One of the first things I wrote was an “endless pile of shapes” app, which leveraged a custom View to draw shapes to the canvas, allowing users to move them around endlessly without ever seeing the bottom of the pile. I was captivated by the latitude the platform offered developers in crafting rich and delightful experiences for users. But why is it that this flavour of Linux has become such a dominant platform for mobile development?

Flexible and open-source

The Android Open Source Project (AOSP) is open-source. Anyone can download the (albeit very large) codebase, customize, build it, and run it on a supported system. That means its possible use cases are practically limitless. It’s a significant edge over its rival Apple operating system because there is no real limit to the devices and form factors it supports. I personally have built software that runs in police cars, fire engines, boats, helicopters, tablets, ruggedized handsets and much more, and it’s precisely because Android development is so democratized as a platform.

It’s this open nature which is also a driver of cross-platform tooling. There have been a lot of promising results from development of Kotlin Multiplatform Mobile (KMM) as a way of bridging the gap between mobile platforms. I love the idea of having a shared engine layer between the two platform-specific UI layers.

Kotlin!

Kotlin is great. If you’re reading this and still starting up projects using Java, then you’re definitely missing out at this point. The concision and syntactic sugar the language offers make programming an absolute dream, and with Kotlin becoming a key development language in more than just mobile development (viz. Ktor, Kotlin Multiplatform, etc.), I predict it will rival the biggest programming languages out there in usage.

That brings me to Android’s latest UI toolkit, Jetpack Compose. Without a declarative UI framework native Android development would not have a future. React.js has changed that forever, and a functional method of developing interactive digital interfaces is the future of software development. But aside from that, it just makes development of UI code (a) quicker and (b) more fun. What else could one ask for?

Where I’m at

I’m still relatively new to this stuff. I have written software for a lot of different projects, but I learn something new every day. I’m not limited to Android alone; I’m fascinated by the vastness of web development, and iOS is starting to pique my interest. Do look out for more posts in the near future. I plan to make additional updates on what I’ve been working on recently very soon.