• Stars
    star
    152
  • Rank 244,685 (Top 5 %)
  • Language
    Kotlin
  • License
    MIT License
  • Created almost 3 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
126
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
78
star
3

NewsGo

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

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
44
star
5

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
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

Vaibhav2002

3
star
12

Spring-Boot-Notes-REST-API

Java
3
star
13

NextLife

Kotlin
3
star
14

NoteSy-MERN

NoteSy - All your notes. Organized. Effortless. NoteSy is a MERN app built using Typescript following best practices.
TypeScript
3
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

Foodles

Kotlin
2
star
18

Striver-SDE-Sheet

Java
2
star
19

Quizzify-Ktor-Server

Kotlin
2
star
20

MovieMate-MERN

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

MemoryGameChristmas

Kotlin
1
star
22

Heros_Blood

Blood Bank Application
Kotlin
1
star
23

WebDev-NewsApp

HTML
1
star
24

Sociofy_Backend

Kotlin
1
star
25

CanvasPractice

Kotlin
1
star
26

WebDev-NotesApp

CSS
1
star
27

Selenium-Automation

Python
1
star
28

DesignPatterns

Java
1
star
29

Articles

1
star
30

Porfolio

TypeScript
1
star
31

Notes-App-MVVM

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

Chatofy

Kotlin
1
star
33

TypeScript-Codes

JavaScript
1
star
34

WebDev-Facebook-login-Screen

CSS
1
star
35

WebDev-Calculator

HTML
1
star
36

clock-app

Java
1
star
37

Canvas-JetpackCompose

Kotlin
1
star
38

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
39

Spring-Boot-Test-App

Java
1
star
40

Ktor-sample-app

Kotlin
1
star
41

Android-Dev-Challenge-week1

Kotlin
1
star
42

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
43

Notes-app

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