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!

Lein-droid update: AAR support, multi-dexing, simpler setup

New version of lein-droid, 0.4.0-alpha6 is published. This alpha contains plenty of work that was done to fix the long standing issues with the build process.

Read more ->>

[GSoC 2015] Skummet becomes faster, gets a twin brother

Google Summer of Code 2015, reporting in. Everything goes well so far, tests are working. But testing takes quite a lot of time, especially if you need to test with different Android versions. Robolectric and Clojure startup times combined take their toll when you have to relaunch them several times. Can we do better? — I asked myself. Perhaps we can.

Read more ->>

Neko 4.0.0-alpha1 - changes and new features

While I'm hacking the GSoC away, I finally released the first alpha version of the fourth Neko iteration. Plenty of things has changed, so I suggest looking through the post and start updating your projects. You can always check a sample project to see if it works for you.

Read more ->>

SwiftKey Clarity Beta: Android keyboard written in Clojure

In case you haven't hear yet: a week ago SwiftKey released their new experimental keyboard called Clarity. Its killer feature is powerful multi-word auto-correction that does not just look words up in the dictionary, but analyzes what you have written and fixes entire phrases. Clarity is still in its beta phase, some features are missing (no swiping as of yet), but @adampclements and his team did and continue to do a great job, so I'm sure the lacking functionality will be implemented in the near future.

Under the hood Clarity uses most of the Clojure-Android toolchain: lein-droid, Neko, Skummet and obviously our special Android-compatible Clojure build. Over the course of developing Clarity Adam contributed to many Clojure-Android projects, and drove some of the important architectural decisions. Overall, Clarity is a massive application in terms of complexity and used libraries, so being written in Clojure it proves that CoA can be used for serious projects. I wish Adam and SwiftKey to hit that sweet 1.0 soon, and I drink to one more app in CoA ecosystem!

For more posts check out the Archives Web page >>