I\'m an iOS developer with some experience and this question is really interesting to me. I saw a lot of different resources and materials on this topic, but nevertheless I\
In mobile software engineering, the most widely used are Clean Architecture + MVVM and Redux patterns.
Clean Architecture + MVVM consist of 3 layers: Domain, Presentation, Data layers. Where the Presentation Layer and Data Repositories Layer depend on Domain Layer:
Presentation Layer -> Domain Layer <- Data Repositories Layer
And Presentation Layer consist of ViewModels and Views (MVVM):
Presentation Layer (MVVM) = ViewModels + Views
Domain Layer = Entities + Use Cases + Repositories Interfaces
Data Repositories Layer = Repositories Implementations + API (Network) + Persistence DB
In this article, there is a more detailed description of Clean Architecture + MVVM https://tech.olx.com/clean-architecture-and-mvvm-on-ios-c9d167d9f5b3