How to successfully finish your first flutter project and what pitfalls to avoid
If you’re reading this… congratulation! that means you’re out of the tutorials/courses phase and you’re planning to start building your app.
I’m writing this to hopefully help total beginners with app development, also reflecting on my own experience. These are mainly the things I wish someone has told me before getting started with building my app.
I remember when I first started thinking about building my app I was very overwhelmed with how many ideas I can apply and the many tools I can use, I was stuck for a couple of weeks if not a whole month. I had two failed attempts at first but on the third time, I decided to carry on until the end. By observing what factors made me choose this 3rd project and stick with it I got inspired to write this article so that I’ll be able to save someone days of thinking and confusion.
First, let’s start with what is better to start with and then move on to what to avoid.
What project to build and how to come up with the best idea?
You can build so many things as a starter project, but what will keep you going on the project regardless of all the obstacles you’re going to face is building something you’re interested in. It could be anything for example for me I was working out at that time using scheduled home workouts that are put on a photo, so I was struggling with how I should manually do the whole work of seeing which video I should play on youtube, hence I decided to automate this whole process. And because I liked it I was tackling every challenge with gusto only to see the final product.
I read this tweet the other day that says
“Weeks of coding can save you hours of planning” (Hope you got the joke).
You should have a clear strategy before jumping into writing the code, this will save you a handful of times of trial and error. You don’t have to design everything upfront but at least know how many screens in the app, the main functionality of the app, what features to build, is it user-based and if so what tool you’re going to use for authentication, how you’re going to store app data …etc. Surely, you may realize while you’re in the process that you should change somethings up that’s fine.
Document your project building journey:
This comes hand in hand with planning, when you plan your app it’s better to have the plan on an editable text editing tool, to write your whole plan and organize what you’re working on, what errors showed up, what are your plans on fixing them, what next features to add and endless ideas you can add to your document I used to use Google Docs for this it’s very easy to use and simple.
Now moving to things that if you avoid you’ll save yourself time and headaches:
Mix building the UI with writing features functions:
One of the mistakes I’ve done is building a single page interface and then jump straight into writing the functions for this page, this wasn’t an efficient way. I would recommend building all the screens with simple ui, it doesn’t have to be the best ui design you have in mind for your app it’s just something to work on with, and you can always fix the UI later.
Pressuring yourself to use intermediate-advanced level tools/packages:
When I was building my app the provider package was so popular, and I needed a state management system, but I decided to stick with setState because I knew using provider at my level is going to cause so many errors which means so much frustration and the last thing I needed that time was frustration. After completing the app and testing it I finally added the provider package and it was a smooth process. That being said you can add whatever you want after your app is fully functioning and ready-to-launch.
Getting stuck on the planning phase:
It’s very easy to get stuck for days trying to figure out how to build every detail on the app, but my good news for you is that you don’t need a detailed plan at first because I promise you’re going to figure it out along the way. So just keep the plan general and simple.
Lastly, get rest when you get stuck on an error sometimes the problem is very simple and trivial but you’re just too exhausted that’s why you can’t figure it out.
And before you start remember that project building is more than just writing code it includes a lot of management and planning.
Choose the right idea for you.
Put a general plan and know what tools you’re going to use beforehand.
Only start with applying the vital essential features first, once it’s functioning on the bare minimum that means you’re one big step ahead then you’ll be motivated to keep going and adding additional features.