Personal · Flutter · open source
Jokes App
A JokeAPI client built as clean-architecture packages.
-
Challenge
I wanted one small app to practice clean architecture and to compare state-management patterns on the same code.
-
Approach
A JokeAPI client that queries by category, language and type. A data package on dio returns typed results instead of throwing, and a domain package wraps it, linted with very_good_analysis and tested with mocktail. I built the app four times on those packages: setState on main, and BLoC, Riverpod and InheritedWidget on their own branches.
-
Result
Open source on GitHub, with one branch per state manager, so the four versions can be compared side by side on the same data and domain code.
Stack
-
FlutterUI and filters
-
DartAPI client and repository packages
-
BLoCThe bloc branch
-
RiverpodThe riverpod branch
Screenshots


