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
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!