2025-03-14 –, Tutorials A
Language: English
An introduction to Functional Reactive Programming and a tutorial on building Android, IOS or web apps using Haskell, nix and the Reflex FRP libraries.
For all programmers, when exposing our work to the lay community, regardless of how impressive or sophisticated our solution is we are confronted with the issue of distribution. This generally results in a desktop, mobile or web app.
For a lot of developers they are interested only in results and the path of distribution are a means to an end and not the end itself. They just want to get their software to the end user, and do not wish to be innovating on the front-end.
So with a frontend framework, they want to use a language they know, they want to built something quickly, they want it to scale easily and most importantly they want minimum maintenance.
This tutorial aims to get you up to speed fast and provide a core app that can be modified to your needs. Having the ability to quickly provide an app interface for any of your projects will be a really boon to the developer and a nice addition to your toolbox.
While there is no perfect solution in any language in Haskell the framework that comes closest is Reflex FRP. The Function Reactive Programming approach has a lot of promise and the Reflex implementation is arguably the most feature complete. Reflex with its mobile support offers a lot out of the box.
However getting started, learning and becoming proficient in Reflex is difficult, the framework suffers from a lack of up to date tutorials, learning material and documentation, this is doubly true when you which to use Reflex without its full-stack batteries included and opinionated implementation Obelisk.
The intention of this tutorial is to get you started and provide you with a core app you can easily tailor to your needs. To highlight common pit falls and what to do when you get stuck, what resources are available and what to expect when using the framework. The intention is to get you to a point of proficiency in which you can further developer your understanding of the framework by writhing code instead of reading documentation or staring at code examples.
I am a Haskell developer at the Least Authority working on the opensource project tahoe-lafs and tahoe-lafs-mobile using Reflex-FRP.
I am an active maintainer and contributor to tiny-wlhs a haskell wayland project intended to provide haskell bindings to wlroots.
I volunteer in my free time building software and apps for local social enterprises.
I am currently working on my own haskell frontend framework Moka that aims to be a much simpler approach to frontend development in haskell and leverage the new developments in the GHC JS backend.
I grew up in Ireland but live in Valencia, I spend most of my free time, coding, reading, swimming or just playing football in the sun.