A Comparative Study of Software Architectures in Mobile Applications

  • D. Dobrean Department of Computer Science, Faculty of Mathematics and Computer Science, Babes-Bolyai University, Cluj-Napoca, Romania
  • L. Dioșan Department of Computer Science, Faculty of Mathematics and Computer Science, Babes-Bolyai University, Cluj-Napoca, Romania

Abstract

The mobile market grows larger year by year and at the core of those devices, we have the mobile applications that push the technological advancement forward continuously. Due to the increased hardware performance and the popularity of those devices as well as advancements in their operating systems, mobile applications have grown to be complex projects with many dependencies and large teams working on them. As the application becomes bigger and more complex, the problem of choosing the right software architecture arises. This study focuses on an analysis of the most commonly used architectural patterns on mobile applications highlighting their features and flaws. Moreover, it also presents a comparison between them when implementing a medium-sized application. The usage of the appropriate architecture can simplify the work of developers and enable the creation of sustainable applications and the improvement of the software?s capacity to endure and evolve over time.

References

[1] Apple. Key value observing. https://developer.apple.com/library/archive/ documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html, 2018. Accessed date: 2018-06-30.
[2] S. Burbeck. Applications programming in smalltalk-80 (tm): How to use model-viewcontroller (MVC). Smalltalk-80 v2, 5:1–11, 1992.
[3] S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on software engineering, 20(6):476–493, 1994.
[4] R. Garofalo. Building enterprise applications with Windows Presentation Foundation and the Model View View Model Pattern. Microsoft Press, 2011.
[5] J. Gilbert and C. Stoll. Architecting iOS apps with VIPER. https://www.objc.io/issues/13-architecture/viper/, 2014. Accessed date: 2018-04-02.
[6] S. Khanlou. Massive View Controller. http://khanlou.com/2015/12/massive-viewcontroller/, 2015. Accessed date: 2018-06-30.
[7] H. J. La and S. D. Kim. Balanced MVC architecture for developing service-based mobile applications. In e-Business Engineering (ICEBE), 2010 IEEE 7th International Conference on, pages 292–299. IEEE, 2010.
[8] D. Mark, J. LaMarche, and J. Nutting. More iPhone 3 Development. Springer, 2010.
[9] R. C. Martin. Clean architecture: a craftsman’s guide to software structure and design. Prentice Hall Press, 2017.
[10] MutualMobile. Meet VIPER: Mutual mobile’s application of clean architecture for iOS apps. https://mutualmobile.com/posts/meet-viper-fast-agile-non-lethal-iosarchitecture-framework, 2014. Accessed date: 2018-04-02.
[11] D. E. Perry and A. L. Wolf. Foundations for the study of software architecture. ACM SIGSOFT Software engineering notes, 17(4):40–52, 1992.
[12] D. Plakalovic and D. Simic. Applying MVC and PAC patterns in mobile applications. arXiv preprint arXiv:1001.3489, 2010.
[13] M. Potel. MVP: Model-view-presenter the taligent programming model for C++ and Java. Taligent Inc, page 20, 1996.
[14] T. Reenskaug. The model-view-controller (MVC): its past and present. University of Oslo Draft, 2003.
[15] T. M. H. Reenskaug. The original MVC reports. Technical report, Xerox Palo Alto Research Laboratory, PARC, 1979.
[16] F. J. A. Salazar and M. Brambilla. Tailoring software architecture concepts and process for mobile application development. In Proceedings of the 3rd International Workshop on Software Development Lifecycle for Mobile, pages 21–24. ACM, 2015.
[17] P. Sauter, G. V¨ogler, G. Specht, and T. Flor. A MVC extension for pervasive multi-client user interfaces. Personal and Ubiquitous Computing, 9(2):100–107, 2005.
[18] M. A. Sayed. VIPER design pattern for iOS application development. https://medium.com/@smalam119/viper-design-pattern-for-ios-applicationdevelopment-7a9703902af6, 2017. Accessed date: 2018-04-02.
[19] F. E. Shahbudin and F.-F. Chua. Design patterns for developing high efficiency mobile application. Journal of Information Technology & Software Engineering, 3(3):1, 2013.
[20] A. Sinhal. MVC, MVP and MVVM design pattern. https://medium.com/@ankit.sinhal/mvc-mvp-and-mvvm-design-pattern6e169567bbad, 2017. Accessed date: 2018-04-02.
[21] K. Sokolova, M. Lemercier, and L. Garcia. Android passive MVC: a novel architecture model for android application development. In International Conference on Pervasive Patterns and Applications, pages 7–12, 2013.
[22] K. Sokolova, M. Lemercier, and L. Garcia. Towards high quality mobile applications: Android passive MVC architecture. International Journal On Advances in Software, 7(2):123–138, 2014.
[23] Statcounter. Mobile operating system market share worldwide. http://gs.statcounter.com/os-market-share/mobile/worldwide/monthly-201705-201805, 2018. Accessed date: 2018-06-30.
[24] C. Trevino. Flux and presentation architectures. https://blog.atsid.com/flux-andpresentation-architectures-91283f7ef94b, 2016. Accessed date: 2018-04-02.
Published
2019-12-07
How to Cite
DOBREAN, D.; DIOȘAN, L.. A Comparative Study of Software Architectures in Mobile Applications. Studia Universitatis Babeș-Bolyai Informatica, [S.l.], v. 64, n. 2, p. 49-64, dec. 2019. ISSN 2065-9601. Available at: <http://www.cs.ubbcluj.ro/~studia-i/journal/journal/article/view/43>. Date accessed: 22 sep. 2020. doi: https://doi.org/10.24193/subbi.2019.2.04.
Section
Articles