Mobile Design Patterns. A Review of MVC, MVP, MVVM, and VIPER
Mobile Design Patterns. A Review of MVC, MVP, MVVM, and VIPER
AND VIPER
Abstract
The research study was based on thirty-five (35) journal and conference papers. In this study
the most common used mobile design patterns were MVC, MVP, MVVM, and VIPER. The
most frequently used mobile design pattern of which being the MVC. MVC accounted for 41%
frequency, MVP accounted for 26% frequency, MVVM accounted for 23% frequency, and
lastly VIPER accounted for 10% frequency. MVC is most preferred by developers because it
is easy of use, maintain and develop mobile applications. The thirty -five (35) papers were
retrieved from the following databases 1) Google scholar 2) Elsevier or Science Direct 3)
Directory of Open Access Journal 4) ACM 5) IEEE 6) Emerald 7) Springer 8) Taylor and
Francis 9) Wiley Journals 10) Scopus 11) EBSCO 12) JSTOR and 13) databases available from
MU online e-resources. IEEE accounted for three (3) papers, which translated to 9%. The ACM
accounted for two (2) papers, which translated to 6%. The Elsevier or Science Direct accounted
for 3 papers, which translated to 9%. Google scholar accounted for 22 papers, which translated
to 63%. Springer accounted for four (4) papers, which translated to 11%. Lastly Taylor and
Francis accounted for one (1) paper, which accounted for 3%. The research papers were from
the years 2006 to 2021, which consisted of the relevant papers required for the research.
1
1.0 Introduction
Good design pattern (architecture) can bring many benefits to the mobile applications. The
objective of this review is to demonstrate common mobile design patterns used to develop
mobile apps for Android and iPhone Operating System (iOS) namely Model-View-Controller
(MVC), Model-View-Presenter (MVP), Model-View-ViewModel (MVVM) and View-
Interactor-Presenter-Entity-Router (VIPER) (Phan, 2019). These design patterns are less
difficult to maintain and develop further. Apple (iOS) and Google (Android) are the leading
lenders in the mobile market. Selecting a right design pattern (architecture) for the development
is essential, because it does not only make things easier but it also makes testing more efficient
and increases the quality of an application. Apple (iOS) requires the use of Model View
Controller (MVC) or Model View Presenter ( MVP) to develop high quality applications, but
android developers do not have a specific architecture to develop their applications, it rather
depends on the developer's experience (Akhtar & Ghafoor, 2021).
MVC (model-view-controller) is a design pattern that allow users to develop simple cross
platform applications faster. MVC also provides standardized user interface application design
with a fairly straightforward user experience. MVVM (model-view-view-model) is a universal
design pattern used by developers to implement more complex functional tasks that give users
a wider choice of actions and interactions with the mobile applications. MVP (model -view-
presenter) is a design pattern that used to develop apps with a limited set of UI components and
a simple flow of navigation in the application. VIPER (View, Interactor, Presenter, Entity, and
Router Model) is a design pattern used by developers to implement applications. VIPER
support on long-term projects, and provides good test coverage, isolation o f the new
functionality implementation, and dependency of areas of responsibility (Oleksandr, 2020).
In this modern world there has been an increase in the number of mobile phones and a high
demand for mobile applications specifically for androids because it is more cost effective to
acquire and develop (Mukherjee & Mondal, 2014). Due to their popularity many software
developers have begun to focus on mobile platforms. Most individuals today prefer mobile
devices to PC devices for their daily use, as a result mobile technology is growing at a very
rapid rate. Mobile applications have become more complex and smartphone hardware is
getting better and more advanced and requires for developers to develop apps that are cost
effective and of good quality (Humeniuk, 2019). The layout of the rest of the article is as
follows: chapter 2 discusses the related works in line with the focus area which is mobile design
patterns, chapter 3 deals with the research criteria and bring out the research questions, search
2
procedure and how the screening of the primary studies were done. Chapter 4 which describes
the classification, followed by discussions and results (chapter 5) the research review, then
lastly chapter 6 conclude the study of the research.
(Chikov & Marinova, 2015) implemented an online-CADCOM platform using MVC design
pattern for a computer aided design in communications. The choice to use MVC was to
overcome issues rising from complexity of web based multitool design platform by developing
an architecture using the three main logical components: the model, the view, and the
controller. The function of a model is to add, retrieve, and maintain data in the database. The
view provides a user interface that enables users interact with mobile apps. The vi ew presents
data to users. The controller enables communication between the model and the view to ensure
that data appears correctly (Ashwin, 2022).
VIPER (View, Interactor, Presenter, Entity, and Router) is a design pattern that allows an iOS
application's code to be organized and structured in a way that separates data management, user
interface, and input handling concerns. The View is in charge of displaying data to the user,
the Interactor is in charge of business logic and data manipulation, the Presenter serves as a
bridge between the View and the Interactor, the Entity represents the data model, and the
Router is in charge of navigation. Because changes to one aspect of the app do not affect the
other aspects, this separation of concerns allows for more flexible and maintainable code
(García, 2023).
In this study (Haravy & Surto, 2018) highlighted that MVP (Model View Presenter) pattern is
a derivative from the MVC (Model View Controller) pattern. The MVP pattern allows
separating the presentation layer from the logic, so that everything about how the interface
works is separated from how it is represented it on screen. The presenter is responsible to act
as the middleman between view and model. It retrieves data from the model and returns it
formatted to the view. It also decides what happens when a user interact with the view.
This study was carried out by (Sokolova et al., 2014) to show the importance of developing
applications with good choice of design patterns, cost effective and of high quality. The leading
companies in the mobile market such as Apple (iOS) and Google (Android) develop apps using
mobile design patterns. These design patterns are preferred because they are less difficult to
maintain and develop further (Akhtar & Ghafoor, 2021). MVC pattern are most frequently
3
used, and continues to gain popularity in both iOS and Android market (Daoudi et al., 2019).
Although MVC design pattern is widely used in mobile applications especially Androids, it is
not universal (Plakalovic & Simic, 2010). There are also other design patterns used by
developers such as VIPER, MVVM, and MVP.
A Comparative Analysis on Modeling and Implementation with MVC Architecture study was
carried out by (Dey, 2011). It showed that most developers prefer MVC because it can easily
be implemented using graphical user interface (GUI) libraries. The model consist of data and
the instructions on how the data is accessed and updated. The view is used to specify how the
model data is presented. Then the controller controls how the user interact with the view when
retrieving and sending requests (clicks or menu selection).
RQ2. What mobile design patterns are used by the chosen studies?
RQ3. What are the most frequently used mobile design patterns?
RQ4. What are the publication years of the papers under review?
RQ5. What are the outstanding works of the papers under review?
▪ “Mobile Design Patterns” AND “MVC” AND “MVP” AND “MVVM” AND
“VIPER”;
▪ “Mobile Design Patterns” AND “MVP”;
▪ “Mobile Design Patterns” AND “MVVM”;
▪ “Mobile Design Patterns” AND “VIPER”;
4
▪ “Mobile Design Patterns” AND “Model View Controller” AND “Model View
Presenter” AND “Model View View Model” AND “View Interactor Presenter Entity
Router”;
▪ “Mobile Design architecture” AND “MVC” AND “MVP” AND “MVVM” AND
“VIPER”;
▪ “Mobile Design architecture” AND “MVP”;
▪ “Mobile Design architecture” AND “MVVM”;
▪ “Mobile Design architecture” AND “VIPER”;
▪ “Mobile Design architecture” AND “Model View Controller” AND “Model View
Presenter” AND “Model View View Model” AND “View Interactor Presenter Entity
Router”
This study made use of electronic databases over the internet to gathe r the required papers.
Notable databases that yielded papers worthy considering include Google scholar, science
direct, springer, IEEE Xplore, ACM, Taylor and Francis. Research gate had good research
papers of the area of interest, although it was included since it was not part of the scope.
Papers also contained in databases other than 1) Google scholar 2) Elsevier or Science Direct
3) Directory of Open Access Journal 4) ACM 5) IEEE 6) Emerald 7) Springer 8) Taylor and
Francis 9) Wiley Journals 10) Scopus 11) EBSCO 12) JSTOR and 13) databases available from
MU online e-resources were excluded. Most papers retrieved from databases such as Directory
of Open Access Journal, Emerald, Wiley Journals, Scopus, EBSCO, and JSTOR were excluded
as they were substandard and did not meet the criteria of the study.
5
4.0 The Classification Scheme
A total of six (6) different databases accounted for thirty-five (35) papers as seen from table 1
below. IEEE accounted for three (3) papers, which translated to 9%. The ACM accounted for
two (2) papers, which translated to 6%. The Elsevier or Science Direct accounted for 3 papers,
which translated to 9%. Google scholar accounted for 22 papers, which translated to 63%.
Springer accounted for four (4) papers, which translated to 11%. Lastly Taylor and Francis
accounted for one (1) paper, which accounted for 3%. It is good to gather papers from specific
databases as there is consistency in having high standard and good quality papers. There was a
challenge in gathering papers from good journals like IEEE, Science Direct among others due
to demand for payment to have their papers read or downloaded, which proved costly.
6
Database Number of
articles
downloaded Citations of downloaded articles
1) IEEE 3 Zhang, Y., & Luo, Y. (2010)
http://ieeexplore.ieee.org/Xplore/home.jsp Syromiatnikov, A., & Weyns, D.
(2014)
Giedrimas, V., & Omanovič, S.
(2015)
2) ACM 2 Daoudi, A., El-Boussaidi, G.,
https://dl.acm.org/ Moha, N., & Kpodjedo, S. (2019)
Wongtanuwat, W., & Senivongse,
T. (2020)
3) Elsevier or Science Direct 3 Pop, D.-P., & Altar, A. (2014)
www.sciencedirect.com Sunardi, A. & Suharjito. (2019)
Li, D. D., & Liu, X. Y. (2020)
4) Google scholar 22 Chikov, O., & Marinova, G.
https://scholar.google.com/ (2015)
Dey, T. (2011)
Alpaev, S. (2006)
Dobrean, D., & Diosan, L. (2019)
Humeniuk, V. (2019)
Lazetic, S., Savic, D., Vlajic, S., &
Lazarevic, S. (2012)
Mukherjee, S., & Mondal, I.
(2014)
Phan, D. H. (2019).
Plakalovic, D., & Simic, D. (2010)
Poudel, A. (2018)
Singh, M. S. (2020)
Sokolova, K., Lemercier, M., &
Garcia, L. (2014)
Wisnuadhi, B., Munawar, G., &
Wahyu, U. (2020)
Akhtar, N., & Ghafoor, S. (2021)
Qureshi, M. R. J., & Sabir, F.
(2014)
Gupta, P., & Govil, M. C. (2010)
Haravy, Y., & Surto, S. (2018)
Sholichin, F., Isa, M., Abd Halim,
S., & Harun, M. F. (2019)
Duy, T. B. (2017)
Lou, T. (2016)
Salazar, F. J. A., & Brambilla, M.
(2015)
7
5) Springer 4 Freeman, A. (2015)
https://link.springer.com Gaudioso, V. (2010)
or https://www.springeropen.com Anderson, C. (2012)
Hoefling, S. (2021)
6) Taylor and Francis 1
http://www.tandfonline.com/
Althammer, E., & Pree, W. (2001)
From the thirty-five (35) papers reviewed, the most used mobile design patterns by iOS and
Android mobile developers were MVC, MVP, MVVM and VIPER. The most frequently used
design pattern was MVC, which accounted for %. Most developers preferred MVC because it
is easy to use, maintain and develop apps. Figure 2 shows common mobile design patterns used
in the reviewed papers.
2014
2015
2016
2017
2018
2019
2020
2000
2008
2009
2010
2011
2012
2013
2021
8
5.3 Frequently used Mobile Design Patterns
Figure 3 shows that MVC was the most frequently used and preferred Mobile Design Pattern
due to its simplicity and easy to maintain and develop mobile apps. MVC accounted for 41%
frequency, MVP accounted for 26% frequency, MVVM accounted for 23% frequency, and
lastly VIPER accounted for 10% frequency.
10% MVC
41% MVP
23%
MVVM
VIPER
26%
Figure 4 below shows the analysis of the publication years of the papers under review. The
study was based on thirty (35) journals and conference papers. The distribution of papers is
summarized in figure 3 below. The papers were obtained from 2000 to 2021. The relevant
papers included in the study were from 2001 to 2021. Papers before 2006 were of substandard
and therefore were excluded from the study. The year 2001 accounted for one (1), from 2002
to 2005 accounted for non, 2006 accounted for one (1) paper, non in 2007 to 2009, four (4) in
2010, one (1) in 2011, two (2) in 2012, non in 2013, six (6) in 2014, five (5) in 2015, one (1)
in 2016, one (1) in 2017, two (2) in 2018, six (6) in 2019, three (3) in 2020, with 2021
contributing to one (1). It is important to note that of papers were obtained in the previous 21
years, which shows that the area is heavily researched, especially since now technology is
advancing on a daily basis.
9
Publication Years of the Reviewed Papers
6 6
5
4
3
2 2
0 1 0 0 0 0 1 0 0 0 1 0 1 1 1
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
Year of Publication
A number of papers proposed outstanding work in their journals and conference papers, some
of the future works have been summarised in table 2 below. For example: In one future work
Humeniuk, V. (2019) proposed the use of design patterns (architectures) using matrices to
measure performance, usability, and maintainability. Wisnuadhi, B., Munawar, G., & Wahyu,
U. (2020) also proposed a project that will compare the use of MVP or MVVM architecture in
other native Android languages such as kotlin, to determine whether the results will also apply
the same or are there any other influences with the use of the language.
10
regarding the architectural aspects of a mobile software application, we will help
them produce cheaper and cleaner code.
Future work may include more architecture metrics to compare. There are metrics Humeniuk, V.
that can represent intra-class cohesion and coupling between classes. These (2019)
metrics can also be calculated for modules. Comparison on these metrics may
give more information on the subject of maintainability and complexity of a
project that is implemented using specific architecture. There could have been
more use cases implemented to investigate architectures more. Future work may
include architecture comparison on very big and complex use cases. Collecting
metrics, mentioned in this thesis, on big commercial projects will improve the
accuracy of the results. It will also allow creating a stable benchmark for Android
architectures. Measuring performance on a large variety of Android devices will
greatly improve the understanding of both architectures and help to define ways
to improve performance for these architectures. It may also be a step to create a
new architecture that will solve the issues of MVP and VIPER and greatly
influence android application design. Android architecture design is relatively
new and active field of knowledge, so new architectures will appear every few
years. Architecture comparison will be an issue and methods described in this
thesis may be useful. Comparing new architectures with more conservative ones
is the point of future research.
This work can be continued by testing the observer observable design pattern Sokolova, K.,
integrated in the Android Passive MVC. The adaptation of the MVP model can Lemercier, M.,
be envisaged. The same testing software could be redeveloped to compare the & Garcia, L.
results. Finally, the same test using the Android-binding MVVC framework could (2014)
be implemented to choose the most effective solution for different types of
applications.
In addition, further research can also compare the use of MVP or MVVM Wisnuadhi, B.,
architecture in other native Android languages such as kotlin, whether the results Munawar, G.,
will also apply the same or are there any other influences with the use of the & Wahyu, U.
language, this will also be something interesting to discuss. (2020)
11
6.0 Limitation of the Study
In order to have a rich systematic review, the minimum target number of research papers was 40.
Unfortunately, most good journal papers from good publication houses required payments. Due to
limited resources, only 35 papers were reviewed.
7.0 Conclusion
The research study was based on thirty-five (35) journals and conference papers. In this study
we looked at frequently used mobile design patterns such as MVC, MVP, MVVM, and VIPER.
The most frequently used mobile design pattern was MVC, software developers preferred to
use it. This is because it is easy to use, maintain and develop applications that are cost effective
and of high quality. Relevant papers included in the study were from 2000 to 2021. The papers
reviewed before 2000 were excluded because they were substandard papers. Google scholar
was the most used database as it contained relevant research papers available and offered at no
cost. Although Science Direct and IEEE were the preferred databases, they required payments
to read or download their papers.
12
References
13
M. Wade, & T. Welsh (Eds.), Foundation Expression Blend 4 with Silverlight (pp. 341–367).
Apress. https://doi.org/10.1007/978-1-4302-2974-2_15
14. Giedrimas, V., & Omanovič, S. (2015). The impact of mobile architectures on component-
based software engineering. 2015 IEEE 3rd Workshop on Advances in Information, Electronic
and Electrical Engineering (AIEEE), 1–6. https://doi.org/10.1109/AIEEE.2015.7367317
15. Gupta, P., & Govil, M. C. (2010). MVC Design Pattern for the multi framework distributed
applications using XML, spring and struts framework. (IJCSE) International Journal on
Computer Science and Engineering, 02(04).
16. Haravy, Y., & Surto, S. (2018). Modern Approaches to Android APP Architecture: MVVM, MVP,
VIPER. 206–208.
17. Humeniuk, V. (2019). Android Architecture Comparison: MVP vs. VIPER.
http://urn.kb.se/resolve?urn=urn:nbn:se:lnu:diva-80819
18. Lazetic, S., Savic, D., Vlajic, S., & Lazarevic, S. (2012). A Generator of MVC-based Web
Applications. World of Computer Science and Information Technology Journal (WCSIT) .
19. Li, D. D., & Liu, X. Y. (2020). Research on MVP Design Pattern Modeling Based on MDA.
Procedia Computer Science, 166, 51–56. https://doi.org/10.1016/j.procs.2020.02.012
20. Lou, T. (2016). A Comparison of Android Native App Architecture – MVC, MVP and MVVM.
21. Mukherjee, S., & Mondal, I. (2014). Future Practicability of Android Application Development
with New Android Libraries and Frameworks. (IJCSIT) International Journal of Computer
Science and Information Technologies, 5.
22. Oleksandr, K. (2020, December 7). Common Architecture for Mobile Application. TRIARE.
https://triare.net/insights/common-architecture-for-mobile-application/
23. Phan, D. H. (2019). Benchmarking Common Architectural Patterns in iOS Development
[Fi=AMK-opinnäytetyö|sv=YH-examensarbete|en=Bachelor’s thesis|].
http://www.theseus.fi/handle/10024/167317
24. Plakalovic, D., & Simic, D. (2010). Applying MVC and PAC patterns in mobile applications
(arXiv:1001.3489). arXiv. https://doi.org/10.48550/arXiv.1001.3489
25. Pop, D.-P., & Altar, A. (2014). Designing an MVC Model for Rapid Web Application
Development. Procedia Engineering, 69, 1172–1179.
https://doi.org/10.1016/j.proeng.2014.03.106
26. Poudel, A. (2018). A Comparative Study of Project Management System Web Applications Built
on ASP.Net Core and Laravel MVC Frameworks.
27. Qureshi, M. R. J., & Sabir, F. (2014). A comparison of model view controller and model view
presenter (arXiv:1408.5786). arXiv. https://doi.org/10.48550/arXiv.1408.5786
14
28. Salazar, F. J. A., & Brambilla, M. (2015). Tailoring software architecture concepts and process
for mobile application development. Proceedings of the 3rd International Workshop on
Software Development Lifecycle for Mobile, 21–24.
https://doi.org/10.1145/2804345.2804350
29. Sholichin, F., Isa, M., Abd Halim, S., & Harun, M. F. (2019). Review of iOS Architectural Pattern
for Testability, Modifiability, and Performance Quality. Journal of Theoretical and Applied
Information Technology, 97.
30. Singh, M. S. (2020). MVC Framework: A Modern Web Application Development Approach and
Working. 07(01).
31. Sokolova, K., Lemercier, M., & Garcia, L. (2014). Towards High Quality Mobile Applications:
Android Passive MVC Architecture.
32. Sunardi, A. & Suharjito. (2019). MVC Architecture: A Comparative Study Between Larave l
Framework and Slim Framework in Freelancer Project Monitoring System Web Based.
Procedia Computer Science, 157, 134–141. https://doi.org/10.1016/j.procs.2019.08.150
33. Syromiatnikov, A., & Weyns, D. (2014). A Journey through the Land of Model-View-Design
Patterns. 2014 IEEE/IFIP Conference on Software Architecture, 21–30.
https://doi.org/10.1109/WICSA.2014.13
34. Wisnuadhi, B., Munawar, G., & Wahyu, U. (2020). Performance Comparison of Native Android
Application on MVP and MVVM. 276–282. https://doi.org/10.2991/aer.k.201221.047
35. Wongtanuwat, W., & Senivongse, T. (2020). Detection of Violation of MVVM Design Pattern
in Objective-C Programs. Proceedings of the 8th International Conference on Computer and
Communications Management, 54–58. https://doi.org/10.1145/3411174.3411193
36. Zhang, Y., & Luo, Y. (2010). An architecture and implement model for Model-View-Presenter
pattern. 2010 3rd International Conference on Computer Science and Information Technology ,
8, 532–536. https://doi.org/10.1109/ICCSIT.2010.5565090
15