Loading...

[Compose Study] ViewModel에서의 상태

* 화면 또는 UI 상태는 화면에 표시할 내용을 나타낸다(예: 작업 목록). 이 상태는 애플리케이션 데이터를 포함하므로 대개 계층 구조의 다른 레이어에 연결된다.UI 상태는 화면에 표시할 내용을 설명하지만 앱의 로직은 앱의 동작 방식을 설명하고 상태 변경에 반응해야 한다. 로직 유형에는 두 가지가 있다. (UI 동작 또는 UI 로직과 비즈니스 로직)UI 로직은 화면에 상태 변경을 표시하는 방법(예: 탐색 로직 또는 스낵바 표시)과 관련이 있다.비즈니스 로직은 상태 변경 시(예: 결제하기 또는 사용자 환경설정 저장) 실행할 작업이다. 이 로직은 대개 비즈니스 레이어나 데이터 영역에 배치되고 UI 레이어에는 배치되지 않는다.ViewModel은 UI 상태와 앱의 다른 레이어에 있는 비즈니스 로직에 대한 액세스..

2024. 6. 4. 00:13

[Compose Study] State 다루기

* 화면에 표시되는 내용이 변경된다면 State를 활용해야 한다.* ViewModel에서 mutableState은 읽기와 쓰기가 가능한 타입이고 그냥 State은 읽기만 가능한 타입이다. * 먼저, State를  다루는 방법엔 여러가지가 있는데 1, 3번째 방식은 앞에서 정리한 내용이기도 하다.1번째 방법은 그냥 MutableState 타입으로 다루는 것이다. 3번째 방법은 구조분해를 사용하여 text(getter 역할), setText(setter 역할)로 나누어 다룬다. 아래처럼 TextField에 (value = text, onValueChange = setText)로 텍스트 변경이 가능하다. 구조분해에서 text는 val로 선언되어 있기 때문에 String을 수정하려면 setText("변경") 이..

2024. 6. 3. 00:33

[Compose Study] ViewModel

* ViewModel을 사용하여 아래 화면의 변경을 눌렀을 때 Hello Text를 변경해볼 예정이다. * 우선 "Hello" 텍스트는 변해야 할 데이터이기 때문에 data = mutableStateOf("Hello")로 위에서 선언해 준 다음   "Hello" 대신 data.value로 바꾼다. 그 뒤 Button의 onClick = { data.value = "World" }로 설정해주면   간단하게 버튼을 눌렀을 때 "World"로 바뀌는 것을 볼 수 있다. * 또 다른 방법은 ViewModel 을 사용하는 것이다. * ViewModel은 activity와 lifeCycle을 동일하게 가져가는 특성 때문에 remeber를 사용하지 않고   data = mutableStateOf("Hello")처럼 ..