New version of 4Clojure Android App is out

4Clojure 0.2 screenshot

After a significant delay I finally published an update to 4Clojure App, slick and beautiful. This version conforms to most Material design patterns: it has animations, ripples (on 5.0+), smooth shadows, snackbars, side drawer with the user account data and what not. Besides aesthetics I also added a REPL mode where you can evaluate any expression and see its output. This is convenient when you are tinkering with your solution and want to see what exactly your function returns. REPL mode is enableable (sheesh, what a word) from the problem solving activity. You can then toggle it off and run your solution against the tests.

From technical perspective, this update became possible thanks to recently added AAR support in lein-droid. This allows to easily use support libraries, one of which is Android Support Design library. It packs all of Material goodies backwards compatible up to Froyo. And using it is as easy as adding one :dependencies line.

These support library things require some Neko interoperation, but I can't just add them to Neko — I don't want Neko to always depend on those libraries. So I guess it warrants another library, something like neko-support, to be created that depends on both Neko and the support libraries, and adds the necessary wrappers to conveniently consume the support features. Right now in 4Clojure I just keep all Neko+support code in the utils namespace, which turns out to be fine — after all, Neko was designed to enable easy extension of it without touching the library code. But anyway, the code I've written for 4Clojure may be reusable, so it's a good idea to move it into a library.

Overall, great stuff, I'm happy to deliver this update and fix the long-standing issues. I've also proven to myself that Clojure-Android can use the latest Android things like Material design and support libraries not worse than regular Java projects. So, go ahead and try it out, it's already on Play Market. Have fn!