[Andoird] 2. MVVM에서 꼭 필요한 데이터 바인딩(DataBinding) 라이브러리

in #kr6 years ago (edited)

android_title_image.jpg

데이터 바인딩(DataBinding)

'데이터(Data)를 묶다.(Bind)' 라고 쉽게 생각하면 됩니다. [데이터]는 Entity(Data객체 일반적으로 String, int, boolen)의 값과 ViewEvent(EventListener 일반적으로 뷰에대한 처리)이고 [바인딩]의 대상은 XML파일입니다. 즉 값과 이벤트를 바로 뷰에 적용하는 것입니다. 또한 개발자가 뷰를 사용하기 위해 필요한 전처리(findViewById)를 자동으로 해주기 때문에 번거러운 코드 작성이 없어집니다.

사용 이점

  • 자동 전처리
    View를 사용하기 위해서는 해당 View를 찾아야 했고 다음과 같은 전처리가 필요했습니다.
TextView textView = (TextView)findViewById(R.id.textview);
textView.~

DataBinding은 이런 전처리를 자동으로 해주기 때문에 번거러운 코드 작성이 필요 없어져 아주 편리합니다.

binding.textView.~

View가 많아져도 id와 해당 View의 목록을 보여줍니다.

  • 데이터 적용과 업데이트
    뷰에 데이터를 적용하거나 가져올때 set/get 메소드를 사용했습니다.
textView.setText("Hello world!");
String msg = eiditText.getText().toString();

DataBinding 라이브러리에서 제공하는 Observable 클래스를 사용하여 데이터를 뷰에 바인딩하면 set함수를 사용하지 않아도 자동으로 데이터가 뷰에 적용됩니다.

        <TextView
            ...
            android:text="@{vm.message}"/>

데이터 값이 변경되어 뷰를 업데이트 할 때 데이터의 변경 사실만 알려주면 됩니다.

        notifyPropertyChanged(BR.message);

즉 데이터가 변경되어서 set을 따로 해줄 필요가 없습니다.

참고 사이트

DataBinding 사용에 대한 상세한 내용은 밑의 사이트에서 잘 나와있습니다.

Sort:  

오~ 잘보고 갑니다.