huzit
___을 입력해주세요
huzit
전체 방문자
  • 분류 전체보기 (137)
    • 안드로이드(Compose) (10)
      • UI (4)
      • 개념 (6)
    • 안드로이드 (50)
      • 기본개념 (6)
      • 응용 (4)
      • Debug (18)
      • Binding (3)
      • RecyclerView (5)
      • Firebase (6)
      • Retrofit (1)
      • Activity & Fragment (4)
    • 코틀린 (22)
    • 코딩테스트 (38)
      • 백준 (10)
      • 프로그래머스 (28)
    • 일상 (6)
    • CS 지식 (4)
    • 라즈베리파이 (7)

블로그 메뉴

  • 홈
  • 태그
  • 글쓰기
  • 관리

공지사항

인기 글

태그

  • Java
  • recyclerView ClickEvent
  • docker
  • 라즈베리 파이
  • compose
  • FCM
  • 프로그래머스
  • 공돌이파파
  • IFTTT
  • firebase
  • Kotlin
  • 코틀린
  • jetpack
  • 브레빌 밤비노 플러스
  • Android
  • gts4mini
  • RecyclerView
  • 공돌카돈
  • Retrofit
  • Debug

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
huzit

___을 입력해주세요

Stateful 과 Stateless
안드로이드(Compose)/개념

Stateful 과 Stateless

2024. 3. 25. 17:02
728x90

State를 가지고 있으면 Stateful, State를 가지고 있지 않으면 Stateless입니다.

Stateful

remember를 사용하여 객체를 저장하는 컴포저블은 내부 State를 생성하여 컴포저블을 Stateful하게 만듭니다. 우리가 앞서 만들었던 예제들은 Stateful한 컴포저블의 예가 됩니다. 이는 호출하는 쪽에서 상태를 관리할 필요가 없다는 편리함이 있지만 재 사용성이 적고 테스트하기 어려운 경향이 있습니다.

@Composable
fun Greeting2() {
    var name by remember { mutableStateOf("") }
    Column(modifier = Modifier.padding(16.dp)) {
        if(name.isNotEmpty())
            Text(
                text = "Hello! $name",
                modifier = Modifier.padding(bottom = 8.dp),
                style = MaterialTheme.typography.bodyMedium
            )
        OutlinedTextField(
            value = name,
            onValueChange = { name = it},
            label = { Text("Name")}
        )
    }
}

위 예시처럼 State가 개수에 상관없이 컴포저블 안에 있는 경우 Stateful 하다고 봅니다.

Stateless

State를 갖지 않는 컴포저블입니다. State를 가지지 않으면 UI 표현을 어떻게 하는 거냐라고 할 수 있지만 호이스팅(Hoisting)이란 개념을 알고 있다면 할 수 있습니다

재 사용 가능한 컴포저블을 개발할 경우 동일한 컴포저블의 Stateful버전과 Stateless버전 모두 노출해야 하는 경우가 있습니다

Stateful버전은 상태 관리 할 필요 없는 호출자에게 유용하며, Stateless버전은 상태를 제어하거나 끌어올려야 하는 호출자에게 필요합니다

Stateless는 다음 게시글인 State Hoisting에서 상세하게 다뤄보겠습니다

 

참고

 

상태 및 Jetpack Compose  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 상태 및 Jetpack Compose 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱의 상태는 시간이 지남에 따라

developer.android.com

 

728x90
저작자표시 (새창열림)

'안드로이드(Compose) > 개념' 카테고리의 다른 글

remember 강제 재실행하는 방법  (0) 2024.04.11
Compose에서 State를 복원하는 방법  (0) 2024.04.04
State Hoisting(상태 호이스팅)  (0) 2024.03.27
지원되는 기타 State 유형  (0) 2024.03.20
State and Jetpack Compose  (0) 2024.03.18
    '안드로이드(Compose)/개념' 카테고리의 다른 글
    • Compose에서 State를 복원하는 방법
    • State Hoisting(상태 호이스팅)
    • 지원되는 기타 State 유형
    • State and Jetpack Compose
    huzit
    huzit
    simple is best

    티스토리툴바