miso
obelisk
Our great sponsors
miso | obelisk | |
---|---|---|
18 | 26 | |
2,091 | 880 | |
- | 1.8% | |
0.0 | 0.0 | |
9 days ago | 8 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.
miso
- haskell todo list app (beginner)
-
jsaddle + firefox
Patching jsaddle by applying this commit made JSaddle usable in Firefox for me, but it has the downside that preventDefault/stopPropagation no longer work (see this issue for more info).
- Resurrection/modernization of an old Haskell+Haste project (boardgame Yinsh)
- School of Haskell: Basics
- JavaScript Hydration Is a Workaround, Not a Solution
- Web development in Haskell
-
The Big List of Haskell GUI Libraries
Miso does support jsaddle, docs mention this under the "Live reload with jsaddle" section, although it could be more prominent.
-
A small benchmark for functional languages targeting web browsers
For those interested in DOM-related benchmarks using GHCJS. Miso has some benchmarks here: https://krausest.github.io/js-framework-benchmark/current.html (Ctrl+F `miso`)
-
Options for a frontend of demo for a toy app
ghcjs is the way to go for you, and soon it might be asterius. i do not know how hard it is to set ghcjs up without a framework. but frameworks like obelisk (based on reflex-dom), shpadoinkle, and miso automate that for. i personally like obelisk for its functional reactive programming but it can get awkward and get in your way. so if gui programming is just a means to the end of this one small application and you are not really interested in it nor functional reactive programming, shpadoinkle or miso might suit you better. miso implements the elm architecture (also "TEA", "functional model view controller") and shpadoinkle implements something directly equivalent to the elm architecture. but shpadoinkle achieves more composable widgets by minimalizing the elm architecture. so i recommend shpadoinkle for its better concept although miso is more mature.
-
How do you deal with GUI?
via ghcjs (miso, etc.)
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.
ihp - 🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness
graphite - Haskell graphs and networks library
hevm - Dapp, Seth, Hevm, and more
reflex - Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.
vscode-ghc-simple - Simple GHC (Haskell) integration for VSCode
Agda - Agda is a dependently typed programming language / interactive theorem prover.
reflex-native - Framework for writing fully native apps using Reflex, a Functional Reactive Programming library for Haskell.
adjunctions - Simple adjunctions
containers - Assorted concrete container types
psqueues - Priority Search Queues in three different flavors for Haskell
helf - Haskell implementation of the Edinburgh Logical Framework