В этой серии мы создаем приложение для списка задач, используя Haskell, GTK 4 и библиотеку Adwaita. Adwaita предоставляет множество полезных виджетов и стилей. Целевая аудитория — Haskellers среднего уровня с опытом разработки.
GTK 4 и Adwaita кодируют решения по доступности и стилю проекта GNOME (Руководства по человеческому интерфейсу). Libadwaita обеспечивает адаптивный дизайн и перекрашивание во время выполнения при переключении между светлой и темной темами. Мы используем набор инструментов haskell-gi, который автоматически генерирует привязки Haskell из библиотек GTK, соотносясь с C API.
Мы создаем приложение Adwaita, которое управляет ресурсами. Архитектура Elm (TEA) структурирует программу с тремя концепциями: Model (состояние), View (UI) и Update (изменения состояния через Messages). Effects — это побочные действия, возвращаемые Update.
Приложение Todo моделирует все как структуры данных. Model включает карту задач и следующий ID. Messages представляют взаимодействия пользователя, а Effects включают сохранение списка задач на диск. Полный проект находится по адресу https://github.com/Floreal-Technologies/adwaita-todo.
Ключевые сущности: Компании: Floréal Technologies, GNOME
Источник: Hacker News · Сводку подготовил HeadlinesBriefing