@Pranav Kataria I suggest checking out some medium sized example projects on Github (e.g. from @Philipp Lackner ‘s YT channel), and get familiar with the project setup. And then you remodel those best practices.
I personally approach starting a new project by having a rough outline in my mind, creating a base project structure with feature modules for each feature, just showing the title of the feature on the screen. Then i connect it together so i can navigate between them. The you have a sceleton you can iterate on. That’s for the ui
Core wise i prefer setting up di, networking directly by investing some time instead of “quick quick and the iterating”, bc the fundament of the app is a pain to refactor, so there is spent the time it needs to be production ready from the get go