Nick, Thank you for such a detailed answer, it got everything covered! :)
Speaking of IDE's I'd especially like to try to develop not relying on IDE. I code in IntelliJ for Android, but when I get away from it and use Emacs in my other projects for different languages, I simply get blown away by its speed and responsiveness compared to lagging IDE (maybe that's on my system only, dunno). Of course IDE has some nice things to it, no doubt, but I like performant things so much... I hope that one day gradle will untie me up from IDE in Java-land (it already can, but I didn't made the switch yet, due to some deadlines on course), but having a superior language (Scala) and not being tied up to a particular IDE (sbt/gradle) is even more cool :) So I'd like to experiment with this. Google showed that there's a good support for Scala-in-Emacs too, so... As about GC strain, I googled a bit and it seems that in Scala I can choose between mutable/immutable collections so this thing is hopefully solvable: whenever I identify a bottleneck, it can be optimized. I think next thing to do is to learn Scala/sbt which should be fun. On 28 July 2014 17:53, Nick Stanchenko <[email protected]> wrote: > Hi, > > > Finally I'm in process of watching video by Nick [1] and I'm very >> impressed! >> > > Glad to know! > > >> My question in short: should I dive in learning Scala, its android >> tooling etc, if I plan to use it mainly for Android development? >> > > That’s what I did, and I’m pretty happy with that choice. Besides, you > never know — I’ve since started/rewritten many non-Android projects in > Scala. > > >> Does it have all the tools needed for this, how mature and stable are >> they? >> > > The build system (sbt) is very mature on its own, with interesting > interactive command line features (there are good videos on sbt from > several recent Scala conferences). Perry’s Android plugin [1] is also > stable and very actively supported. The IDE part is somewhat lagging — > Intellij IDEA works fine, but may require some initial fiddling. A few days > ago JetBrains finally changed the priority of this issue to Major [2]. > > Do you use it on a daily basis for your [commercial] projects? >> > > I do use it on a daily (sometimes weekly) basis, however my project is yet > to be released to the store (it’s a part of my Master Thesis). There have > been commercial apps made with Scala at least as early as in 2011 (see > ScalaDays of that year), and I think Perry (pfn), as well as other members > of the community, have published a few. Overall I’ve never had any > Scala-specific problems with the app. You might, however, bump into several > things indirectly: > > - Bad ProGuard configuration > - “LinearAlloc exceeded capacity” error [3] (as far as I remember, > this should be fixed in Android 4.1) > - GC strain as a result of too many immutable collection operations > (in reality, images and Google maps are likely to have much bigger memory > footprint than anything you do with collections) > > Thanks for the pointer to Facebook’s fork of ProGuard. I’ve quickly hacked > a version of android-sdk-plugin using that fork, and after a couple of > build runs it seems that I’m getting around 10-20s win! > > Nick > > [1] https://github.com/pfn/android-sdk-plugin > [2] http://youtrack.jetbrains.com/issue/SCL-6273 > [3] https://groups.google.com/forum/#!topic/scala-on-android/Ac3ToKKXUdg > >> -- > You received this message because you are subscribed to a topic in the > Google Groups "scala-on-android" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/scala-on-android/V_SREZrGU2Y/unsubscribe > . > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "scala-on-android" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
