Android/Android Jetpack

    안드로이드를 위한 클린 아키텍처

    Clean Architecture에 대한 개념과 안드로이드에서 클린아키텍처를 적용한 구체적 사례를 통해 추상적인 개념으로만 알고있었던 개념을 더 자세히 알아보려고 합니다. Clean Architecture 란? 클린 아키텍처의 개념과 중요성에 대해서 알아보도록 합시다. 아키텍처는 복잡성을 관리해주기 때문에 특히 큰 프로젝트에서 중요합니다. 모든 아키텍처에는 애플리케이션의 복잡성을 관리한다는 하나의 공통 목표가 있습니다. 특히 대규모 프로젝트에서는 더욱 그렇습니다. 다음은 클린 아키텍처의 대표적인 그림입니다. 원은 앱의 다양한 수준의 소프트웨어를 나타냅니다. 주목해야 할 두 가지 주요 사항이 있습니다. 추상화 원칙 : 가운데 원이 가장 추상적이며 바깥쪽 원이 가장 구체적이여햐 합니다. 추상화 원칙은 내부 ..

    databinding - 식별 가능한 데이터 개체(observable data objects) 작업

    Observable fields Lifecycle-aware objects Using StateFlow class ScheduleViewModel : ViewModel() { private val _username = MutableStateFlow("") val username: StateFlow = _username init { viewModelScope.launch { _username.value = Repository.loadUserName() } } } LiveData를 사용하여 UI에 데이터 변경 알림 LiveData 객체를 데이터 결합 소스로 사용하여 데이터 변경을 UI에 자동으로 알릴 수 있습니다. 식별 가능한 필드와 같이 Observable을 구현하는 객체와 달리 LiveData 객체는 데..

    Jetpack/ LiveData, MutableLiveData, Databinding, BindingAdapter

    LiveData/ MutableLiveData MutableLiveData는 Abstract Class 인 LiveData를 구현한 Public Class 라는 말을 풀어 보면, LiveData는 추상 클래스이므로 직접 생성할 수 없다. 반면에 MutableLiveData는 일반 클래스이므로 아래와 같이 직접 생성하고 초기화도 할 수 있다. LiveData는 변경될 수 없고, MutableLiveData는 변경될 수 있다는 말의 의미는 LiveData는 주어진 라이프사이클(lifecycle) 내에서 관찰(observer)할 수 있는 data Holder 역할을 하는데, LiveData에 데이터를 Set 할 수 있는 것은 이를 구현한 클래스에서 setValue/postValue를 통해서만 가능하다는 의미이..