A Web Developer's First Experience Building an App with Flutter

dev

A Web Developer's First Experience Building an App with Flutter

flutter

flutter

Why I Chose Flutter

As a web developer, I started using Flutter for one simple reason:
I wanted to publish an app on the App Store.

At first, I considered building a PWA (Progressive Web App), but I learned that web apps often get rejected during App Store review. So I explored alternatives like React Native and Flutter.

Eventually, I chose Flutter because:

  • It’s closer to native performance,
  • Provides a more consistent UI,
  • And tends to have fewer App Store approval issues.

Challenges I Faced Using Flutter

1. Adapting to Dart

I was already familiar with JavaScript, Python, and Java, but Dart was new to me.
Thankfully, I used Cursor—an AI coding tool—to quickly get up to speed and write code more efficiently.

2. Choosing a Database

At first, I considered using Supabase, but for a simple MVP, I realized an on-device SQL solution made more sense.
I ended up using the sqflite package and got help from Cursor when writing queries and handling logic.


Reflections on Flutter Development

As a Web Developer Adapting to Mobile

  • I began by learning how to install Flutter and understanding its project structure.
  • Although Android has higher market share in Korea, I noticed most people around me use iPhones, so I prioritized iOS development.
  • I used Xcode to run the iOS simulator and managed Flutter via terminal.
  • I relied on AI (like Gemini or Cursor) for most of the code, asking specific questions whenever I didn’t understand something or ran into bugs.
  • If I had tried to write everything from scratch by reading the documentation alone, it would’ve taken much longer.

Flutter’s Downsides

  • Hot reload was inconvenient via CLI. Although auto-reload is possible, I kept manually pressing r in the terminal.
  • Every time I added a dependency, I had to run pub get, and even minor errors required a full rebuild.
    On my M1 Mac mini, this significantly impacted productivity.
  • Sometimes I wondered if building with React Native or simply wrapping a web app might’ve been more efficient.
    But in the end, Flutter was likely a safer choice for App Store approval.

AI vs Human: What Am I Better At?

AI writes code at unbelievable speed, but…

  1. It struggles with consistency.
    Fixing problem A sometimes breaks part B, and AI doesn't always catch that.

  2. It has limited memory.
    Even if AI writes A, B, and C, it often forgets important details from A when debugging.

  3. Human intervention is always needed.
    AI code rarely works perfectly on the first try, especially for more complex logic.

  4. For solo developers, AI is a massive productivity booster.
    But over-relying on it can make it difficult to understand your own codebase.

  5. Modularization and clear TODOs are essential.
    Without structure, AI-generated code quickly becomes hard to manage.

  6. My advantage over AI is long-term memory and contextual awareness.
    I understand the big picture, the architecture, and how parts interact—something AI still lacks.


Conclusion

✅ Build fast and learn as you go
✅ Leverage AI wisely but don’t delegate everything
✅ Own the direction and structure of your code
✅ Focus on productivity, especially as a solo developer

We’re in an era where AI tools are becoming indispensable, but the developer’s role is evolving—not disappearing.

Don’t let AI replace you.
Let it empower you.