https://genotechies.medium.com/flutter-state-management-approaches-with-examples-setstate-bloc-rx-provider-riverpod-aad48f79a255