ABSTRACT
This paper explores how an Android application consumes memory when it is developed by two approaches: basic object-oriented programming versus decorator design pattern. Somehow programmers develop applications based on their coding experience without concern of memory usage especially in mobile applications which memory consumption is a critical issue. The deployed Android application of a list of temples which join a Candle Festival is selected as a case study. New functions are assumingly required by users so that the application could provide more services. Two class diagrams are designed based on basic object-oriented programming and based on decorator design pattern before implementation of the two approaches. The problem is what is the better approach for handling an increasing number of services after the application has been deployed. So that the application still consumes less memory as possible. The case-study applications retrieve information from a free REST API. Memory usage is measured by using an emulator and a physical device. The result shows that an Android application which developed by using decorator design pattern consumes more memory although its codes are cleaner and easier to read. Therefore, when a developer applies decorator design pattern, they should pay more attention on unexpected effect of the design pattern. Research in impact of design patterns should also be investigated more.
Supplemental Material
Available for Download
- Erich Gamma, Richard, Helm, Ralph Johnson, and John Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.Google ScholarDigital Library
- Diaeddin Rimawi and Samer Zein. 2019. A Model Based Approach for Android Design Patterns Detection. In proceeding of the 3rd International Symposium on Multidisciplinary Studies and Innovative Technologies (ISMSIT).Google Scholar
- Andreas Karavokyris and Efthimios Alpis. 2018. Software Measures for Common Design Pattern Using Visual Studio Code Metrics. In proceedings of the International Conference on Information, Intelligence, Systems and Applications.Google Scholar
- K. Srikala. 2019. Flexible and Extensible Design Patterns of Software. Indian Journal of Engineering and Sciences.Google Scholar
- Carmine Gravino and Michele Risi. 2017. How the use of design patterns affects the quality of software systems: a preliminary investigation. In proceeding of the 43rd Euromicro Conference on Software Engineering and Advanced Applications.Google Scholar
- Jonathan W. Lartigue and Richard Chapman. 2018. Comprehension and Application of Design Patterns by Novice Software Engineers. In proceeding of the Annual ACM Southeast Conference (ACMSE) Article No. 24.Google Scholar
- Sanchez D., Mendez O., Florez H. 2018. An Approach of a Framework to Create Web Applications. Lecture Notes in Computer Science, vol. 10963. Springer, Cham.Google Scholar
- Dong Kwan Kim. 2018. Development of Mobile Cloud Applications using UML. International Journal of Electrical and Computer Engineering (IJECE) Vol. 8, No. 1, February, pp. 596∼604.Google ScholarCross Ref
- Bambang Wisnuadhi, Ghifari Munawar, Ujan Wahyu. 2020. Performance Comparison of Native Adnroid Application on MVP and MVVM. In proceeding of the International Seminar of Science and Applied Technology (ISSAT 2020), Advances in Engineering Research, volume 198.Google Scholar
- Mariam Aljamea, and Mohammad Alkandari. 2018. MMVMi: A Validation Model for MVC and MVVM Design Patterns in iOS Applications. IAENG International Journal of Computer Science, 45:3.Google Scholar
- Thomas Dorfer, Lukas Demetz, Sefan Huber. 2020. Impact of mobile cross-platform development on CPU, memory, and battery of mobile devices when using common mobile app features. In proceeding of the 17th International Conference on Mobile Systems and Pervasive Computing (MobiSPC).Google Scholar
- T. Hidayat and B. D. Sungkowo. 2020. Comparison of Memory Consumptive Against the Use of Various Image Formats for App Onboarding Animation Assets on Android with Lottie. In proceeding of the 3rd International Conference on Computer and Informatics Engineering (IC2IE) JSON. 376-381. 10.1109/IC2IE50715.2020.9274612.Google Scholar
- Sabiyath Fatima, N., Steffy, D., Stella, D., Nandhini Devi, S. 2020. Enhanced Performance of Android Application Using RecyclerView. In: Pati, B., Panigrahi, C., Buyya, R., Li, KC. (eds) Advanced Computing and Intelligent Engineering. Advances in Intelligent Systems and Computing, vol 1089. Springer, Singapore. https://doi.org/10.1007/978-981-15-1483-8_17Google Scholar
- Wasana Ngaogate (2020). Integrating Flyweight Design Pattern and MVC in Development of Web Application. In proceeding of the 2nd International Conference on Information Technology and Computer Communications, August 12-14, 2020.Google Scholar
- Soude Ghari, Mahsa Hadian, Mohammadreza Rasolroveicy, and Marios Fokaefs. 2019. A multi-dimensional quality analysis of Android applications. In proceeding of the 29th Annual International Conference on Computer Science and Software Engineering (CASCON '19). IBM Corp., USA, 34–43.Google Scholar
- Degu, Abebaw. 2019. Android Application Memory and Energy Performance: Systematic Literature Review. Journal of Computer Engineering (IOSR-JCE) e-ISSN: 2278-0661,p-ISSN: 2278-8727, Volume 21, Issue 3, Ser. V (May - June 2019), PP 20-32 10.9790/0661-2103052032.Google Scholar
- Aryo Pinandito, Agi Putra Kharisma and Rizal Setya Perdana. 2018. Framework Design for Map-Based Navigation in Google Android Platform. Journal of Telecommunication, Electronic and Computer Engineering, Vol. 10 No. 1-8.Google Scholar
- Jonathan W. Lartigue and Richard Chapman. 2018. Comprehension and Application of Design Patterns by Novice Software Engineers. The Annual ACM Southeast Conference (ACMSE) Article No. 24.Google Scholar
- Carmine Gravino and Michele Risi. 2017. How the use of design patterns affects the quality of software systems: a preliminary investigation. In proceeding of the 43rd Euromicro Conference on Software Engineering and Advanced Applications.Google Scholar
- Daniel Feitosa, et.al. 2019. What can violations of good practices tell about the relationship between GoF patterns and run-time quality attributes. Information and Software Technology 105 1–16.Google Scholar
- Muhammad Noman Riaz 2018. Impact of Software Design Patterns on the Quality of Software: A Comparative Study. In proceedings of the International Conference on Computing, Mathematics and Engineering Technologies – iCoMET.Google Scholar
- Apostolos Ampatzoglou, et.al. 2015. The Effect of GoF Design Patterns on Stability: A Case Study. IEEE Transactions on Software Engineering Volume: 41, Issue: 8.Google Scholar
- Muhammad Noman Riaz. 2018. Impact of Software Design Patterns on the Quality of Software: A Comparative Study. In proceeding of the International Conference on Computing, Mathematics and Engineering Technologies – iCoMET.Google Scholar
- Apostolos Ampatzoglou, et.al. 2015. The Effect of GoF Design Patterns on Stability: A Case Study. IEEE Transactions on Software Engineering Volume: 41, Issue: 8.Google Scholar
- Sofia Charalampidou, et.al. 2017. A theoretical model for capturing the impact of design patterns on quality: the decorator case study. In proceeding of the Symposium on Applied Computing SAC17 Pages 1231-1238.Google Scholar
Index Terms
- Memory Usage Comparison in an Android Application: Basic Object-Oriented Programming vs Decorator Design Pattern: Coding styles for keeping low memory usage in a mobile application.
Recommendations
An exploratory study of MVC-based architectural patterns in Android apps
SAC '19: Proceedings of the 34th ACM/SIGAPP Symposium on Applied ComputingMobile app development now represents a significant part of the software industry, with Android being the largest ecosystem. Android development comes with its own design practices and templates (layouts, activities, etc.). Developers also use different ...
What Is Object-Oriented Programming?
The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, object-...
Software Engineering Paradigm Independent Design Problems, GoF 23 Design Patterns, and Aspect Design
The aim of the paper is to investigate applicability of object-oriented software design patterns in the context of aspect-oriented design. The paper analyses which of the GoF 23 patterns have a meaning in this context and how they are affected by it. ...
Comments