Any particular reason you personally prefer Riverpod?
Any state management approach requires you to adapt your way of thinking, whether that be BLoC, Riverpod, Redux or anything you want to use.
Rivepod gained popularity because it's really simple to pick up: create a Notifier, create a Provider for it, and observe, while some other approaches require additional boilerplate, setup, and understanding.
Your approach would work if you are only observing that state from a single widget, which might not always be the case. Additionally, assuming useState is using setState under the hood means it will rebuild the whole widget on change, while with Riverpod, you have the flexibility to wrap any part of a complex widget into a Consumer or listen to only part of the exposed state on the Notifier with .select().
To put it simply: - Notifiers are used for app state - Hooks are used for ephemeral state (local widget state)
Hope this clears it bit for you.
Here’s a great guide on using Riverpod: https://codewithandrea.com/articles/flutter-state-management...
Ah yes, those fluttering countries and their fluttery ways
One of the main goals of local-first is so that the user of a local-first application owns their own data. (See Martin Kleppmann's paper on this).
As such, local-first applications don't necessarily have a concept of a central server. `git` is local-first, though most teams synchronize to a hub such as Github or Gitlab. This is a design principle to get away from having to sync to the cloud, making it more difficult to monetize as a SAAS. There seems to be a growing trend of people promoting offline-first applications as local-first, but structuring it to still lock people's data into their SAAS. (If you want to lock them in, then say so -- call it offline-first).
A true local-first mobile app would allow me to collaborate with someone in the same room using Bluetooth, even out somewhere where I don't have wifi, cell service or Starlink
See:
- https://martin.kleppmann.com/papers/local-first.pdf
- https://www.inkandswitch.com/essay/local-first/ (Same, but in html)
account-5•3d ago
kobieps•2d ago
taormina•5h ago