reflex
obelisk
Our great sponsors
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- SonarLint - Clean code begins in your IDE with SonarLint
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
- InfluxDB - Access the most powerful time series database as a service
reflex | obelisk | |
---|---|---|
15 | 26 | |
1,032 | 836 | |
0.8% | 1.1% | |
4.7 | 0.0 | |
7 days ago | 5 days ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
reflex
-
Interactive animations
FRP solutions sound very attractive. But reflex seems to be stuck on the outdated GHCJS, and I haven't been able to get it to build. The newer JS output in GHC doesn't yet have DOM support. And even if I used one of those, figuring out how to interact with a LaTeX renderer might be tricky.
-
The Quest for the Ultimate GUI Framework
I only have experience using Reflex, which I regard as the main contender for FRP UI libraries in the Haskell sphere. It's got a flashy website, but I think the documentation is a bit disorganized -- it took a long time for me to figure out how to get going with the library (you find some pieces of knowledge scattered here and there, if you look hard enough). My plan was to learn it well enough to onboard other people, but I don't think I could convince anyone who hasn't already decided that they're gonna make UIs in Haskell no matter the required effort.
-
Simple GHC stack for a novice
Once someone has spent a bunch of time with Haskell and sees the value, they will find Nix if it makes sense. Maybe they'll want to play with https://reflex-frp.org, or they'll discover they want a better way to package 3rd-party dependencies, or they start using NixOS and want to nix all the things, etc. etc. Or, maybe they'll never find a use for it, and that's okay.
- Functional Reactive Programming
-
Exploring ideas in Haskell
Now, I've been convinced to take another look at reflex. This quick reference seems very useful, most other resources seem to always discuss reflex-dom specifically. I'm not really interested in that.
-
Is Haskell capable of this?
Have a look at https://reflex-frp.org/, or https://owickstrom.github.io/gi-gtk-declarative/, they are an interesting and different way of working with UI in a non imperative way.
-
Why Do We Need Transpilation into JavaScript?
At present, here at Typeable we develop frontend in Haskell and use the web framework Reflex and the functional reactive programming (FRP). The source code in Haskell is transpiled into the JavaScript code using GHCJS.
-
Comparing Elm with Reflex
Reflex is the framework that allows creating reactive web applications in Haskell.
-
Discussion Thread
Also you’re the Haskell guy no? Found this while reading a Wikipedia article
-
Creating a Haskell Application Using Reflex. Part 1
Hi there! My name is Nikita. At Typeable, we develop frontend for some of our projects using the FRP approach, specifically, its Haskell implementation – reflex web-framework. The resources that offer guidelines for this framework are quite limited, so we decided to fill this gap more or less.
obelisk
-
Why are haskell applications so obscure?
Regarding smartphone applications, I've recently been working on a simple application with Obelisk (https://github.com/obsidiansystems/obelisk), which uses GHCJS and is pretty usable once you've gotten into Reflex a bit, though it produces somewhat opaque type errors sometimes. I do not know though whether Obelisk can do anything beyond webview apps. If so, I do not know how yet.
You can make all those things in haskell, and I do professionally. Frontends (entirely in haskell), native IOS and Android applications, Servers, and Games. In fact the framework Obelisk does most of these all out of the box.
-
Any advice on making a mobile app using Haskell?
From researching seems like Obelisk might be the right tool for this, but wanted to know if others had built mobile apps in Haskell and their experience/advice if this is a good root to take?
-
Building a Haskell CRUD stack with Obelisk for PowerZonePack
Thanks for the comment! We can honestly say that Obelisk is far from perfect, but we're continuously improving the project in our daily basics. And that's why we encourage you to start your adventure with the lib anew. If you still miss a guide to routing with Obelisk, please read this doc. Our team would be happy to answer your further question regarding Obelisk; feel free to email us anytime!
Thank you for your feedback; by writing this post, we wanted to familiarize the audience with using Haskell language as a universal, full-stack language. If you are interested in diving into more technical details, a good starting point would be to take a look at the Obelisk's codebase.
-
GitHub - NorfairKing/haskell-dependency-graph-nix
I also had a use case where I needed to extract the nix derivation dependencies of haskell packages: https://github.com/obsidiansystems/obelisk/pull/933
-
Web development in Haskell
There's also GHCJS, with https://github.com/obsidiansystems/obelisk being (probably) the best choice, but personally I found it extremely tedious to set up a dev environment (not a nix guy) and there's also the learning curve of FRP.
-
The Big List of Haskell GUI Libraries
https://github.com/obsidiansystems/obelisk, https://shpadoinkle.org/
-
Monthly Hask Anything (July 2022)
I can't speak to the nicest way, as I haven't actually developed any Android apps with Haskell, but I've been meaning to give Obelisk a try.
What are some alternatives?
reflex-platform - A curated package set and set of tools that let you build Haskell packages so they can run on a variety of platforms. reflex-platform is built on top of the nix package manager.
Elm - Compiler for Elm, a functional language for reliable webapps.
sodium - Sodium - Functional Reactive Programming (FRP) Library for multiple languages
dunai - Classic FRP, Arrowized FRP, Reactive Programming, and Stream Programming, all via Monadic Stream Functions
reflex-dom - Web applications without callbacks or side-effects. Reflex-DOM brings the power of functional reactive programming (FRP) to the web. Build HTML and other Document Object Model (DOM) data with a pure functional interface.
purescript - A strongly-typed language that compiles to JavaScript
reflex-dom-contrib
rhine - Haskell Functional Reactive Programming framework with type-level clocks
vscode-ghc-simple - Simple GHC (Haskell) integration for VSCode
reflex-native - Framework for writing fully native apps using Reflex, a Functional Reactive Programming library for Haskell.
helm
gi-gtk-declarative - Declarative GTK+ programming in Haskell