← Back to list

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.

Flutter Nik · 2026-01-16 04:33 · 0 claps · 4.3 min read paywalled
#flutternik #learn-flutter #learnflutteronline #flutter #learn-flutter-free
Open on Medium ↗
Wiki topics: 📱 · Mobile Development

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 http package)
  • 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