3 ways to manage state in a Flutter app