I Learned Flutter in 90 Days. Here’s the Exact Plan I Followed.
No bootcamp. No degree. Just 90 days and a plan I’m about to share with you.
I Learned Flutter in 90 Days. Here’s the Exact Plan I Followed.

No bootcamp. No degree. Just 90 days and a plan I’m about to share with you.
The Problem With “Learning Flutter”
Here’s what I used to do:
Watch a tutorial. Feel motivated. Start building. Get stuck. Watch another tutorial. Repeat.
Six months later, I had watched 47 hours of content and built… nothing that worked.
Sound familiar?
The problem wasn’t that I wasn’t learning. It’s that I was learning randomly.
I was collecting knowledge like Pokemon cards instead of building actual skills.
And then one day, I got tired of being stuck.
I gave myself 90 days. One clear goal: build something real.
Not “learn Flutter.” Not “understand Dart.”
Build. Something. Real.
That shift changed everything.
What I Wish Someone Had Told Me on Day 1
Learning Flutter isn’t hard.
What’s hard is knowing what to learn and in what order.
Most people try to learn everything at once:
- Widgets
- State management
- Animations
- Firebase
- API calls
- Clean architecture
And they drown.
Here’s the truth I learned the hard way:
You don’t need to know everything. You need to know enough to build ONE thing.
Then build the next thing.
That’s it.
So I made a plan. Week by week. Focused. Simple.
And it worked.
The 90-Day Plan (Week by Week)
Week 1–2: Learn Just Enough Dart
I didn’t try to master Dart. I learned just enough to not feel lost.
What I focused on:
- Variables, functions, and classes
- Lists and maps
- Basic OOP (just the basics)
What I skipped:
- Advanced features
- Generators
- Mixins (came back to this later)
My daily routine:
- 1 hour reading Dart docs
- 1 hour solving basic problems on DartPad
Reality check: I still Googled syntax every day. That’s normal.
Week 3–4: Build Ugly UI
This is where most people get stuck. They try to make things look perfect.
I didn’t.
I built the ugliest apps you’ve ever seen. But they worked.
What I built:
- A counter app (yes, the boring one)
- A to-do list (without persistence)
- A simple calculator
What I learned:
- StatelessWidget vs StatefulWidget
- Basic layouts (Column, Row, Container)
- How setState() works
Key insight: I stopped watching tutorials and started building. Even if I had to Google every single line.
Week 5–6: Make It Look Less Terrible
Now I care about design.
Not beautiful. Just… not painful to look at.
What I focused on:
- Using real colours (not just Colors.blue)
- Adding padding and spacing
- Understanding constraints (this was confusing)
What helped:
- Looking at real apps on Dribbble
- Copying layouts (not code, just the visual structure)
- Learning about Material Design basics
I rebuilt: My to-do app. Same functionality. Better UI.
Week 7–8: Add Real Features
This is where it got interesting.
I added features that actual apps have:
What I learned:
- Saving data locally (SharedPreferences)
- Navigation between screens
- Passing data between screens
- Basic forms and validation
What I built:
- A notes app with local storage
- A habit tracker (simple version)
Breaking point: I got stuck on navigation for 3 days. I almost quit.
But I didn’t. I just kept Googling and trying different things until it clicked.
Week 9–10: Connect to the Internet
This was scary. But necessary.
What I focused on:
- HTTP requests (using the
httppackage) - Parsing JSON (still hate this, but I understand it)
- Showing loading states
- Handling errors
What I built:
- A weather app using a free API
- A quote-of-the-day app
Reality check: My code was messy. I had no architecture. But it worked.
Week 11–12: Learn State Management (Just One)
I chose Provider because it seemed simple.
Not Riverpod. Not Bloc. Not GetX.
Just Provider.
What I did:
- Watched one good tutorial on Provider
- Refactored my habit tracker to use it
- Built a shopping cart app to practice
Key lesson: I didn’t try to understand every state management solution. I picked one and got good at it.
Week 13: Build Something You’d Actually Use
This was the game-changer.
I stopped building “learning projects” and built something I personally needed.
For me, it was a simple expense tracker.
Why this mattered:
- I cared about finishing it
- I knew exactly what features it needed
- I used it every day, so I kept improving it
What I included:
- Local storage
- Simple charts (using
fl_chart) - Category filtering
- Date pickers
It wasn’t pretty. But it was mine.
The Exact Daily Routine I Followed
Here’s what my average day looked like:
Morning (1 hour):
- Read one concept (docs, article, or video)
- Take notes in a simple text file
Evening (1–2 hours):
- Write code
- Build or fix something
- Google when stuck (a lot)
Weekends:
- Build something new from scratch
- Or refactor something old
Total time: 10–15 hours per week.
Not crazy hours. Just consistent.
What Actually Made the Difference
Looking back, here’s what worked:
1. I built things immediately
After learning a concept, I used it the same day.
Not tomorrow. Not next week. That day.
2. I stopped tutorial hopping
One tutorial per topic. Then I built something with it.
No more watching 10 videos on the same thing.
3. I celebrated ugly code
My first apps looked terrible. My code was a mess.
But they worked.
And that’s what mattered.
4. I asked for help (finally)
I joined Flutter communities on Reddit and Discord.
When I got stuck for more than 2 hours, I asked.Most people are kind. They helped.
Most people are kind. They helped.
5. I tracked my progress
I kept a simple log:
- Week 1: Built counter app
- Week 2: Learned about lists
- Week 3: Built to-do app
Seeing progress kept me going.
What I’d Do Differently
If I could start over, I’d:
- Skip perfection earlier. I wasted days trying to make things perfect.
- Learn Git from day 1. I lost code. Multiple times.
- Build smaller projects faster. Instead of one big project, build 10 tiny ones.
- Focus on debugging skills. Half my time was spent fixing errors. Learning to read error messages would’ve saved me hours.
If You’re Starting Today
Here’s my honest advice:
Don’t try to learn everything.
Pick one clear goal: “I will build [specific app] in 90 days.”
Then work backward:
- What features does it need?
- What concepts do I need to learn?
- In what order?
Learn one thing. Build with it. Move to the next.
And please, please don’t compare your Day 10 to someone else’s Year 3.
You’re not behind. You’re just starting.
메타데이터
- post_id
- 0a7fe409ba82
- slug
- i-learned-flutter-in-90-days-heres-the-exact-plan-i-followed-0a7fe409ba82
- url
- https://medium.com/@ravipatel84184/i-learned-flutter-in-90-days-heres-the-exact-plan-i-followed-0a7fe409ba82
- canonical_url
- https://medium.com/@ravipatel84184/i-learned-flutter-in-90-days-heres-the-exact-plan-i-followed-0a7fe409ba82
- author_url
- https://medium.com/@ravipatel84184
- status
- ok
- fetched_at
- 2026-06-09 15:37:30