[kotlin] MVVM 아키텍처에서의 알림(Notification) 처리 방법

목차

  1. LiveData를 사용한 알림 처리
  2. RxJava를 이용한 알림 처리
  3. 알림 처리의 주의할 점
  4. 결론

1. LiveData를 사용한 알림 처리

MVVM 아키텍처에서는 주로 LiveData를 사용하여 데이터의 변화를 감지하고 관찰합니다. 이를 활용하여 알림 처리를 할 수 있습니다. ViewModel에서 LiveData를 노출하고, View에서는 해당 LiveData를 관찰하여 알림을 처리하는 방식이 일반적입니다.

class MyViewModel : ViewModel() {
    private val _notification = MutableLiveData<String>()
    val notification: LiveData<String> = _notification

    fun handleNotification() {
        // 알림을 받았을 때 _notification에 값을 설정
        _notification.value = "New notification message"
    }
}
class MyFragment : Fragment() {
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        viewModel.notification.observe(viewLifecycleOwner, Observer { message ->
            // 알림을 처리하는 UI 로직
            showToast(message)
        })
    }
}

2. RxJava를 이용한 알림 처리

또 다른 방법으로 RxJava를 이용하여 알림을 처리할 수 있습니다. ViewModel에서는 Observable 또는 Subject를 사용하여 알림을 발행하고, View에서는 해당 Observable을 구독하여 알림을 처리합니다.

class MyViewModel {
    private val notificationPublisher = PublishSubject.create<String>()

    fun handleNotification() {
        // 알림을 받았을 때 notificationPublisher를 통해 알림 발행
        notificationPublisher.onNext("New notification message")
    }
}
class MyFragment : Fragment() {
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        viewModel.notificationPublisher.subscribe { message ->
            // 알림을 처리하는 UI 로직
            showToast(message)
        }
    }
}

3. 알림 처리의 주의할 점

4. 결론

MVVM 아키텍처에서 알림 처리는 주로 LiveData나 RxJava를 이용하여 구현됩니다. 각 방법마다 장단점이 있으므로 상황에 맞게 적절한 방법을 선택해야 합니다.


참고 문헌: