For this blog post, I’d like to change gears for a bit and tell a story from my previous life, the one when I was a software developer at JetBrains. Android Studio is celebrating its 10th anniversary, and this brings back memories of my own contributions to the project. I never actually knew how much my help mattered – it might well be the case that things would have worked out exactly the same if I wasn’t involved – but I like to think that it had at least some impact. And of course Android Studio itself was a huge deal for JetBrains, and without it many other things, including the success of Kotlin, wouldn’t have been possible.
The story starts with me building the very first version of the Android plugin for IntelliJ some time in 2009, I think. I’m not quite sure why I started to work on it; I think I had a long trip from the US to Europe and this felt like a fun way to spend the time. The plugin didn’t do a lot, but it could build and run a simple app, and provided some minimal coding assistance XML files. However small it was, this was the seed from which the entire Android Studio codebase grew later on. We soon got a dedicated developer for the plugin – Eugene Kudelevsky – and I switched to other tasks once he was there.
For a while, JetBrains kept working on the Android plugin, while Google continued improving the Eclipse-based Android tooling. Eventually, I remember catching Xav – he was the lead of Android tooling for Eclipse back then – at Devoxx in November 2012 and trying to convince him to switch to IntelliJ. The discussion we had wasn’t very long, but I think that all the concerns he raised about Eclipse could be addressed by the switch, and I expressed our full willingness to help with the transition.

Things seemed to get underway quite quickly, and the next thing was me coming to Mountain View in January 2013 to get the nascent Android Studio team (Xav, Tor, Chet and Siva, if I remember correctly) up and running. The main issue was setting up the configuration and build of a new standalone product based on the IntelliJ Community Edition code base and the IntelliJ Android plugin. Back then the process was completely undocumented, and being able to set this up while sitting in the same room as the team was quite valuable. I also helped with the IntelliJ APIs a little bit – I remember live-coding a couple of simple features in front of the team – but the Google engineers got into it very quickly, so my help wasn’t needed for long.
My next contribution came right before the Google I/O 2013 conference in May 2013, where Android Studio was first announced. We came to the US a couple of days before the conference and were able to take a look at the product, and I noticed that the branding of Studio didn’t mention IntelliJ in any way, which didn’t seem right. I asked for this to be changed, and we agreed to put the line “Powered by IntelliJ Platform” on the splash screen. It was added right before the announcement, and last I checked it was still there.
(A pretty cool aspect of this collaboration was that the only part covered by a formal contract with money changing hands was the C++ plugin that we licensed to Google for Android NDK support. Everything else was based on the Apache license covering the IntelliJ Community Edition code and goodwill. So, for example, there was no formal requirement for any IntelliJ branding to be visible in Android Studio, but it was added because we agreed this was the right thing to do.)

I was in the room at the I/O keynote when Android Studio was announced, and hearing the reaction to the announcement was one of the happiest moments of my career.
In the end of 2013 I left JetBrains and joined Google (only to come back a year later, but this is a different story). One of my motivations for joining Google was expanding my skill set, so I wasn’t too keen on touching the very familiar IntelliJ/Android Studio code. However, one of the Google Cloud teams had some issues getting their Android Studio plugin to work, and we came to an agreement that I could go to I/O 2014 if I helped them. I did what the team needed, went to I/O (not nearly as fun if you work for Google), and I think this was my last substantial contribution to Studio.
Later on, when I was back at JetBrains, I tried to help the Studio team as much as I could with advice on using the IntelliJ Platform and the architectural changes we were working on. I also integrated some of the cool things the Studio team built (such as the IDE being able to analyze its own memory snapshots and detect memory leaks) back to the platform.
One funny thing is that, despite all my involvement in Android Studio and Kotlin, I never built a proper Android app myself. I started a few projects, and I brought at least one of them to the point of being marginally useful for me personally, but I never learned enough to be able to build an app that would be usable by a broader audience.
So that’s my part of the Android Studio story. I hope I remember all the important parts correctly; if not, feel free to leave a comment. Back to linguistics for the next post. 🙂
Leave a comment