S SmartDocs
Series: android kotlin 33 lines · Updated 2026-02-03

UserViewModel.kt

android/MyComposeApiApp/app/src/main/java/ca/medontime/mycomposeapiapp/UserViewModel.kt

package ca.medontime.mycomposeapiapp

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch

class UserViewModel : ViewModel() {
    private val _users = MutableStateFlow<List<User>>(emptyList())
    val users: StateFlow<List<User>> = _users

    init {
        fetchUsers()
    }

    private fun fetchUsers() {
        viewModelScope.launch {
            try {
                val response = RetrofitClient.api.getUsers()
                if (response.isSuccessful) {
                    _users.value = response.body() ?: emptyList()
                } else {
                    // Handle error
                    println("API Error: ${response.code()} - ${response.message()}")
                }
            } catch (e: Exception) {
                // Handle exception
                e.printStackTrace()
            }
        }
    }
}

Related articles