Substantial Android development in Scala [closed]
Has anyone had success developing a substantial Android app in Scala? Is it a viable option yet? Are there any mature development environments? Given the state of the Scala Eclipse plug-in, it looks as if there is no good IDE support at all other than possibly IntelliJ Ultimate.
A few people have posted tutorials describing how to fudge Eclipse ADT to sort-of support Scala, and how to to slim the Scala libraries using Proguard, but beyond that there has been worryingly little discussion about this topic.
Update 2011-08-01: An interesting article on Android+Scala from the developers behind the Bump app: Bump Dev Blog - How we use Scala in Bump for Android
Solution 1:
I'm programming my Android application project in Scala.
If you are interested, you may take a look at this:
- http://bone.twbbs.org.tw/maidroid/MaidroidOmikuji
- http://bone.twbbs.org.tw/maidroid/MaidroidReminder
Ya, it is a Chinese website, but you may just take a look at screenshots to get some idea about that Scala can do everything with Android SDK just like Java.
The source code of these two android application is hosted on GitHub: http://github.com/brianhsu/Maidroid
Currently I don't use any IDE, because Vim / SBT is far more convenient and lightweight then any IDE I ever used.
And if you are using SBT to build your Scala Android application, you don't need worry about those progruard stuff, just install the sbt android-plugin and setup your project.
You may read this blog entry to learn how to build your Android application with SBT.
BTW, I use my own handcraft sbt plugin called sbt-android in my project, instead of android-plugin metioned in that blog post.
Solution 2:
There is a new plugin, AndroidProguardScala which makes everything simple :
https://stackoverflow.com/a/11084146/1287856
Tested on Windows 7, with Eclipse 3.7, scala 2.9 and without even using the command line or custom ant tools. With it, I have build a real application for my business that is currently published on Google play.
Solution 3:
I have a scala android tutorial it allows you to use the ant lifecycle targets provided by android. please see here http://saadstechblog.blogspot.com/2011/09/scandroid-scala-android-tutorial.html it also has a link to a github project with everything configured.