androidandroid-studioandroid-architecture

What kind of architecture should I be using for android development?


I was hoping to get some advice about the best way to make apps, I hope you guys can help me.

I'm fairly new on programming for Android and I have reached a point where I can code any app in Java without difficulty but also as I go deep into the Android world I have learned that there are many different ways to make apps.

Because of that I am losing track on what to study and how to be a good developer.

There are so many architectures and different ways of programming such as MVC, MVP, MVVM and so on. I have read many blogs and GitHubs and all of them sound awesome on paper but how do I know which one to choose for the apps i am making?

Could you guys help me understand the best approach I should take?

Thank you in advance :)


Solution

  • Architecture is not a silver bullet, designed to solve all your difficulties. Especially when we are talking about mobile apps.

    Architecture is just a bunch of guidelines, which you can use to make your life easier in case of long term support of your apps or in case of a new member in your development team. Architecture approaches helps you to define some basic development rules for a project within your team.

    Also your decision must be relevant to application size and complexity. For example: you don't need to apply VIPER or MVP for an app with a single screen, but when you trying to make big apps like for social networks, couple of good architecture approaches might be useful later while supporting that 'monster'.