Loading...

[Compose Study] ViewModel에서의 상태

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

2024. 9. 7. 12:13

[Compose Study] Jetpack Compose의 상태

* 상태(state)는 시간이 지남에 따라 변하는 값(예: 채팅 앱에서 마지막으로 받은 메시지)이다. 하지만 상태가 업데이트되는 이유는 무엇일까? Android 앱에서는 이벤트에 대한 응답으로 상태가 업데이트된다. 이벤트는 애플리케이션 외부 또는 내부에서 생성되는 입력이다. 버튼 누르기 등으로 UI와 상호작용하는 사용자기타 요인(예: 새 값을 전송하는 센서 또는 네트워크 응답)앱 상태로 UI에 표시할 항목에 관한 설명이 제공되고, 이벤트라는 메커니즘을 통해 상태가 변경되고 UI도 변경된다. Key idea: State is. Events happen. (상태는 존재하고, 이벤트는 발생한다)  * 이벤트는 어떤 일이 발생했다고 프로그램 일부에 알려준다. 모든 Android 앱에는 다음과 같은 핵심 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("변경") 이..