A month of Flutter

Abraham Williams - Dec 1 '18 - - Dev Community

Originally published on bendyworks.com.

Recently Uri Shaked wrote an inspiring article about his experience publishing a blog post each day for a month. I've decided to combine his great idea with my goal of becoming a better Flutter developer. For the month of December, I will be building a Flutter app and writing a daily blog post about the process.

My goals

  • Become a better Flutter developer
  • Practice writing concise blog posts
  • Practice writing project requirements

What I am building

For this challenge I will be building Birb, an image sharing social network dedicated to birds. An Instagram for birds, if you will.

Since I have not built the app yet, I don't actually know how much will get accomplished in December. Here are my planned MVP features:

  • Global stream page of all posted images
  • User authentication
  • Image posting
  • User profile page
  • Individual image page
  • Comments on image page

If I finish the MVP, I'll add more features. Some potential features, in no particular order:

  • Push notifications
  • #hashtags on images
  • A/B Testing
  • Themes
  • Friendship graph/following
  • Friends stream of images
  • Liking images

What to expect

Every day* I will create a new blog post describing my most recent progress. Over the month these small steps will hopefully add up to a nice app. The blog posts will mostly be short and to the point, covering a small widget or feature.

As this will be an ongoing development project where I will be experimenting with different patterns, don't expect everything to be implemented perfectly the first time. There will be refactors and bad choices along the way. I will, however, be following best practices like writing tests, running CI, linting, etc.

If you are new to professional development worfklows, you can follow the process and get a peak into how projects can be run. I will be writing the stories and implementing the features and my colleague Pearl will be reviewing progress and code.

Technologies

Some of the technologies I plan to use in Birb:

  • Flutter (duh)
  • Firebase Firestore for a database
  • Firebase Auth for user authentication
  • Firebase Cloud Storage for hosting images
  • Firebase Cloud Functions for serverless computing
  • Material Design for aesthetics
  • Device media APIs

How can I be a part of it?

What to be more involved? Here are some areas to start:

See you tomorrow when I create the initial Flutter app.

P.S., if you are in the Madison area, come to GDG Madison's Flutter Live Viewing Party on December 4th.

*Posting every day is my intention but I may take some days off.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .