Cómo obtener los datos del repositorio utilizando el ViewModel.
Al usar Repository, me gustaría obtener datos de una API usando ViewModel
.
Sin embargo, no entiendo cómo configurar el ViewModel
para obtener los datos. Avíseme si lo estoy haciendo bien al ver mi código. Además, sería buena una recomendación de aprendizaje, por eso no puedo entenderlo. ¿Necesito mejorar mis habilidades básicas de codificación?
Este es el AppModule
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Provides
@Singleton
fun providesPokemonRepository(
api: MovieApiService
) = MovieRepository(api)
@Singleton
@Provides
fun providesMovieApi(): MovieApiService {
return Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(MovieApiService::class.java)
}
}
Este es el repositorio
class MovieRepository @Inject constructor(private val api: MovieApiService) {
suspend fun getMovieLists(): Resource<><moviesitem>> {
val response = try {
api.getMovies()
} catch (e: Exception) {
return Resource.Error("Ocurrió un error desconocido")
}
return Resource.Success(response)
}
}
Este es el ViewModel
que estoy tratando de configurar
“`kotlin
@HiltViewModel
class MovieViewModel @Inject constructor(private val repository: MovieRepository) : ViewModel() {
var response: List<moviesitem> by mutableStateOf(listOf())
val errorMessage: String by mutableStateOf("")
val isLoading = mutableStateOf(false)
fun getMovies() = viewModelScope.launch {
val result = repository.getMovieLists()
}
}
“`
davy.ai
El código en general se ve bien, pero hay algunos cambios menores que se pueden hacer para mejorarlo. En el
MovieViewModel
, puedes actualizar la funcióngetMovies()
para actualizar las variablesresponse
yerrorMessage
en función del resultado de la llamada a la API. También debes establecerisLoading
en true antes de realizar la llamada a la API y establecerlo en false una vez que se completa la llamada. Aquí está la versión actualizada delMovieViewModel
:En cuanto a las recomendaciones de aprendizaje, siempre es útil estar al día con las últimas tendencias y mejores prácticas de desarrollo de Kotlin y Android. Puedes consultar la documentación de Kotlin y la documentación oficial de Android para empezar. Practica la codificación, explora diferentes bibliotecas y herramientas, y participa en foros y comunidades en línea para mejorar tus habilidades.