안드로이드

    [Android] onBackPressed 함수 Deprecated 경고 해결 방법 한 번에 정리하기: onBackPressedDispatcher으로 이전하는 방법

    오류 메세지와 원인 분석 안드로이드 API33부터 onBackPressed 함수가 Deprecated 되면서 함수를 override하면 다음과 같은 경고 메세지가 뜨고 있다. 'onBackPressed(): Unit' is deprecated. Overrides deprecated member in 'androidx.core.app.ComponentActivity 직역하면 다음과 같은 뜻이다. 'onBackPressed(): Unit'은 더 이상 사용되지 않습니다. 'androidx.core.app.ComponentActivity'에서 더 이상 사용되지 않는 메서드를 재정의합니다. 당분간은 메세지가 뜬 상태로 있겠지만, 향후 몇 버전 뒤에는 코드가 없어질 것이므로, 이 글에서는 onBackPressed를..

    [Android] onBackPressedDispatcher 사용해 뒤로가기 동작 설정하기: 뒤로가기 두 번 눌러 종료하기 예제

    onBackPressedDispatcher이란? 안드로이드에서 애플리케이션을 개발하다보면, 종종 Activity 혹은 Fragment에서 뒤로 가기 버튼에 대한 동작을 커스텀하게 정의해야 할 상황이 발생한다. 이렇게 뒤로 가기 버튼에 대한 동작을 커스텀하게 정의해야 할 때, Activity 혹은 Fragment에서 접근할 수 있는 onBackPressedDispatcher를 사용할 수 있다. *onBackPressedDispatcher 변수는 OnBackPressedDispatcher 객체를 가리킨다. onBackPressedDispatcher 사용해 뒤로가기 동작 설정하기 onBackPressedDispatcher를 사용해 뒤로 가기 동작을 정의하기 위해서는 두가지가 필요하다. onBackPressed..

    [Android] LifecycleEventObserver 사용해 Activity 생명주기에 대한 콜백 등록하기: onStart, onResume, onPause, onStop 등에 대한 콜백 등록하기

    일반적인 Activity 생명주기에 대한 콜백 등록 방법 일반적으로 Activity 생명주기에 대한 콜백을 등록하기 위해서는 Activity 수준에서 onStart, onResume, onPause, onStop 등의 함수들을 override 하고 그 함수에 해당 콜백을 등록해야 한다. class MainActivity : ComponentActivity() { ... override fun onStart() { super.onStart() println("onStart 콜백") } override fun onResume() { super.onResume() println("onResume 콜백") } override fun onPause() { super.onPause() println("onPause..

    [Android Studio] Layout Inspector에서 Compose View 들이 보이지 않는 현상 해결 방법

    문제 상황 개발 테스트 도중 Android Studio Layout Inspector에서 Compose View들이 보이지 않고 아래와 같이, AndroidComposeView로만 뭉뚱그려 나오는 문제가 발생했다. 해결 방법 이 문제를 해결하기 위해서 Google Issue Tracker을 확인한 결과 다음 두가지의 요구사항이 필요함을 확인했다. 1. Android Studio Flamingo 이상의 버전 사용 2. 8.0.0 이상의 AGP(Android Gradle Plugin) 사용 참조: https://issuetracker.google.com/issues/246355403 Google Issue Tracker issuetracker.google.com 내 Android Studio는 마침 딱 Fl..

    [Android UI Test] onNodeWithContentDescription 구문 사용해 컴포넌트 찾기

    이전 시간에 배운 내용 이전 시간에 우리는 JUnit에서 지원하는 @get:Rule 어노테이션과 함께 createComposeRule을 사용해 ComposeContentTestRule 객체를 만듦으로써 Composable 테스트 환경을 구축하는 방법에 대해 알아보았다. 이후에는 ComposeContentTestRule 객체를 사용해 onNodeWithText를 통해 UI 컴포넌트를 찾는 방법에 대해 다루었다. 이번 시간에는 onNodeWith- 구문을 사용해 더욱 다양한 방법으로 UI 컴포넌트를 찾는 방법에 대해 알아본다. onNodeWithText의 한계 onNodeWithText는 매우 편리한 기능이지만, 텍스트가 있는 컴포넌트를 찾을 때만 쓸 수 있다. 모든 UI 컴포넌트가 텍스트를 가지는 것은 아..