Android MVP doubts about validating

It really depends, my recommendation is that (And what I normally do):

  • If the field can be validated without access to database or complex operations, I'd do it in the activity. Examples of such fields would be: Password (Passwords need to contain at least 7 characters), Age (Age must be numeric)
  • If the field needs to be validated by accessing the database (or by web service) or the operation requires complex logic and resource, do it in the presenter. Examples of such fields would be: Username (To check if it is a duplicated username by accessing the database)

Think of it as a front-end and back-end of a website, although not completely same, it does help you to clarify confusing concepts.


View should never decide to do things by itself, presenter keeps waiting by events notified by view and presenter decides what to do then, view only keeps waiting orders from presenter.

So, no, validation is a presenter task, even if it is a very simple task such as validating a field.