LiveData

    [Android] ViewModel에서 LiveData와 StateFlow의 권장 사용 방법

    안드로이드 프로젝트를 개발하면서 ViewModel을 사용할 때, LiveData 혹은 StateFlow를 활용하여 데이터 변경을 관찰하고 UI에 반영한다.이때 Mutable 변수는 private으로 설정하고 이름 앞에 _를 붙이고, 외부에 노출되는 변수는 Immutable로 사용하는 것을 흔히 볼 수 있다.일반적인 코드 컨벤션이라고 생각할 수도 있지만, 좀 더 생각해 보면 객체지향 설계 원칙과 클린 코드 관점에서 중요한 이유가 있다.권장 이유1. 캡슐화 (Encapsulation)캡슐화는 객체지향 설계의 기본 원칙 중 하나로 데이터를 직접 접근하지 못하게 하고, 데이터에 대한 접근을 제한하며, 변경을 메서드를 통해서만 할 수 있도록 한다. MutableLiveData나 MutableStateFlow를 p..

    [안드로이드] Android Architecture Components(AAC)의 LiveData

    개요 LiveData는 Activity, Fragment, Service 등 다른 앱 구성요소의 라이프사이클을 인식하는 데이터 클래스다. 라이프사이클 인식을 통해 LiveData는 Observer 클래스로 표현되는 관찰자의 활성 상태를 구분하고 업데이트 정보를 알린다. 관찰자가 활성화가 된 상태는 STARTED 또는 RESUMED 상태를 활성 상태로 간주한다. 또한 Activity나 Fragment가 LiveData 객체를 안전하게 관찰할 수 있고, 이들의 수명 주기가 끝나는 즉시 수신 거부되어 쓸데없는 메모리 누수를 걱정하지 않아도 되므로 유용하다. 장점 1. UI와 데이터 상태의 일치 보장 LiveData는 데이터가 변경됨과 동시에 Observer 객체에 통지함. 데이터 변경시 Observer가 대신..