Skip to content

This is an Android Youtube Clone made out of XML and Kotlin. I have a tutorial on this if you want to see explanation behind how I did things https://youtu.be/pfEwCn7xmPI

Notifications You must be signed in to change notification settings

Breens-Mbaka/Youtube-Clone

Repository files navigation

Youtube Android Clone 🚀

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

Prerequisite

  • 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 key const val KEY = "PUT YOUR OWN GOOGLE API KEY"
  • Here is the link to generate your Google API KEY

Screenshots

Splash/Home Screens

Demo

YTCLONEDEMO.mp4

Libraries

  • 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.

Author Info

License

MIT

About

This is an Android Youtube Clone made out of XML and Kotlin. I have a tutorial on this if you want to see explanation behind how I did things https://youtu.be/pfEwCn7xmPI

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages