Skip to content
This repository has been archived by the owner on Aug 31, 2022. It is now read-only.

veezee-music/veezee-android

Repository files navigation

veezee - music streamer (Android)


veezee is a cross-platform music streamer inspired by Apple Music and Spotify for iOS and Android. It is built with native technologies for each platform (Swift and Kotlin).

This is the repository for veezee for Android, the iOS version can be found here.


General features

  • Supports tracks, albums, playlists and genres
  • User management with traditional email/password and Google (Supports cross-device sessions)
  • Local/offline (Couchbase) database support
  • Offline mode
  • Themes support
  • Sharing

Android version features

  • Completely written in Kotlin
  • Optimized for all screen aspect ratios
  • Uses ConstraintLayout
  • RxKotlin (Limited use)
  • High performance/quality audio streaming engine (using ExoPlayer)
  • Guest mode (Without login)
  • Many custom views for different pages
  • Beautiful animations and transitions
  • Native Dark mode
  • And more...

Things that are NOT supported/planned

  • Supporting devices with smaller screens (Minimum for Android is 5 inches)
  • Localization
  • Equalizer

How to use

Compiling: Android version

You'll need to use Android Studio.

  • Open Android Studio and generate a keystore file that is going to be used to sign the app (for both debug and production builds) (Instructions)
  • Rename the example-gradle.properties file to gradle.properties located in the project root and optionally fill it with API keys for various services supported by veezee
  • Open the project by using Android Studio file menu.
  • Wait for Android Studio to complete the indexing proccess and then sync Gradle and then build the project.
  • Select a device or emulator with a screen size equal or larger than 5 inch (e.g. Nexus 5, Google Pixel, Galaxy S9) and run the project

Common Android Studio issues

  • Be aware of the different results you may get when using quotation marks around values in gradle.properties file

Setting up a server (IMPORTANT!)

veezee depends on a functioning HTTPS API server to show music lists and play music as well as do user management and provide analytics data. An incomplete example is provided by the veezee team that can be used as a starting point but it's not completely safe and must be reviewed thoroughly before used in a production environment.

The server can be set up either on the localhost or the Internet. This server's address must be specified in the Constants.kt file in the Android application's project code.

https://veezee.ir/api/v1/ is a demo API limited in functionaliity (registrations not allowed) that can be used to understand the apps behavior. It contains some music and image files that exist for educational purposes only! No profit is gained from them. Its content may not be used in any way that may violate any copyright laws. This server does not have powerful hardware and network connectivity and is expected to be slow and unresponsive at times.

For more information about the server application please visit here.

License

veezee (Android) is available under the MIT license. See LICENSE file for more info.