This is an automated archive made by the Lemmit Bot.

The original was posted on /r/androiddev by /u/VisualDragonfruit698 on 2024-09-18 21:04:04+00:00.


I wanted to ask you guys, how common is the Clean Architecture, Google’s “Modern App Architecture”, or even plain MVVM organization pattern in medium to large scale apps?

I recently found two repositories of large-scale Android apps: Telegram and NammaYatri. I looked into their codebases, and I was shocked to see the code structure.

The thing is, both of these apps do not have any ViewModel file which is so common whenever I open any tutorial or see any hobby or small-scale project.

The code files are not organized based on any MV* pattern. It’s just placed in a package. I mean, I have seen even new developers follow these patterns accurately

The activity files in both the projects were at many places 1000+ lines long.

Not only the above, but there are literal string values being used as keys, no comments over functions and layout files not making sense, etc.

I thought we are supposed to code in the way that even a new developer can understand the code without too much effort. The codebase of the apps I saw do not seem to follow this at all.

So, I wanted to ask to you guys, how common is a codebase like mentioned above?

Is this all a tech debt carried forward because no one cared to re-write it or is it a norm for scaling applications and the Clean architecture and MC* are all for small applications only?

Why do they not use data, domain, presentation separation? is this just a con of working in teams vs working as a solo developer?

TLDR: Why do applications like Telegram not use ViewModel or any MV* pattern or even data, domain, presentation separation?