// the take
This is the companion repo for a 2019-era Udemy course that builds a time-tracking app with Flutter and Firebase, walking through auth, Firestore CRUD, forms, and state management. It's for someone following the course lesson-by-lesson, not for anyone looking for a library or app to actually adopt.
It deliberately shows the same features implemented three different ways (raw StreamBuilder/BLoC with StreamControllers, ValueNotifier, and ChangeNotifier) so you can compare state management tradeoffs directly instead of taking one approach on faith. It also has a real test suite — unit tests for models and BLoCs, widget tests with mockito for forms and navigation — which most tutorial repos skip entirely.
Last pushed March 2021: it predates sound null safety, uses RaisedButton and other widgets removed from current Flutter, and the Firebase Auth/Firestore API calls won't match the SDKs you'd install today. Firebase setup is manual (copy google-services.json / GoogleService-Info.plist by hand) instead of the now-standard flutterfire configure CLI. The hand-rolled StreamController BLoC pattern it teaches is exactly the boilerplate the ecosystem moved away from in favor of the bloc package or Riverpod, so the patterns themselves are dated, not just the dependencies. Running this fresh in 2026 means spending more time fixing broken APIs than learning anything transferable.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →