본문 바로가기
Updates.

Jetpack Compose UI 1.7.8 업데이트 상세 분석

by h4r3 2025. 2. 15.
반응형

 

반응형

2025년 2월 12일에 androidx.compose.ui:ui-*:1.7.8 버전이 출시되었습니다. 이번 업데이트에서는 주로 입력 변환과 관련된 버그 수정이 이루어졌습니다.


📌 주요 변경 사항

1. BasicTextField에서 입력 변환 시 발생하는 크래시 수정

  • 문제점:
    • 기존 버전에서는 BasicTextField에서 텍스트 입력 변환 중 일부를 붙여넣거나 교체할 때 비정상 종료(crash) 가 발생하는 문제가 있었습니다.
    • 특히 입력 메서드(IMF)와 텍스트 변환 로직 간의 충돌로 인해 발생하는 이슈였습니다.
  • 수정 사항:
    • 입력 변환 과정에서 발생하는 예외 처리를 개선하여 안정성을 확보하였습니다.
    • 붙여넣기 및 텍스트 변환 시 불필요한 setText 호출을 방지하여 퍼포먼스를 최적화했습니다.
  • 예제 코드:
val textState = remember { mutableStateOf(TextFieldValue()) }

BasicTextField(
    value = textState.value,
    onValueChange = { newValue ->
        // 입력 변환 로직 적용
        val transformedText = newValue.text.replace("old", "new")
        textState.value = newValue.copy(text = transformedText)
    },
    modifier = Modifier
        .fillMaxWidth()
        .padding(16.dp)
)

이전 버전에서는 위와 같은 입력 변환 로직에서 충돌이 발생할 가능성이 있었습니다. 이번 업데이트를 통해 안정성이 향상되었습니다.


🛠️ 버그 수정 목록

✅ BasicTextField 관련 수정

  • 입력 변환 시 일부 텍스트를 교체할 때 발생하는 충돌 수정
  • 붙여넣기 연산 중 IMF와의 충돌 문제 해결
  • 입력 필드 내부에서 발생하는 setText 관련 예외 처리 강화
  • 텍스트 필드에서 다중 입력 시 발생하는 불필요한 UI 리렌더링 방지
  • 일부 기기에서 발생하는 포커스 손실 문제 해결

📌 업데이트 적용 방법

Gradle 의존성 추가

아래와 같이 build.gradle.kts 파일에서 최신 버전을 사용하도록 수정하세요.

dependencies {
    implementation("androidx.compose.ui:ui:1.7.8")
    implementation("androidx.compose.ui:ui-tooling-preview:1.7.8")
    implementation("androidx.compose.foundation:foundation:1.7.8")
}

🔍 추가 참고 사항

  • 이 업데이트는 기능 추가보다는 버그 수정 및 안정성 향상에 중점을 두었습니다.
  • BasicTextField를 활용하는 프로젝트에서는 이 버전으로 업그레이드하여 예기치 않은 크래시를 방지하는 것이 좋습니다.
  • 공식 릴리즈 노트: Android Developers

🚀 마무리

Jetpack Compose UI 1.7.8은 주요 기능 변경 없이 안정성을 높이는 버전으로, 특히 BasicTextField의 안정성을 강화하는 업데이트였습니다. 최신 버전을 적용하고, 기존 버전에서 발생했던 문제가 해결되었는지 확인해보세요!

반응형