free geoip
51

Using ViewModel and LiveData in Kotlin Apps

Using ViewModel and LiveData in Kotlin Android apps simplifies UI-related data handling and makes your code lifecycle-aware and more robust.…

Using ViewModel and LiveData in Kotlin Android apps simplifies UI-related data handling and makes your code lifecycle-aware and more robust. ViewModel helps store and manage UI-related data in a lifecycle-conscious way, while LiveData allows UI components to observe data changes without manual lifecycle handling.

ViewModel and LiveData in Kotlin

These components are part of Android’s Jetpack Architecture Components, recommended for building modern, maintainable Android apps.

Here’s how you can implement ViewModel and LiveData in your Kotlin project:

Step 1: Add Dependencies

Ensure you include the following in your build.gradle (Module):

implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.7.0"

Step 2: Create the ViewModel

class MainViewModel : ViewModel() {
    private val _counter = MutableLiveData<Int>().apply { value = 0 }
    val counter: LiveData<Int> = _counter

    fun incrementCounter() {
        _counter.value = (_counter.value ?: 0) + 1
    }
}

Step 3: Use ViewModel in Activity

class MainActivity : AppCompatActivity() {

    private lateinit var viewModel: MainViewModel

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

        val counterTextView: TextView = findViewById(R.id.counterTextView)
        val incrementButton: Button = findViewById(R.id.incrementButton)

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

        // Observe LiveData
        viewModel.counter.observe(this, Observer { count ->
            counterTextView.text = "Counter: $count"
        })

        incrementButton.setOnClickListener {
            viewModel.incrementCounter()
        }
    }
}

This approach ensures your data survives configuration changes like screen rotations and keeps your UI reactive and clean.

For additional insights, check out the official Android ViewModel documentation.

rysasahrial

Leave a Reply

Your email address will not be published. Required fields are marked *