finds.dev← search

// the find

alibaba/fish-redux

★ 7,275 · Dart · Apache-2.0 · updated Feb 2022

An assembled flutter application framework.

Fish Redux is Alibaba's Xianyu team's opinionated Flutter framework that layers Redux state management on top of Flutter's widget system, adding structured component composition, list adapters, and AOP middleware. It's aimed at teams building medium-to-large Flutter apps who want strict architectural separation. The last commit was February 2022 — this project is effectively dead.

- The Adapter pattern for list rendering is the genuinely interesting idea here: list items are independent components with their own state slices, so scrolling doesn't trigger unnecessary rebuilds across the whole list — better than naive ListView.builder approaches

- AOP middleware layer ships with real utilities: debounce, throttle, memoize, and performance tracing built-in, not bolted on after the fact

- Connector abstraction for parent-to-child state slicing is type-safe and avoids prop drilling without requiring every child to read from a global store directly

- Test coverage is unusually thorough for a framework of this era — dedicated test directories for each subsystem (adapter, connector, AOP, lifecycle) with widget-level integration tests alongside unit tests

- Dead as of February 2022. Flutter has moved substantially since then — null safety, Dart 3, Material 3 — and the community has settled on Riverpod and Bloc. Adopting this means inheriting an unmaintained dependency against a fast-moving platform

- The boilerplate is genuinely punishing: every component requires six files (action, effect, reducer, state, view, component). The example todo app has 20+ files for two screens. Smaller teams will spend more time on scaffolding than on product

- Concepts multiply fast — Component, Adapter, Connector, Dependent, Dependencies, Effect, Reducer, Middleware — and the English documentation is incomplete, with several key concept pages only in Chinese

- No meaningful migration path exists. If Flutter 3.x breaks something (and the framework predates several breaking changes), you're patching it yourself since upstream is gone

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →