앱에 Compose 추가

임찬형·2022년 3월 4일
0

Android Compose

목록 보기
16/16

Compose를 View 기반 UI와 통합

  • 완전히 새로운 Compose 기반 화면 생성하거나 레이아웃에 Compose 요소 추가
  • Compose 함수에 View 기반 요소를 추가

xml 레이아웃에 Compose 요소 추가하기


1. View를 ComposeView로 대체하고, 레이아웃 매개변수와 id는 유지

2. 해당 View를 사용하는 Activity 또는 Fragment에서 ComposeView를 가져온 후, setContent 호출
기존 View를 Composable 요소로 대체한 후 setContent에 추가하면 완료

  • 아키텍처에서 작성하기

    기존과 동일하게 Compose도 아키텍처와 여러 라이브러리등을 제공함.
    StateFlow를 사용한 ViewModel을 작성하고 viewModel() 함수를 통해 MyScreen에서 ViewModel 인스턴스를 제공받아 화면을 구상하는 예시.

  • Fragment의 경우

    레이아웃의 일부가 ComposeView로 된 경우, Activity와 유사하게 해당 ComposeView에 setContent를 호출함.

    레이아웃 전체가 Compose로 빌드된 경우, ComposeView를 반환함으로써 xml을 사용하지 않아도 됨.

Compose UI에 Android View 계층 구조 추가하기

  • AndroidView Composable을 사용하며, factory와 update 람다를 통해 View를 생성하고 업데이트함.

    기존 Android View 객체를 factory에서 생성하고, 클릭 리스너를 등록하는 예시.

Compose에서 BroadcaseReceiver 등록 예시


등록 및 해제에 유용한 DisposableEffect를 사용하여 컴포지션이 종료되는 경우 receiver를 해제하는 코드를 onDispose에 추가함.

0개의 댓글