Applying the Flyweight Design Pattern to Android Application Development
Main Article Content
Abstract
This research aims to demonstrate how the Flyweight design pattern enhances programmers' ability to develop mobile applications while being aware of memory consumption flexibly. By following the systematic approach to software development, the two Android applications have been designed using a class diagram based on two paradigms: general object-oriented programming and the Flyweight design pattern. Both applications are developed in Java and installed on a physical Android phone. Memory usage is monitored by using the Android Profiler and using programming. The results show that both Android applications consume almost the same amount of memory, given all classes or package classes. Therefore, applying the Flyweight design pattern to mobile software development does not affect memory usage and follows a professional software design.
Article Details
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
References
Rimawi, D.; Zein, S. A Model Based Approach for Android Design Patterns Detection. Proceedings of the 3rd International Symposium on Multidisciplinary Studies and Innovative Technologies (ISMSIT), Ankara, Turkey, 11-13 October 2019; IEEE: Turkey.
Karavokyris, A.; Alpis, E. Software Measures for Common Design Pattern Using Visual Studio Code Metrics. Proceedings of the International Conference on Information, Intelligence, Systems and Applications, Zakynthos, Greece, July 23-25, 2018, ACM.
Lartigue, W. J.; Chapman, R. Comprehension and Application of Design Patterns by Novice Software Engineers. Proceeding of the Annual ACM Southeast Conference, Kentucky, United States, March 29 – 31, 2018, ACM.
Hidayat, T.; Sungkowo, B. D. Comparison of Memory Consumptive Against the Use of Various Image Formats for App Onboarding Animation Assets on Android with Lottie. Proceedings of the 3rd International Conference on Computer and Informatics Engineering (IC2IE), Yogyakarta, Indonesia, 15-16 September, 2020; IEEE.
Fatima, S.; Steffy, N.; Stella, D.; Nandhini D.; Devi, S. Enhanced Performance of Android Application Using RecyclerView. Advanced Computing and Intelligent Engineering. Advances in Intelligent Systems and Computing, Springer, Singapore, 2020, 1089, 189–199.
Ehsan, M. R.; Wan Nurhayati, W. W. The Effect of Applying Software Design Patterns on Real Time Software Efficiency. Proceedings of the Future Technologies Conference (FTC), Pan Pacific Hotel Vancouver, BC, Canada, 29-30 November 2017.
Ghari, S.; Hadian, M.; Rasolroveicy, M.; Fokaefs, M. A multi-dimensional quality analysis of Android applications. Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering, Markham, Ontario, Canada, November 4-6, 2019. ACM.
Abebaw, D. Android Application Memory and Energy Performance: Systematic Literature Review. Journal of Computer Engineering (IOSR-JCE), 2019, 21(3), 20-32.
Dorfer, T.; Demetz, L.; Huber, S. Impact of mobile cross-platform development on CPU, memory, and battery of mobile devices when using common mobile app features. Proceedings of the 17th International Conference on Mobile Systems and Pervasive Computing (MobiSPC), Leuven, Belgium, August 9-12, 2020.
Feitosa, D.; Ampatzoglou, A.; Avgeriou, P.; Chatzigeorgiou, A.; Nakagawa, Y. E. What can violations of good practices tell about the relationship between GoF patterns and run-time quality attributes?. Information and Software Technology, 2019, 105, 1-16.
Qamar, N.; Malik, A. A. Impact of Design Patterns on Software Complexity and Size. Mehran University Research Journal of Engineering and Technology, (S.l.), 39(2), 342-352.
Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, United States, 1994.
Sousa, L. B.; Bigonha, A. S. M.; Ferreira, A. M. K. Evaluating Co-Occurrence of GOF Design Patterns with God Class and Long Method Bad Smells. Proceedings of the XIII Brazilian Symposium on Information Systems, Lavras, MG, Brazil, June 5-8, 2017.
Rana, E. M.; Rahman, W. N.; Murad, A. A. M.; Atan, B. R. The Impact of Flyweight and Proxy Design Patterns on Software Efficiency: An Empirical Evaluation. International Journal of Advanced Computer Science and Applications, 2019, 10(7), 161-170.
Zhang, P.; White, J.; Schmidt, C. D.; Lenz, G. Design of Blockchain-Based Apps Using Familiar Software Patterns with a Healthcare Focus. Proceedings of the 24th Conference on Pattern Languages of Programs, Vancouver British Columbia, Canada, October 23 - 25, 2017; ACM.
Zhang, P.; Schmidt, C. D.; White, J.; Lenz, G. Blockchain Technology Use Cases in Healthcare. Advances in Computers, Elsevier, 2018, 111, 1-41.
Nikolaeva, D.; Safi, M.; Mihailov, M.; Georgiev, A.; Bozhikova, V.; Stoeva, M. Algorithm A* and Design Patterns used in Unity Video Game development. Proceedings of International Conference Automatics and Informatics (ICAI), Varna, Bulgaria, 2020, 1-3.
Pupynin, K.; Golovnin, O. A Microscopic Traffic Simulation Web Toolkit. Proceedings of the 8th Scientific Conference on Information Technologies for Intelligent Decision Making Support, Ufa, Russia , 6-9 October 2020.
Maleki, S.; Fu. C.; Banotra, A.; Zong, Z. Understanding the impact of object oriented programming and design patterns on energy efficiency. Proceedings of the 8th Int Green and Sustainable Computing Conference, Orlando, FL, USA, 23-25 October 2017, 1-6.
Bontchev, B.; Milanova, E. On the Usability of Object-Oriented Design Patterns for a Better Software Quality. Cybernetics and Information Technologies, 2020, 20(4), 36–54.
Kim, K. D. Development of Mobile Cloud Applications using UML. International Journal of Electrical and Computer Engineering 2018, 8(1), 596-604.