Work

Personal · Flutter · open source

Jokes App

A JokeAPI client built as clean-architecture packages.

  1. Challenge

    I wanted one small app to practice clean architecture and to compare state-management patterns on the same code.

  2. 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.

  3. 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
Jokes App

Screenshots