Hi Feras. Glad you liked the post. :)
Extensions add methods to an existing class so that’s still Massive-View-Controller but in a more organized way. Think about A/B testing in your example. If you have 2 different view controllers for the same feature, how would you reuse business logic? I strongly suggest moving away from heavy extension usage for this reason. You’re already creating different files, creating different classes is not too much work anyway.
Using extensions in that way also makes refactoring harder since you need to jump from one to another, which complicates the mental model. If a class contains 300–400+ lines of code, it’s considered a code smell anyway. That’s a single responsibility violation in most cases. Extensions just hide the problem in such cases.
If you’re looking for real-life examples of these architectures, you can this project of mine: RedCarpet. It implements the same app using 5 different architectures in separate targets.
Hope that answers your question.