Our iOS developers made a decision to create application classes diagram in order to get a more visual approach to coding process. The first step in this approach implies architecture building. Having discussed each other’s experience and having analyzed several articles our team chose MVP model (though Apple calls it MVC) absolutely unanimously.
The next step was about defining the type of transactions between classes and nature of data-layer. As for transactions, their character is purely determined by application’s design. But data-layer has some space for creativity.
Finally we decided to use one single mediator-class DataManager for 4 classes closely connected with application data flow: ApiManager, RealmManager, SocketManager and CoreLibManager. This approach permits us split all data into concrete flows, test data-layer without affecting others. The only drawback of this approach implies a large number of transit methods in DataManager.
The final version of our diagram looks as follows:
Besides we have several protocols which later will be used for executing the same actions on different screens (a so called protocol-oriented-programming, RayWenderlich).
This diagram was developed by Ivan Apet, iOS developer, Multy.io
Description of the diagram and the article itself was were prepared by Alexandr Prokopchuk, Lead iOS developer, Multy.io