Not so long ago I started trying to use Clojure for developing for Android, mostly for graphic. As a test project to run I decided to use Bocko with a few bundled examples.
First of all I started with ClojureScript, maybe because of expectations of React Native on Android. I made a port which works from a WebView, calls proxy object and draws on a SurfaceView, because of that it’s possible to use figwheel for livecoding. But this method requires a bit of java code, but works fast (painting appears after some delay, but it’s because port isn’t optimised, all other variants uses the same algorithm):
Then I tried just Clojure with
Clojure on Android, it’s a bit slower
and has a long startup time. Also not works with core.async and original Bocko,
because of lack of support of *.cljc
. But not requires java code. In action:
Also Clojure on Android affords Project Skummet that drastically improves startup time and performance, but nothing changes with the problem with third party libs. Looks better:
Source of the ClojureScript version.
Source of the Clojure version (configured to work with Skummet).