/DeezerApp

Primary LanguageKotlin

DeezerApp

DeezerApp is an Android application designed to provide users with a platform to browse, play, and add track to their favorites. The app offers a wide range of features including a variety of music genres, artist details, album details, and song preview playback.

App Video

App

App Screenshots

genres genre details artist details
drawing drawing drawing
album details favorite tracks
drawing drawing

Tech stack

  • ✅ MVVM with Clean Architecture
  • Kotlin Flow - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
  • Coroutines - A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
  • Navigation Component - Handle everything needed for in-app navigation. asynchronous tasks for optimal execution.
  • Safe-Args - For passing data between destinations
  • Dagger-Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
  • ViewModel - Easily schedule asynchronous tasks for optimal execution.
  • Retrofit- Retrofit is a REST client for Java/ Kotlin and Android by Square inc under Apache 2.0 license. Its a simple network library that is used for network transactions. By using this library we can seamlessly capture JSON response from web service/web API.
  • OkHttp - Doing HTTP efficiently makes your stuff load faster and saves bandwidth.
  • Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
  • Moshi - A modern JSON library for Kotlin and Java.
  • View Binding - a feature that allows you to more easily write code that interacts with views.
  • Data Binding - The Data Binding Library is 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.
  • Lifecycle - As a user navigates through, out of, and back to your app, the Activity instances in your app transition through different states in their lifecycle.
  • Glide - for image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.
  • Timber - This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.
  • leakcanary - A memory leak detection library for Android.