[kotlin] 코틀린 안드로이드 MVVM 아키텍처에서의 사용자 인터페이스(UI) 처리 방법

MVVM 아키텍처 개요

MVVM 아키텍처는 Model-View-ViewModel의 약자로, 사용자 인터페이스를 설명하는 뷰(View)와 데이터 모델(Model)을 분리하여 화면 동작 로직을 처리하는 뷰모델(ViewModel)을 통해 관리하는 아키텍처 패턴입니다.

데이터 바인딩 설정

코틀린과 안드로이드에서 MVVM을 구현하기 위해서는 먼저 데이터 바인딩을 설정해야 합니다. XML 레이아웃 파일에서 데이터 바인딩을 활성화하고, 뷰모델을 바인딩 클래스와 연결합니다.

// activity_main.xml
<layout>
   <data>
       <variable
           name="viewModel"
           type="com.example.MyViewModel"/>
   </data>
   <LinearLayout>
       <TextView
           android:text="@{viewModel.userName}"/>
   </LinearLayout>
</layout>

뷰모델 구현

뷰모델은 사용자 인터페이스와 데이터 모델 간 상호 작용을 처리하는데 사용됩니다. 코틀린에서 뷰모델을 구현할 때는 안드로이드의 ViewModel 클래스를 상속하여 구현합니다.

import androidx.lifecycle.ViewModel

class MyViewModel : ViewModel() {
    var userName: String = "John Doe"
}

뷰와 뷰모델 연결

마지막으로, 액티비티나 프래그먼트에서 뷰와 뷰모델을 연결합니다. 이를 통해 뷰모델의 데이터가 UI에 표시될 수 있습니다.

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding
    private lateinit var viewModel: MyViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
        binding.viewModel = viewModel
        binding.lifecycleOwner = this
    }
}

이렇게 함으로써 코틀린을 사용한 안드로이드 애플리케이션에서 MVVM 아키텍처를 구현하고, 사용자 인터페이스를 처리하는 방법에 대해 알아보았습니다.

더 자세한 내용은 Android Developers - Guide to app architecture에서 확인할 수 있습니다.