Let's see how we can avoid building non valid objects that would break our app by using self validation when dealing with complex objects like phone numbers or IBAN.
Let's have a look to what is dependency injection and what we need to do to ensure our code is ready for injection before using frameworks like Swinject.
I see many developers adding too many code inside their ViewModel ending with a Massive ViewModel 🦛 while one of the first reason to use it was to actually avoid... Massive ViewController 🤷. Why is it happening? I think it is coming from one simple reason: they forget to think about Separation of Concern.
Models are the core of our applications and need to be defined with care. Yet they very often transform themselves into big monolithics becoming more and more complex while being less and less easy to use over time. But why is that?