It takes only a few weeks of intense Fluttering before you quickly realize using callbacks to manage state and data flow across your app is a big pain in the ass.
Before you know it, your callbacks are 4 to 5 levels deep, changes reflect at a snail's pace, and you start struggling to recognize your codebase should you take any break. Oh, and heaven forbid you forget to call 'SetState' – that's when the real chaos begins.
I know — because I've been there. It's something you wouldn't wish upon your worst enemy. So I knew it was time to take that big leap in my Flutter learning journey once I saw the signs.
Picking a StateManagement tool
Thankfully, the choice was easy.
Unlike most people, I didn't get stuck deciding what to go with when considering the plethora of choices out there. I simply picked one and stuck with it since then.
But this couldn't be possible without people like Kiishi, Jide Guru, and Precious. They couldn't stop raving about Riverpod, and I'm immensely grateful that they didn't.
It wasn't an easy journey either
I started learning Flutter precisely on July 12.
I can never forget that day as it was a turning point in my life.
A friend who was meant to handle the mobile part of a project we both ideated on while I dealt with the backend suddenly ghosted after we had a few clashes.
We had applied for a Startup Grant I was very interested in and I couldn't pull out. I either make it work or die trying. And so my Flutter journey began.
I had a 3-month hard stop!
For the grant, you're given a choice: either have your MVP up and running within three months, or you won't receive any support. Given my tight schedule and limited time, I couldn't afford to waste a single moment; my sole focus was simple: Building — which I did.
Fast Forward to today, we already have a working MVP and we have two weeks left to squash bugs. And Riverpod has been quite helpful along the way. It was a breath of fresh air.
Sadly, many people find Riverpod so hard and complicated
They say it has so many options to choose from.
Even worse — "these options basically do the same thing", one said. The jargon can be overwhelming, from hooks to Freeze, generators, annotations, and whatever new buzzword pops up tomorrow.
And they are right.
But what they forget is that you don't need to use everything a package gives you to make a standard Mobile app. As someone rightly told me a time ago "you can get by using a relatively small subset of the features to cover the cases you’ll need".
That's precisely what I did.
So in the upcoming series of articles, I'm going to share my approach with you.
Don't worry; if I, someone who barely started learning how to write web programs just on April 14th, can grasp these concepts, I'm confident you can too.
I'll provide code examples, and snippets, and be completely transparent about the mistakes I made along the way. There will be no holding back, and we'll tackle Riverpod together.
No holdbacks. Promised!
Top comments (2)
Really nicely written prelude of the upcoming series. I definitely look forward to the remaining articles!
Please also discuss the app architecture and folder structure you were able to come up with to help your MVP scale, in the limited time you had.
Hi, Moyin.
thanks for the feedback, means a lot to me.
For sure, I will add that to the backlog of articles to write. release the second episode in the series today, if you care: link here
thanks for the reminder :)