[논문 리뷰] How and Why did developers migrate Android Applications from Java to Kotlin? A study based on code analysis and interviews with developers.
이 연구는 374개의 안드로이드 앱에서 커밋 기록을 분석하고 개발자 78명과 인터뷰를 통해 안드로이드 개발자들이 자바에서 코틀린으로 이관한 이유와 방법을 조사한다. 이전 연구에서 도출된 10가지 핵심 이동 동기를 규명하고, 이전 과정에서의 실질적 과제와 전략에 대한 실질적인 통찰을 제공한다.
Nowadays, the majority of the apps running on mobile devices are Android apps developed in Java. However, developers now have the possibility to write Android applications using a new programming language: Kotlin. Android developers can: a) start writing an Android application from scratch using Koltin, b) evolve their existing Android applications written in Java by adding Kotlin code (that is possible thanks to the interoperability between those languages), or c) migrate their Android apps from Java to Kotlin. This paper aims at studying this latter case. We want to know Why and How Android developers have migrated Java code to Kotlin. For that, we first built a tool, named MigA, which analyzes the history of applications having Java and Kotlin code and is able to detect commits that migrate code. We executed MigA on a dataset with 374 Android applications. Then, we interviewed 78 developers from those applications that have written, at least, one commit that migrates Java code to Kotlin. Our main goal was to know why those developers have done that code migrations. This paper presents the main ten reasons of migration that we obtained from the interviews. Moreover, by combining code analysis done by MigA and the information obtained from the interviews, we present a deeper characterization of the migration activity. Finally, we present and discuss the experiences and advises we obtained from developers that migrated code.
연구 동기 및 목표
- 기존 응용 프로그램에서 안드로이드 개발자들이 자바에서 코틀린으로 이관하는 배경을 이해하기 위해.
- 코드베이스를 이관하기로 결심하는 데 영향을 미치는 기술적 및 조직적 요인을 분석하기 위해.
- 자동화된 코드 분석과 개발자 인터뷰를 통해 실제 이관 과정을 특성화하기 위해.
- 자바에서 코틀린으로의 이관을 완료한 개발자들로부터 실질적인 경험과 권장 사항을 도출하기 위해.
제안 방법
- 버전 제어 기록을 분석하여 자바 코드를 코틀린으로 이관하는 커밋을 탐지하는 도구인 MigA를 개발하였다.
- 자바와 코틀린 코드를 모두 포함하는 374개의 안드로이드 애플리케이션 데이터셋에 MigA를 적용하였다.
- 최소한 한 번 이상의 이관 커밋을 수행한 개발자 78명과 반구조화된 인터뷰를 실시하였다.
- MigA에서 도출한 정량적 코드 분석 결과와 인터뷰에서 확보한 정성적 통찰을 융합하여 이관 패턴과 동기를 특성화하였다.
- 인터뷰 응답을 바탕으로 이관 이유를 분류하고, 코드 수준의 관찰 결과와 교차 검증하였다.
실험 결과
연구 질문
- RQ1개발자들이 안드로이드 애플리케이션을 자바에서 코틀린으로 이관하기로 선택하는 주요 이유는 무엇인가요?
- RQ2개발자들은 실제 프로젝트에서 자바 코드를 코틀린으로 어떻게 기술적으로 이관합니까?
- RQ3이관 과정에서 일반적으로 관찰되는 과제와 전략은 무엇인가요?
- RQ4프로젝트의 크기나 팀 구성에 따라 이관 패턴은 어떻게 다릅니까?
주요 결과
- 이주 동기 상위 10개는 코드의 간결성 향상, 더 나은 널(null) 안정성, 코틀린에서의 향상된 도구 지원을 포함한다.
- 80퍼센트 이상의 이주 커밋이 대규모 리팩터링이 아닌, 개별 메서드나 클래스를 변환하는 소규모 변경을 포함한다.
- 개발자들은 자주 코틀린의 널 안정성과 확장 함수를 언급하며 언어 채택의 주요 동기로 삼는다.
- 자바와 코틀린 간의 상호 운용성 덕분에 점진적인 이관이 가능해져 기존 기능이 손상되는 위험을 줄일 수 있었다.
- 많은 개발자들이 코틀린이 코드의 가독성을 향상시키고 반복적인 코드를 줄여 장기적인 유지보수에 기여한다고 보고했다.
- 이주 과정은 종종 반복적이고 팀 중심이었으며, 시간이 지남에 따라 여러 개발자가 이전 과정에 기여하였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.