Comparative Analysis of Cross-Platform and Native Mobile App Development Approaches

교차 플랫폼 및 네이티브 모바일 앱 개발 접근 방식의 비교 분석

  • Ibrokhimov Sardorbek Rustam Ugli (Dept. of Information Convergence Engineering, Pusan National University) ;
  • Gyun Woo (School of Computer Science and Engineering, Pusan National University)
  • 이브로키모브 사도르벡 (부산대학교 정보융합공학과) ;
  • 우균 (부산대학교 정보컴퓨터공학부)
  • Published : 2024.05.23

Abstract

Though lots of approaches to develop mobile apps are suggested up to now, developers have difficulties selecting a right one. This study compares native and cross-platform application development approaches, particularly focusing on the shift in preference from Java to Kotlin and the increasing use of Flutter. This research offers practical insights into factors influencing developers' choice of programming languages and frameworks in mobile application development by creating identical applications using Java, Kotlin, and Dart (Flutter). Furthermore, this study explores the best practices for development by examining the quality of code in 45 open-source GitHub repositories. The study evaluates LOC and code smells using semi-automated SonarQube assessments to determine the effects of selecting a specific language or framework on code maintainability and development efficiency. Preliminary findings show differences in the quality of the code produced by the two approaches, offering developers useful information on how to best optimize language and framework selection to reduce code smells and improve project maintainability.

Keywords

References

  1. Mohamed Abdal Mohsin Masaad Alsaid, "A Comparative Analysis of Mobile Application Development Approaches", Proceedings of the Pakistan Academy of Sciences: A: Physical and Computational Sciences, pp. 35-45, 2021
  2. F. Palomba, "On the diffuseness and the impact on maintainability of code smells: a large-scale empirical investigation", Empirical Software Engineering, pp. 1188-1221, 2017
  3. F. Palomba, "Toward a smell-aware bug prediction model", Ieee Transactions on Software Engineering, pp. 194-218, 2019
  4. Osama M.A. AL-atraqchi, "A Proposed Model for Build a Secure Restful API to Connect between Server Side and Mobile Application Using Laravel Framework with Flutter Toolkits", cuesj [Internet], 2022
  5. Peter Hegedus, "Static code analysis alarms filtering reloaded: a new real-world dataset and its ml-based utilization", IEEE Access 10, pp. 55090-55101, 2022
  6. M. Martinez and B. Mateus, "Why did developers migrate android applications from java to kotlin?", Ieee Transactions on Software Engineering, pp. 4521-4534, 2022
  7. A. Mazuera-Rozo, C. Escobar-Velasquez, J. Espitia-Acero, D. VegaGuzman, C. Trubiani, M. Linares-Vasquezet al, "Taxonomy of security weaknesses in java and kotlin, arXiv:2201.11807v1, 2022
  8. G. Hecht, R. Rouvoy, N. Moha, & L. Duchien, "Detecting antipatterns in android apps", ACM international conference on mobile software engineering and systems, pp. 148-149, 2015
  9. M. Lamothe, W. Shang, & T. Chen, "A3: assisting android api migrations using code examples", Ieee Transactions on Software Engineering, pp. 417-431, 2022
  10. Ardito, R. Coppola, G. Malnati, & M. Torchiano, "Effectiveness of kotlin vs. java in android app development tasks", Information and Software Technology, pp. 106374, 2020
  11. Flauzino, M., Verissimo, "Are you still smelling it? A comparative study between Java and Kotlin language", SBCARS, pp. 23-32, 2018
  12. Anonymous, Firestore Documentation, [Online]. URL: https://firebase.google.com/docs, last visited on April 9
  13. Anonymous, Flutter Documentation, [Online]. URL: https://docs.flutter.dev, last visited on April 12, 2024
  14. Anonymous, Bloc State Management Library, [Online]. URL: https://bloclibrary.dev, last visited on April 9, 2024
  15. Sewak J., MVVM Architecture in Android Using Kotlin, [Online]. URL: https://medium.com/@jecky999/mvvm-architecture-in-android-using-kotlin-a-practical-guide-73f8de1d9c58, last visited on April 8, 2024
  16. Varotariya V., MVVM Architecture Design Pattern for Android. OneClick IT Consultancy, [Online]. URL: https://oneclickitsolution.com/blog/choose-android-mvvm-over-mvparchitecture, last visited on April 9, 2024
  17. Anonymous, SonarSource Documentation, [Online]. URL: https://www.sonarsource.com/, last visited on April 9, 2024
  18. Anonymous, Docker, [Online]. URL: https://docker.com, last visited on April 11, 2024
  19. Anonymous, Flutter plugin, [Online]. URL: https://github.com/insideapp-oss/sonar-flutter, last visited on April 15, 2024