Android

    Jetpack Compose 마이그레이션 후기

    이전에 써보고 아직은 아닌 것 같아 보류했던 Jetpack Compose를 다시 한번 써봤다. 전에는 가볍게 어떤 건지 맛만 본 수준이라면, 이번에는 아예 개발 중이던 토이 프로젝트를 Compose로 완전히 넘어가 보려고 하였고, 생각보다 만족스러웠다. 일단 Jetpack Compose에 대해 간단하게 소개를 해보자면, 구글에서 개발한 안드로이드 선언형 UI 프레임워크로, 레이아웃 구성에 xml을 일절 사용하지 않는다는 특징을 가지고 있다. 기본적으로 @Composable Annotation을 붙인 함수 안에 뷰를 선언하는 형태를 가지고 있다. 자세한 내용은 구글 공식 문서에 잘 나와있다. 본격적으로 프로젝트를 Compose로 마이그레이션 하기 앞서, 걱정됐던 몇 가지가 있다.기존의 프로젝트를 Compo..

    Retrofit2 난독화 했을 때 NullPointException 해결

    Retrofit2를 사용하는 프로젝트를 개발하던 중, Proguard를 적용하여 난독화를 진행하면 NPE가 발생하는 문제를 직면했다. 난독화가 적용되지 않은 빌드에서는 발생하지 않던 문제였기에, 난독화 과정에서 발생한 문제임을 유추할 수 있었다. Retrofit에서는 JSON의 키 값을 Java의 POJO에 맞게 매핑하기 위해 @SerializedName 어노테이션을 추가한다. 나 같은 경우 JSON의 키 값과 Kotlin의 data class의 변수 이름이 다른 경우가 있어, 통일성을 위해 모든 값에 @SerializedName을 붙여둔 부분이 문제가 되었다. 난독화 과정에서 @SerializedName 또한 난독화가 진행되었고, 데이터를 정상적으로 받아오지 못하게 되면서 NPE가 발생한 것이다. 이를..