5
3 Comments

A working Flutter Email Client, sorta

In my first update, I had mentioned refactoring the example email client app out of the Flutter Gallery, and into a new app I created with the goal of learning Flutter quickly and painlessly.

Learning I did. Was it quick and painless? Depends on who you ask. I found it to be painful, but quick.

First step was to literally copy the Dart files that belonged to this email app into my app. And immediately attempt compile & run. The goal here is not to cross our fingers that it just works. That ain't gonna happen, friend. But letting Flutter scream while it attempts to compile the Frankenstein I provided produces a todo list for me.

The rest of this process is a loop.

  1. Fix some errors
  2. Attempt to compile
  3. Go back to step 1 until the app just compiles and runs.

Hopefully after every iteration of this loop, we have fewer errors.

I need to exercise some discipline here. I can't let my ADHD go all perfectionist here. I don't know this language or framework. I also can't let my efficiency obsession to attempt to keep as much code as possible just because every line is technically working code that can teach me something. I need to focus on learning specific things, not just anything. I need to execute with a focus on moving forward.

Long story short, I nix a lot of stuff. Theming and I18N are the first to go. Anything I can't nix, I fix just enough keep Flutter from screaming at me. Little ashamed to admit but I even downgraded my Flutter version so that I don't have to fix a ton of null-safety issues the example code came with.

But I reach a milestone.

I have an email client app that compiles and runs on web and the Android emulator.

, Founder of Icon for Zero Inbox
Zero Inbox
on November 1, 2021
  1. 2

    Very out-of-the-box approach for learning a new framework, interesting!

    1. 1

      I've learned a lot of frameworks in the past and found that trying to get to a working, functioning app is often the best way to learn.

      Otherwise you end up learning things you may or may not like and won't have any output for a long time which is not only inefficient but also detrimental for motivation.

    2. 1

      I myself am a Flutter developer, Flutter is pretty awesome