FxDart 101

Практический курс. Каждый урок — это короткая лекция с живыми демо и playground: код компилируется настоящим компилятором Dart и выполняется в вашем браузере. Проходите разделы по порядку или переходите сразу к нужной функции ниже.

Впервые здесь? Начните с какой слой — данные уже есть, I/O с лимитом, события во времени или отказ как значение. Затем ввод в pull: fxmapfiltertaketoList, затем concurrent. Задачи: поиск с debounce · ограниченный concurrent fetch.

📖 Теория функционального программирования — учебник в основе курса →

📒 Посмотрите в деле: Daily Ledger — полноценное приложение на FxDart →

Раздел 1 · Начало работы

Модель конвейера: строим лениво, запускаем терминальным оператором.

Раздел 2 · Генерация последовательностей

Источники, с которых начинается конвейер.

Раздел 3 · Преобразование

Меняем форму каждого элемента — лениво.

Раздел 4 · Фильтрация & дедупликация

Оставляем только нужное.

Раздел 5 · Срезы

Окна, префиксы, суффиксы и блоки.

Раздел 6 · Объединение

На входе несколько последовательностей, на выходе одна.

Раздел 7 · Агрегация

Терминальные операторы: тянут конвейер и выдают значение.

Раздел 8 · Доступ & предикаты

Получаем отдельные значения и проверяем элементы.

Раздел 9 · Функции для объектов (Map)

Утилиты FxTS для объектов, портированные на Map в Dart.

Раздел 10 · Утилиты для функций

Комбинаторы и вспомогательные функции.

Раздел 11 · Асинхронность & конкурентность

Модель FxAsyncIterable — главное преимущество FxDart.

Раздел 12 · Util

Ограничение частоты и случайность.

Раздел 13 · Typed errors

The Kotlin Arrow approach, ported: either, Raise, bind, ensure, error accumulation with Nel, and pipeline-fused validation. Straight-line code, typed failures, no wrapper tower.

Раздел 14 · Event streams (push)

FxDart's push side — Rx-style operators over plain Dart Streams, bridging into the pull pipelines.

Раздел 15 · Jobs

Cross-surface programs — the reason to import one package rather than three.