Skip to content
Implemented using Clean Arch, MVVM, LiveData, Room, Koin, Coil, Service, Notification and ExoPlayer
Kotlin
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gradle
.idea
app
gradle/wrapper
player
.gitignore
LICENSE
README.md
build.gradle
diagram.png
gradle.properties
gradlew
gradlew.bat
local.properties
settings.gradle

README.md

Android-Clean-Arch-Room-Koin(MusicPlayer)

A Simple Android Mobile Application which has been implemented using Clean Architecture alongside MVVM design and consists of the music player for playing (online/offline) songs.

Technologies & Methodologies which used:

  • Koin
  • Clean Architecture
  • MVVM Pattern
  • LiveData
  • Coil(Image Loader)
  • ExoPlayer

The flow of player module which implemented:



The App Scenario

To add songs from the device, save them in database and display them in a list. And when a list item is clicked, the app displays a player page and a player service run. (This player also supports all actions on played song) And if you click long on the song item you will be able to remove it from your stored playlist.

The features of player module:

  • The player service run in the background.
  • The notification of playing song will be diplayed at top of screen. (collapse/Expand views)
  • Player actions are in use consists of play/pause, skip to next/previous, repeat one song, repeat all songs, shuffle songs,...
  • Supported swiping to left/right side.

Supported Android Versions

android versions targeted:

  • Android 4.0.3 Ice Cream Sandwich(API level 16) or higher

Used libraries

  1. Github - Multidex
  2. Github - Koin
  3. Github - Coil
  4. Github - ExoPlayer

Version History

  • 1.0 (11/20/2019)- Initial implementation

License

Copyright (c) 2019 ZARA (https://github.com/ZahraHeydari/).

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You can’t perform that action at this time.