All Projects β†’ Vaibhav2002 β†’ MusicX

Vaibhav2002 / MusicX

Licence: other
MusicX is a music player 🎡 android app built using Kotlin and Jetpack Compose. It follows M.A.D. practices and hence is a good learning resource for beginners

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to MusicX

NYTimes-Compose
An offline-first application in Jetpack Compose with MVVM architecture, representing a minimalistic implementation of Top Stories API.
Stars: ✭ 98 (+15.29%)
Mutual labels:  room, mvvm-android, jetpack-compose, coroutines-flow
Einsen
🎯 Einsen is a prioritization app that uses Eisenhower matrix technique as workflow to prioritize a list of tasks & built to Demonstrate use of Jetpack Compose with Modern Android Architecture Components & MVVM Architecture.
Stars: ✭ 821 (+865.88%)
Mutual labels:  mvvm-android, jetpack-compose, coroutines-flow
ThinkRchive
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android.
Stars: ✭ 84 (-1.18%)
Mutual labels:  room, mvvm-android, jetpack-compose
Delish
Delish, a Food Recipes App in Jetpack Compose and Hilt based on modern Android tech-stacks and MVI clean architecture.
Stars: ✭ 356 (+318.82%)
Mutual labels:  room, coroutines, jetpack-compose
bitcoin-market-android
Bitcoin Market app shows you the current Bitcoin market price and price chart of different time intervals πŸ’°
Stars: ✭ 284 (+234.12%)
Mutual labels:  coroutines, mvvm-android, jetpack-compose
Rick-and-Morty
The Rick And Morty - MVVM with a clean architecture approach using some of the best practices in Android Development.
Stars: ✭ 45 (-47.06%)
Mutual labels:  room, coroutines, coroutines-flow
Compose-ToDo
A fully functional Android TODO app built entirely with Kotlin and Jetpack Compose
Stars: ✭ 130 (+52.94%)
Mutual labels:  room, mvvm-android, jetpack-compose
MVI-Clean-Architecture
MVI + Clean Architecture + Best Practices | Example of Clean Architecture of Android app using MVI design pattern with Jetpack and popular libraries
Stars: ✭ 50 (-41.18%)
Mutual labels:  room, coroutines, mvvm-android
LetsChat
LetsChat is a Sample Messaging Android application built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Flow, Dagger-Hilt, Architecture Components, MVVM, Room, Testing, Coil, DataStore) and Firebase
Stars: ✭ 71 (-16.47%)
Mutual labels:  room, coroutines, mvvm-android
Compose-BreakingBad
πŸ§ͺ ☠︎ Jetpack Compose - Breaking Bad ☒︎
Stars: ✭ 26 (-69.41%)
Mutual labels:  room, coroutines, jetpack-compose
Foodium
It simply loads Posts data from API and stores it in persistence storage (i.e. SQLite Database). Posts will be always loaded from local database. Remote data (from API) and Local data is always synchronized.
Stars: ✭ 1,940 (+2182.35%)
Mutual labels:  room, coroutines, mvvm-android
accrescent
A novel Android app store focused on security, privacy, and usability
Stars: ✭ 208 (+144.71%)
Mutual labels:  jetpack-compose, material3
android
🌦 VÀdret
Stars: ✭ 17 (-80%)
Mutual labels:  coroutines, coroutines-flow
Photos
No description or website provided.
Stars: ✭ 74 (-12.94%)
Mutual labels:  room, jetpack-compose
Dagger-Hilt-MVVM
Sample app that demonstrates the usage of Dagger Hilt with Kotlin & MVVM
Stars: ✭ 62 (-27.06%)
Mutual labels:  room, coroutines
Simple-MVVM
A simple Android MVVM pattern example
Stars: ✭ 34 (-60%)
Mutual labels:  room, mvvm-android
Simple-Notes-Kotlin-App
✍️ Simple Note Making App use mvvm architecture , dagger , coroutines and navigation component. Features includes πŸ—’οΈ create , edit and ❌ delete notes
Stars: ✭ 40 (-52.94%)
Mutual labels:  room, coroutines
AvengersChat
πŸ’™ Android sample Avengers chat application using Stream Chat SDK based on MVVM (ViewModel, Coroutines, Room, Hilt, Repository) architecture.
Stars: ✭ 350 (+311.76%)
Mutual labels:  coroutines, mvvm-android
Multi-Module-Nextflix-Composable
Includes jetpack compose, navigation, paging, hilt, retrofit, coil, coroutines, flow..
Stars: ✭ 195 (+129.41%)
Mutual labels:  coroutines, jetpack-compose
FoodApp
Proof of concept for food app [JetPack + Coroutines + Flow + MockK + JaCoCo coverage + SonarQube]
Stars: ✭ 25 (-70.59%)
Mutual labels:  coroutines, coroutines-flow

MusicX

MusicX is a music player app made using Jetpack Compose and follows Material 3 guidelines.

Application Install

You can Install and test latest MusicX app from below πŸ‘‡

MusicX

Setup

  • Clone the repository on your machine.
  • Create project in Firebase, enable firestore, set rules to public and download google-services.json and paste in the app folder.
  • Add all your songs in Firestore.
  • Add your AudD api key and base url in Secrets.kt
      const val API_KEY = ""  //add your AudD api key here
      const val BASE_URL = "" //add your AudD base url here
  • I have create a sample music list which i uploaded on Firebase, you can use it , all you need to do is to download the mp3 and upload it on any cloud storage and add the url in the objects in MusicList.kt
    Music(
            id = UUID.randomUUID().toString(),
            title = "Rap God",
            artists = listOf("Eminem"),
            imageUrl = "https://i.scdn.co/image/ab67616d00004851643e6ecebab400d52574e4b2",
            musicUrl = "", // add the url here
            duration = 363000L
        ),

About

It uses Firebase as its backend and also used AudD api to get lyrics of songs.

  • Fully functional.
  • Clean and Simple Material 3 UI built using Jetpack Compose.
  • It supports dark theme too πŸŒ—.

App Features

  • Home Screen - Shows a list of all songs available.
  • Music Player Screen - Music Player screen with music controls.
  • Playlist Screen - Screen showing the current playlist/play queue.

Insights into the app πŸ”Ž

πŸ“Έ Screenshots

Technical details

  • MusicX uses Firebase to fetch all songs.
  • MusicX uses AudD api to get lyrics of songs.
  • MusicX is built fllowing Material 3 Guidelines.
  • MusicX is built using Jetpack Compose.
  • MusicX is made using Kotlin and following Modern Android Development practices.
  • MusicX uses all Jetpack libraries and follows MVVM architecture. It also has a G.O.A.T rating in Android's M.A.D scorecard.
  • MusicX's code follows all the best practices and software development principles which make it a very good learning resource for beginners.

summary.png

Built With πŸ› 

  • Kotlin - First class and official programming language for Android development.
  • Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI.
  • Material 3 - Material Design 3, Google’s most expressive and adaptable design system
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • StateFlow - StateFlow is a state-holder observable flow that emits the current and new state updates to its collectors.
  • SharedFlow - A SharedFlow is a highly-configurable generalization of StateFlow.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • Room - Room is an android library which is an ORM which wraps android's native SQLite database
  • Exoplayer - Exoplayer library is used to play media in Android.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
    • Hilt-ViewModel - DI for injecting ViewModel.
  • Backend
    • Firebase
      • Firebase Firestore - A NoSQL database to store all data
      • Firebase Storage - A Cloud storage.
  • AudD Api - Api to fetch lyrics of songs
  • Retrofit - An Http Client for android.
  • Timber - A simple logging library for android.
  • GSON Converter - A Converter which uses Moshi for serialization to and from JSON.
  • Coil - An image loading library for Android backed by Kotlin Coroutines.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

Package Structure

dev.vaibhav.musicX    # Root Package
.
β”œβ”€β”€ data                    # For data handling.
|   β”œβ”€β”€ local               # Room DB and its related classes
|   β”œβ”€β”€ remote              # Firebase, AudD and their relative classes
β”‚   β”œβ”€β”€ model               # Model data classes and mapper classes, both remote and local entities
β”‚   └── repo                # Single source of data.
|
β”œβ”€β”€ di                      # Dependency Injection             
β”‚   └── module              # DI Modules
|
β”œβ”€β”€exoplayer                # Exoplayer related files etc.
|
β”œβ”€β”€ ui                      # UI/View layer
|   β”œβ”€β”€ components          # Common Composaled required.
|   β”œβ”€β”€ screens             # All Screens in app.    
β”‚   β”œβ”€β”€ theme               # App theme related files.
β”‚   β”œβ”€β”€ usecases            # Use-cases for features.
|   β”œβ”€β”€ utils               # Utility classes for UI.
|
└── utils                   # Utility Classes / Kotlin extensions

Architecture

This app uses MVVM (Model View View-Model) architecture.


If you like my projects and want to support me to build more cool open source projects


Contact

If you need any help, you can connect with me.

Visit:- Vaibhav Jaiswal

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].