This thesis provides insights into different development methods in the special case where we design large-scale software in Swift for iOS. It examines the three leading architectures based on the mobile market and tries to advise choices before developing a complex complex software.
The analysis points the critical parts of the architectures, illustrates the most important ones with code snippets and explains why and when should a specific one be considered as a good choice. Each detailed architecture is presented through a sample application and highlights the parts of the application that can be helpful at choosing a particular architecture. Particular emphasis is placed on the organization and testability of the code. It demonstrates how to write a testable code using a specific example and confirms several reasons for its necessity and benefits, both professionally and economically. Through a copy of a real application, it leads to the decisions made during the development, explains them and draws conclusions.
This analysis is an excellent guide for people who do not know these architectures, and also to those who’ve used them for several times, but want to get a comprehensive review comparing them based on their advantages and disadvantages. Developers standing before large-scaled applications can take ideas to design the architecture and structure of the code, which will help them throughout the implementation.