Friday, June 10, 2016

Recommended platform for Android Studio (not Ubuntu)

In principle, one could develop applications for Android using any tools that support Java and on any platform where the SDK can run. In practice, the setup is so complicated and tedious that it makes sense to use a tool that is specifically designed for Android development.

The only officially-supported development stack for Android is Android Studio from Google. Android Studio is based on JetBrains IntelliJ and depends on the Android SDK, also provided by Google.

In principle, Android Studio should work approximately the same on Mac OSX, Microsoft Windows, and Linux. In practice, it works best on Mac OSX, fairly well on Microsoft Windows, and very poorly on Linux.

With Linux you must expect to encounter numerous undocumented and frustrating problems related to package compatibility, UI and functional differences among different versions of Studio, contradictory instructions and tutorials that people cobbled together based on older versions of the tools and/or idiosyncrasies of their own computers that aren't an issue on your computer, nearly impossible-to-follow documentation from Google, Studio becoming confused between 32-bit and 64-bit emulation in a multi-arch Linux instance, and a bewildering mass of disjointed questions and answers on StackOverflow and on people's blogs, every one of which will lead you on a different and unique wild goose chase. In addition, the look and feel of the UI is just plain terrible on Linux.

I'm rambling on and on about this because Linux is my preferred environment for almost all kinds of development. I'm very disappointed in the quality of Linux support that Google is providing for Android Studio. It's simply not worth the hassle.

Android Studio has fewer issues on Microsoft Windows. The launcher may or may not detect the location of your Java SDK. If it doesn't, then you'll have to set the JAVA_HOME environment variable. This is the case with many other Java-based software products on Windows as well, so if you often use Windows you're probably familiar with this step.

I've found Android Studio to work more-or-less out of the box on Mac OSX. If you prefer to spend your time learning to write Android applications rather than struggling with configuration problems, I suggest you do your Android development on a Mac.

A second reason to consider Mac as the platform of choice for Android development is that if you're writing something for Android you're probably also writing a version of it for iOS. Might as well work on a single system rather than two systems.