https://github.com/oakes/lein-fruit

This is the first release of lein-fruit, the iOS equivalent of lein-droid, 
allowing you to build native iOS apps in Clojure and/or Java. It is also 
included in the latest release of Nightcode <https://nightcode.info/>. It 
is really just a thin wrapper around RoboVM <http://www.robovm.org/>, the 
bytecode-to-native translator and bridge for iOS APIs. The plugin also 
includes a few useful templates to get you started.

One caveat is that, due to the weird way Clojure imports Java classes, 
which I discussed here 
before<https://groups.google.com/forum/#!msg/clojure/tWSEsOk_pM4/y7kDQpEV-1gJ>, 
you can't import most of RoboVM's iOS classes without getting a nasty 
compile error. As a workaround, you must invoke these classes dynamically. 
The Clojure template in lein-fruit provides some convenience functions for 
this, but ultimately it is a big limitation.

So why build this? Games! Nightcode already had a Clojure LibGDX template, 
allowing you to compile a desktop and Android game from the same Clojure 
codebase -- and now it supports iOS, too! And since games don't really use 
platform-specific APIs, the aforementioned problem isn't a big deal.

Additional caveats: There is no REPL or runtime evaling due to iOS 
executable memory restrictions. Also, I don't own a Mac or an iOS device, 
so I had to do all my development in a VM with the iOS simulator (a VM 
inside of a VM?). Naturally, I would like to hear about any bugs. Thanks!

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to