- This is a Cloned-Youtube App that fetches popular Videos from [Youtube DATA API > Documentation] and uses Paging 3 Library in Android pagination
- You will require latest version of Android Studio 3.0 (or newer) to be able to build the app
- Android Studio Dolphin | 2021.1.1 Patch 2 or Higher
- Language: Kotlin
- Build System: Gradle
-
Tech Stack
- Kotlin - First class and official programming language for Android development.
- Android Jetpack https://developer.android.com/topic/libraries/data-binding/
- Data Binding - A support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- LiveData - An observable,lifecycle-aware data holder.
- Room - a persistence library provides an abstraction layer over SQLite.
- Lifecycle - perform action when lifecycle state changes.
- ViewModel - store and manage UI-related data in a lifecycle conscious way.
- Kotlin coroutines - Executing code asynchronously.
- Retrofit - Type-safe HTTP client for Android and Java and Kotlin by Square, Inc.
- GsonConverterFactory - JSON library for Android, Java and Kotlin
- OkHttp interceptor - Logs HTTP requests and responses
- Flow - An asynchronous version of a Sequence, a type of collection whose values are lazily produced. Flow handles the stream of data asynchronously that executes sequentially.
- Dagger-Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
- Paging - 3 - The Paging library makes it easier for you to load data incrementally and gracefully within your app's UI
-
Gradle
- Gradle Kotlin DSL - For reference purposes, here's an article explaining the migration.
- Plugins
- KtLint - creates convenient tasks in your Gradle project that run ktlint checks or do code auto format.