‘Big upfront design’ has fallen out of favor in recent years, replaced by more Agile development approaches. However, before you start coding you have to have some idea of what it is you’re building.
Paraphrasing an online discussion, this is an all too true example experienced by many new developers when first starting out:
New Dev: I don’t know where to start with this app. It’s too big to comprehend and I just don’t know how to get started
Experienced Dev: Well, what is your approach for structuring the app, have you though about how to break the app down into different pages and what each page does?
New Dev: No, I haven’t thought about that yet, I just started coding and got stuck.
Think before you code. Even if it’s some rough notes of the key features of the app, or some sketches of the different pages and what the navigation looks like between the pages, any time spent thinking about what the app does, how it should work, and how it should be structured will always make the job of actually building the app easier.
Remember, the hard part of building any app is working out what it should do and how you should build it. The actual act of writing code is always the easiest part (or should be).
[Top tip series: rather than spending time writing lengthy articles over several days I’m going to try and post shorter, hopefully useful tips more frequently]