This app consumes The Youtube Api to fetch and display a list of popular videos, The app uses MVVM design pattern to allow separation of the app components like fragments & activities from the data logic, some of the benefits are:
- Make the data survive device configuration changes
- Allow easier testing of different components in the app
- Also it's easier to maintain and scale the app over time
- To run the app successfully you need to create your own Google API KEY
- Navigate to the
com.breens.youtubeclone.util.Constants.kt
file and put your own api keyconst val KEY = "PUT YOUR OWN GOOGLE API KEY"
- Here is the link to generate your Google API KEY
YTCLONEDEMO.mp4
- Navigation Components - To implement the Single Activity approach since fragments are lightweight than activities and allows easy passing of data between arguments in a type safe way
- Retrofit - A Type-safe HTTP client for Android which simplifies consuming RESTFul APIs.
- GsonConverter - Converts JSON to Kotlin objects.
- OkHttp-logging-interceptor - Makes it easy to log OkHttp network responses and requests
- Coil - Image loading library for android
- Dagger Hilt - Used for Dependency Injection
- View Binding - Jetpack library allowing type safe binding of views
- Livedata - Notifies Observer objects in the UI when underlying data changes.
- Twitter - @BreensR
- Linkedin - LinkedIn: Breens Robert