IntelliJ Idea 12 + Android + Scala nowadays

Posted on May 24, 2023

Question

As suggested to me, I've run through a few articles describing how to make IntelliJ Idea and Android and Scala work together, but it turned out they were all written 1 or 2 years ago. And likely, something has changed since that time and now there are other solutions to achieve this goal. Concretely, there is a new solution https://github.com/yareally/android-scala-intellij-no-sbt-plugin for which I don't know if it works well or not.

I have IntelliJ Idea 12, Android SDK, Scala, SBT and all other stuff installed and set up. The only thing remaining is to setup IntelliJ Idea 12 to make it work with Scala instead of Java for creating Android applications.

Please don't close the question. I saw the previous questions similar to mine, but, as I said, they were outdated.

The question is, how do I do it now (May 2013)?

P.S. I tried Android Development Studio but I even wasn't able to launch it due to many errors.

Answer

Update: You can read the tutorial I wrote about the upcoming new version of SBT-Android (0.7). Most of your concerns should be addressed there. If they are not, then that's a problem.


Update 2: For fairness's sake, there's also a great work in progress : android-sdk-plugin by @pfn on GitHub.

Regarding ProGuard and build times :

  • I am, myself, preloading large libraries on my device with sbt-android. This eliminates ProGuard altogether, but requires root.

  • android-sdk-plugin's latest version boasts a new ProGuard cache (same as AndroidProguardScala), which is pretty sweet and does eliminate ProGuard in most cases during development.


I've been contributing to SBT-Android for a few months now, so I know it a lot better than the other solutions.

As of now, the plugin is evolving rapidly, with :

  • Full IntelliJ support (thanks to SBTIdea) coming very soon (In fact, it already works, I just need to send the pull requests)
  • Automatically preload Scala on an emulator, or rooted device (Just run android:preload-{device, emulator}, no Proguard needed for development anymore!)
  • Should support simple Gradle projects out-of-the-box with minimal effort (The directory structure is very similar)
  • Configuration is a lot easier (Just add the plugin and a project file and you're set!)

The current version doesn't have most of these niceties, but they're coming up in the following weeks. Some documentation is of course going to follow very soon afterwards, with examples and everything I'll think of.

I encourage you to join the Scala on Android Google Group and share your thoughts, by the way. There's also a #sbt-android channel on Freenode if you're into IRC.