[kotlin] 뷰모델을 활용한 안드로이드 앱의 화면 갱신 처리

안드로이드 앱을 개발하다 보면 화면 갱신을 효율적으로 처리하기 위해 뷰모델을 활용하는 경우가 많습니다. 뷰모델은 화면의 상태를 관리하고 화면 갱신을 쉽게 처리할 수 있도록 도와줍니다. 이번 포스트에서는 뷰모델을 사용하여 안드로이드 앱의 화면 갱신을 어떻게 처리하는지 알아보겠습니다.

뷰모델의 개념

뷰모델은 안드로이드 아키텍처 컴포넌트 중 하나로, 화면의 데이터를 관리하고 UI와 관련된 비즈니스 로직을 처리합니다. 뷰모델은 화면 회전 또는 앱의 상태 변경과 같은 상황에서 데이터를 유지하고 화면을 갱신하는 데 유용합니다.

뷰모델의 활용

import androidx.lifecycle.ViewModel

class MyViewModel : ViewModel() {
    private var count = 0

    fun getCount(): Int {
        return count
    }

    fun incrementCount() {
        count++
    }
}

위의 예시는 간단한 카운터 앱의 뷰모델 코드입니다. 뷰모델 클래스를 정의하고 상태를 유지할 변수를 두고, 해당 변수를 업데이트하는 메서드를 작성합니다.

뷰모델의 화면 갱신 처리

액티비티나 프래그먼트에서 뷰모델을 생성하고 이를 관찰(observing)함으로써, 뷰모델의 데이터 변경 시 화면을 갱신할 수 있습니다.

class MyActivity : AppCompatActivity() {
    private lateinit var viewModel: MyViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)

        viewModel = ViewModelProvider(this).get(MyViewModel::class.java)

        viewModel.getCount().observe(this, { count ->
            // count 값이 변경될 때마다 화면을 갱신
            textView.text = count.toString()
        })
    }
}

위의 코드에서 뷰모델의 count 값을 관찰하고, 이 값이 변경될 때마다 화면을 갱신하도록 구현되어 있습니다.

결론

뷰모델을 활용하여 안드로이드 앱의 화면 갱신 처리를 효율적으로 관리할 수 있습니다. 뷰모델을 사용하면 화면과 데이터의 분리를 통해 유지보수가 용이해지고 화면 갱신에 필요한 로직을 간결하게 작성할 수 있습니다.

이상으로 뷰모델을 활용한 안드로이드 앱의 화면 갱신 처리에 관한 내용을 살펴보았습니다.

자세한 내용은 Android 공식 사이트의 ViewModel 가이드를 참고하시기 바랍니다.