Haskades lets you write apps for the BlackBerry 10 platform with sweet Cascades-powered QML UIs, without needing to delve into C++. Back-end code is written using the high-level Haskell language. The only C++ is autogenerated.
Usage
./haskades HaskadesBinding.hs haskades_run.cpp < Types.hs
Where Types.hs is a Haskell source file containing a record type declaration named Slots and a sum type declaration named Signals which fully specifies the communication possible between the UI and the backend. QML code can access these signals and slots on the app context object. Haskell code can emit signals by using the emit function exported from the generated HaskadesBinding. The emit call is threadsafe.
Text and Lazy Text, as well as standard String values all end up as QString in the QML, and vice-versa. UTCTime becomes QDateTime. Int, Double, and () are passed through fairly directly.
Getting Haskades
To make effective use of Haskades, you will need to build a GHC cross-compiler, which requires some patches to GHC and this and this patch to base. Or, just download this fully-patched source and follow the build instructions in README.BB10. You will need an existing version of GHC or the Haskell Platform to build it.
Install the tool from Hackage:
$ cabal install haskades
Or build it from source (requires mustache2hs):
$ make && make install
This platform is still early, so let us know how it works for you.
- Please report issues on Github.
