Model View Controller in iOS mobile applications development

—Due to the increased number of mobile applications and their popularity, many software developers have begun to focus on mobile platforms. While this focus has positive effects (e.g. a larger developer community, new open source projects, new tools), it also has a down side. With the migration of devel- opers from different software development areas, where they have used other programming paradigms or architectural approaches, the topic of software architecture on mobile platforms become more trending and hype in the mobile development communities. Even though several new architectural solution were proposed for solving some of the issues which arise from using the classical architectural patterns popularised by the creators of the mobile platforms, we want to emphasise the principles of software architecture in mobile computing, why they have to be respected and how their adoption impacts the development process. Therefore, this paper focuses on showing that the Model View Controller (MVC) — one of the most common classical architectural patterns — can be used successfully for building mobile applications and the problems which might arise are by products of the wrong usage of the pattern rather than pattern issues. We show that by analysing the most common architectural misuses of the MVC pattern in both open-source and private projects and offers solutions to those problems.

[1]  Stephen Travis Pope,et al.  A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System , 1998 .

[2]  Raffaele Garofalo Building Enterprise Applications with Windows Presentation Foundation and the Model View ViewModel Pattern , 2011 .

[3]  G. Bavota,et al.  A Validated Set of Smells in Model-View-Controller Architectures , 2016, ICSME.

[4]  Nenad Medvidovic,et al.  Identifying Architectural Bad Smells , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[5]  Marc Lemercier,et al.  Towards High Quality Mobile Applications: Android Passive MVC Architecture , 2014 .

[6]  Perla Velasco-Elizondo,et al.  Towards Detecting MVC Architectural Smells , 2017 .

[7]  Nenad Medvidovic,et al.  Toward a Catalogue of Architectural Bad Smells , 2009, QoSA.

[8]  Michael Juntao Yuan Enterprise J2ME: Developing Mobile Java Applications , 2003 .

[9]  Nenad Medvidovic,et al.  Relating Architectural Decay and Sustainability of Software Systems , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[10]  Nenad Medvidovic,et al.  An Empirical Study of Architectural Decay in Open-Source Software , 2018, 2018 IEEE International Conference on Software Architecture (ICSA).

[11]  Nenad Medvidovic,et al.  Mapping architectural decay instances to dependency models , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

[12]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[13]  Alireza Sadeghi,et al.  Software architectural principles in contemporary mobile software: from conception to practice , 2016, J. Syst. Softw..

[14]  Mike Potel,et al.  MVP: Model-View-Presenter The Taligent Programming Model for C++ and Java , 1996 .

[15]  D. Simic,et al.  Applying MVC and PAC patterns in mobile applications , 2010, ArXiv.