In this series, we are going to build a todo-list application using Haskell, GTK 4, and the Adwaita library. Adwaita will provide us with many useful widgets and styles. Let's dive in! This series' intended audience is intermediate Haskellers, with development experience with the language.
Adwaita is a library of GTK components that serve as the design language of the GNOME project. In short: Every decision that the GNOME project has made in terms of accessibility and style is encoded in libadwaita. Libawaita gives you many features: for instance it lets you create applications with responsive design, which are recolored at runtime when the desktop switches between light and dark themes.
Throughout this series we will use the haskell-gi toolkit, which auto-generates Haskell bindings from GTK libraries. You can find the whole project at https://github.com/Floreal-Technologies/adwaita-todo.
The Elm Architecture (or TEA) is a pattern for architecting interactive programs. At its core are three concepts: Model, View, and Update. Alongside those concepts we can find Message and Effects. This approach was broadly popularised by Elm, and lends itself quite well to taming the imperative nature of the GTK toolkit.
Source: Hacker News · Summarized by HeadlinesBriefing