View on GitHub

Haskades

A high-level framework for BB10

Download this project as a .zip file Download this project as a tar.gz file

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 haskades_run.h < Types.hs

Where Types.hs is a Haskell source file containing a sum type declaration named SignalToUI and another named SignalFromUI which fully specify the communication possible between the UI and the backend. QML code can access these signals 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 qnxnto-arm cross-compiler built from GHC HEAD.

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.

Examples