Skip to content

oratakashi/YoutubeTrends

Repository files navigation

Youtube Trends

Youtube Trends merupakan aplikasi Submission dari Kelas Menjadi Android Developer Expert Dicoding Indonesia, disini menerapkan prinsip Clean Architecture,


COVID19 Tracking Apps SS

Screenshot


COVID19 Tracking Apps SS

Screenshot


Download Demo

https://github.com/oratakashi/YoutubeTrends/releases/download/1.0/app-debug.apk

Continuous Integration

YoutubeTrends CI YoutubeTrends CI Build Status buddy pipeline

Apps Feature:

  • Show Main Youtube Trends
  • Show Game Youtube Trends
  • Show Music Youtube Trends
  • Show Sport Youtube Trends
  • Trends Favorite
  • Detail Video's with Video's Streaming

Project Spesification :

  • Build with Kotlin and Jetpack ViewBinding
  • Android Material with Android SDK version 30.0.3
  • Gradle version 4.1.2
  • Networking :
    • OkHttp
    • Retrofit
    • RxJava
    • SSL Pinning
  • Database :
    • Room Database
    • SQLChiper for Database Encryption
  • Kotlin Reflection
  • Koin Dependency Injection
  • Project Architecture :
    • Clean Architecture
    • MVVM Design Pattern
    • SOLID Principal
  • Animation :
    • Lottie Animation
    • Shimmer Animation

Project Structure :

  • Module App : Berfungsi untuk Module utama aplikasi, yang berisi Main UI dan beberapa utility
  • Module Core : Berfungsi untuk module yang menangani Depedency Injection dan Application Class
  • Module Data : Berfungsi sebagai layer data yang berisi :
    • Room Database dan Dao
    • Kotlin Reflection untuk mapping data dari layer data ke layer domain di Package Magic
    • Model untuk layer data
    • Network Interface
    • Local Repository dan Remote Repository
  • Module Domain : Berfungsi sebagai layer domain yang berisi :
    • Interactor
    • Annotation Class untuk digunakan Kotlin Reflection yang berada di Package Magic
    • Model untuk layer domain
    • Repository
    • State management untuk layer domain
    • Usecase
  • Module Presentation : Berfungsi sebagai layer presentation yang berisi :
    • ViewModel
    • Model untuk layer presentation
    • Kotlin Reflection untuk mapping data dari layer domain ke layer presentation di Package Magic
    • State management untuk layer presentation
    • Module Favorite : Merupakan module DFM / Dynamic Feature Module

Obfuscation :

  • Module app :
    • proguard-rules.pro : berisi rules untuk keep class-class material dan androidx
  • Module core :
    • consumer-rules.pro : berisi rules untuk keep class-class library :
      • Retrofit
      • Gson
      • SQLChiper
  • Module data :
    • consumer-rules.pro : berisi rules untuk keep class-class library :
      • Retrofit
      • Gson
      • SQLChiper
      • Kotlin Reflect ( Extended Library untuk reflection di kotlin )
      • dan Mengkeep data class di Package Model agar reflection bisa berjalan
  • Module domain : - consumer-rules.pro : berisi rules untuk keep class-class library : - Retrofit - Gson - SQLChiper - Kotlin Reflect ( Extended Library untuk reflection di kotlin ) - dan Mengkeep data class di Package Model agar reflection bisa berjalan
  • Module Presentation :
    • consumer-rules.pro : berisi rules untuk keep class-class library :
      • Retrofit
      • Gson
      • SQLChiper
      • Kotlin Reflect ( Extended Library untuk reflection di kotlin )
      • dan Mengkeep data class di Package Model agar reflection bisa berjalan

Encryption :

  • Module data :
    • SQLChiper digunakan di Class RoomDB

Certificate Pinning :

  • Module core :
    • CoreModule : provideHttpClient menggunakan OKHttp

Setup

  1. Anda harus membuat API Key Google Cloud Console pada situs Google Cloud Console
  2. Masukkan Api Key yang sudah dibuat pada config seperti berikut: core/Config.kt
object Config {
    const val key : String = "{{YOUR API KEY}}"
}
  1. Click menu di menubar Build/Rebuild Project
  2. Project siap di jalankan

Creator

Youtube Trends is created by [Oratakashi](http://github.com/oratakashi)

You can contact me at : oratakashi@oratakashi.com

License

Youtube Trends Apps is under the [GPL3 License](LICENSE)

About

Just a litle project for Dicoding Submissions

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages