MVVM Movies App - Data Layer: Retrofit & Room DB - (Part 1)

preview_player
Показать описание
Get my premium course to build industry-level Android apps & Ktor backends. 🚀
And take your skills to the next level and become ready for the Android industry ✅

First part of the clean architecture movies app tutorial playlist. This app uses Retrofit, Room Database and MVVM. With Jetpack Compose and Kotlin.

Follow me on Instagram:

Get part 1 source code on Github

The API:

#kotlin #androidstudio #jetpackcompose #androiddeveloper #mvvm
Рекомендации по теме
Комментарии
Автор

Get my premium course to build industry-level Android apps & Ktor backends. 🚀
And take your skills to the next level and become ready for the Android industry ✅

ahmed_guedmioui
Автор

This is an amazing series. But what would be even more amazing would be an authentication system, either separate or in this app. ;)

cristicode
Автор

Flow has its own catch function that catches all unhandled exceptions.
retun flow { }.catch {emit(Error(it.message())) }

Also u can remove suspend from the getMovieList() function, flow works with suspend itself.

getzygaming
Автор

Please how did you get the image base URL it was not clear in the explanation.

robsonidongesitsamuel
Автор

LOOKS amazing but you should structure your video in parts for easy navigation

njdlxul
Автор

7:50 if You have packages in one folder/name, you need to change -> Tree Appearange -> Compact Middle Packages

adamfatyga
Автор

why do we have to use a different database to show by movie genres?
Can we use the same unique room database to lets say create another table within it?

donDan
Автор

55th...This is going to be a great tutorial !!!

jopadjr
Автор

It asks for the application URL, but I want to use it in my test app.

gauravkumar-bspf
Автор

At 26:06 while editing the MoviesEntity you not only removed the null, but you changed the genre_ids value into a String from List<Int> without any comment. Maybe you will get to this later but I think this is because Room Database cannot handle a List<> as a field value; only simple types. Rather than creating a TypeConverter, you simply put the string list into a String, and I see now that you will parse this in the Mapper back into a List<Int> for the domain model "Movies".

ubersticks
Автор

thank you sir, any compose multiplatform tutorial in the future?

imgroot
Автор

I can´t follow that kapt implementation. It doesnt work in my code.

leandroosantana
Автор

Success with nullable value doesn't make sense because is it's success then why the data null. For the responses without data it's better to use Unit type. Loading with boolean value also doesn't make sense because Loading already indicates loading state while two other states mean the loading is stopped. Error should contain the exception instead of message or data. Cached values should be emitted as Success with optional boolean flag isCachec/isStillLoading or smth else.

Yazon
Автор

if you can speak arabic just do it please

memo