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:
- Open issues with suggestion of better approaches or ideas for the app
- Follow along with the series and build your own app
- Follow @abraham and @pblatteier notifications of new posts
- Share this on Twitter
- Star the GitHub repository
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.
Top comments (6)
Great article there. Tell me about the experience in Flutter. I myself have been using flutter for 8 months now, and I conclude myself about developer experience, delightful and customizable UI that your wireframe app would turn into an actual app.
But be warned on accessing native apis such as Bluetooth, NFC, or GPS. You'll end up learning 3 languages instead of 1(Better than learning 4 languages + 1 CSS)
Integrating with native APIs is an area that I've not done much in yet. But I look forward to seeing how it goes later in the series.
Nice idea!
Good luck for the adventure :-)
Thanks!
Hey I'm doing the same, I've one app the I wanna develop using flutter. The last week I've learned a lot but I'm still a newbie. I hope this month start to develop.
I'll be following you progress.
Fantastic. Please ask any questions you might have.