• Stars
    star
    148
  • Rank 248,798 (Top 5 %)
  • Language
    Kotlin
  • License
    MIT License
  • Created over 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

More Repositories

1

Taskify

Taskify - An app to manage your daily tasks and boost your productivity. Taskify is built using kotlin and follows all modern android Development practices and hence is a good learning resource for beginners
Kotlin
125
star
2

Healthify

Healthify - An app to track your daily water intake and sleep and boost your work efficiency. Healthify is built using Kotlin and follows all modern android Development practices and hence is a good learning resource for beginners
Kotlin
79
star
3

NewsGo

NewsGo - Your daily shot of news on the Go. NewsGo is a Kotlin Multiplatform Mobile Application for Android and iOS.
Kotlin
48
star
4

Quizzify

Quizzify - Play unlimited quizzes with your friends for free๐Ÿ”ฅ. Quizzify is built using Kotlin and follows all modern android Development practices and hence is a good learning resource for beginners
Kotlin
44
star
5

DocuBox-AndroidApp

DocuBox is an android app ๐Ÿ“ฑin which you can securely upload your files on the cloudโ€“ from family pictures and audio recordings to spreadsheets, presentations and other confidential documents.
Kotlin
43
star
6

WriterAI-Backend

WriterAI is an AI-based content writing tool that can turn your unstructured text into engaging content and generate up to 5 different paragraphs with an input of just 5 words!
Kotlin
35
star
7

Sociofy

Kotlin
23
star
8

NotesX

NotesX is a note taking Android application ๐Ÿ“ฑ built using Jetpack Compose and also to demonstrate use of Modern Android development tools.
Kotlin
14
star
9

Java-Codes

Java
5
star
10

BlogVault

BlogVault - Explore Your Passions and Build Your Audience on Our User-Friendly Blogging Platform
TypeScript
5
star
11

Spring-Boot-Notes-REST-API

Java
3
star
12

NextLife

Kotlin
3
star
13

NoteSy-MERN

NoteSy - All your notes. Organized. Effortless. NoteSy is a MERN app built using Typescript following best practices.
TypeScript
3
star
14

AnimatedBottomBar-1

A customizable and easy to use BottomBar navigation view with sleek animations, with support for ViewPager, ViewPager2, NavController, and badges.
Kotlin
2
star
15

AssignmentHub

Kotlin
2
star
16

TODO-APP

this app is a todo app which uses firbase to store data
Java
2
star
17

Vaibhav2002

2
star
18

Foodles

Kotlin
2
star
19

Striver-SDE-Sheet

Java
2
star
20

Quizzify-Ktor-Server

Kotlin
2
star
21

firebase-android-sdk

Firebase Android SDK
Java
1
star
22

ProgressButton

No need to write boilerplate code for handling the different states of button ๐Ÿ˜Œ
Kotlin
1
star
23

MemoryGameChristmas

Kotlin
1
star
24

Heros_Blood

Blood Bank Application
Kotlin
1
star
25

WebDev-NewsApp

HTML
1
star
26

Sociofy_Backend

Kotlin
1
star
27

CanvasPractice

Kotlin
1
star
28

WebDev-NotesApp

CSS
1
star
29

Selenium-Automation

Python
1
star
30

DesignPatterns

Java
1
star
31

Articles

1
star
32

Porfolio

TypeScript
1
star
33

Notes-App-MVVM

implemented the mvvm architectural pattern to create this notes app.
Java
1
star
34

Chatofy

Kotlin
1
star
35

TypeScript-Codes

JavaScript
1
star
36

WebDev-Facebook-login-Screen

CSS
1
star
37

WebDev-Calculator

HTML
1
star
38

clock-app

Java
1
star
39

Canvas-JetpackCompose

Kotlin
1
star
40

Android-Dev-Challenge-week1

Kotlin
1
star
41

BrainTrainerApp

This app is made purely using kotlin. Its folows the MVVM architecutre pattern and uses the latest Android jetpack libraries like data binding, view binding, livedata, lifecycle and many more
Kotlin
1
star
42

Spring-Boot-Test-App

Java
1
star
43

Ktor-sample-app

Kotlin
1
star
44

NewsApp

An app which shows current trending news , u can saved your favourite articles in your phone and can also search for news. It is fully built using kotlin, android-X and all new jetpack libaries following the MVVM architecture pattern
Kotlin
1
star
45

MovieMate-MERN

MovieMate-Discover your next favourite movie with MovieMate - the ultimate movie guide with a hand-picked selection of the best films.
TypeScript
1
star
46

Notes-app

a notes app which stores your notes in a sqlite database .
Java
1
star