DEV Community

Cover image for My Flutter Internship Learning Journey: Two Projects, One Progression
Yadnesh Teli
Yadnesh Teli

Posted on AI-assisted

My Flutter Internship Learning Journey: Two Projects, One Progression

Intro Post

My Flutter Internship Learning Journey: Two Projects, One Progression

A Dev.to blog series about learning Flutter the hard way — and then the right way.

I am an MCA student based in Mumbai, currently doing a Flutter developer internship. Over the past few weeks I built two Flutter apps as part of my learning journey. On the surface they look similar — both are Flutter apps, both deal with real features, both use Riverpod. But the way I approached them could not have been more different.

The first project, a shopping app, started with zero knowledge of proper Flutter architecture. I just started building — models, providers, screens — figuring things out as I went. Halfway through, I realised the codebase was becoming hard to manage. So I stopped and refactored the entire thing to MVVM with repositories and viewmodels. It was painful but I learned more from that refactor than from anything else.

The second project, DevFeed — a Hacker News reader — is where I applied everything I had just learned. I set up MVVM from the first commit. I never had to do a big painful refactor because the architecture was right from day one. It shipped to v1.0.1 with a changelog and a GitHub Actions release workflow.

These two projects together tell a story I think a lot of Flutter beginners will relate to. So I am writing about both, as two parallel series.

What the two series cover

Series 1 — Building a Flutter Shopping App: From Zero to Architecture

This follows the shopping app from scratch. You will see me build it the naive way, hit the walls, and then migrate to proper MVVM. If you have ever written Flutter code that became a mess and wondered how to fix it, this series is for you.

Series 2 — Building DevFeed: A Proper Flutter MVVM App from Day One

This follows DevFeed from the first commit. No big refactor needed — because the architecture was planned upfront. This series shows what it looks like when you apply the lessons from Series 1 before you start writing features.

Beyond the Basics: Deep Dives & State Management Alternatives

Following both projects, I also explore alternative paradigms that broadened my engineering toolkit: GetX, Flutter BLoC, Supabase as a Firebase alternative, implicit & explicit animations, and GraphQL.

Who this is for

  • Flutter beginners who are learning by building real projects
  • Students doing internships who want to write production-quality code
  • Anyone who has built a messy Flutter app and wants to understand MVVM
  • Anyone curious about what a real learning-in-public journey looks like

The tech stack

  • Flutter & Dart
  • Riverpod for state management
  • Firebase Auth, Firestore, FCM
  • MVVM architecture with repositories and viewmodels
  • GitHub Actions for CI/CD automation

How to follow along

I will post both series in parallel, alternating weekly. Start with Series 1 Part 1 and Series 2 Part 1 simultaneously — they set up the contrast that makes the whole journey make sense.

Let us get into it.

Top comments (0)