Usually Android applications follow MVVM design pattern or sometimes MVP pattern, in addition to those sometimes we add Use Case - Repository - Service a typical app using latest technology and built from the ground up in a decent pattern and ready for unit testing would be like this. Model - View - ViewModel - UseCase - Repository - Service with each one having it's own unique functionality, and all with a Dependency Injection running as well for testing, something like Dagger or Hilt for larger apps, or maybe Koin for smaller ones