Download and play songs from your phone.
Go here for installation.
This app is the mobile version of this app, which is out of date and is soon to be updated.
If you have any issues or suggestions, feel free to open a pull request or file an issue
If you wish to customize or learn more about the project, go here.
For android, you can directly download a built version of the latest release here. First generate the API Keys and then download the APK from the latest release.
If you are on iOS or want to download and build the project yourself, follow the steps given below.
The app requires A Napster API Key, to function.
Steps to create the API Key can be viewed here.
Once you have those created, you can move onto running the app. You will need to enter the api keys directly in the app.
First install flutter. After that run:
flutter pub get
This will install dependecies.
To run the tests, written for the app, run:
flutter test
If you wish to test the app to see if it works, connect a device or run
an emulator. To start the profile
mode app (runs faster than debug
mode, but doesn't have the developer functionalities), run:
flutter run --profile --flavor dev
Signing the app:
-
Create a Keystore
If you have an existing keystore, skip to the next step. If not, create one by running the following at the command line:
On Mac/Linux, use the following command:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
On Windows, use the following command:
keytool -genkey -v -keystore c:\Users\USER_NAME\key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
This command stores the
key.jks
file in your home directory. If you want to store it elsewhere, change the argument you pass to the-keystore
parameter.- The keytool command might not be in your path—it’s part of Java, which is installed as part of Android Studio. For the concrete path, run flutter doctor -v and locate the path printed after ‘Java binary at:’. Then use that fully qualified path replacing java (at the end) with keytool. If your path includes space-separated names, such as Program Files, use platform-appropriate notation for the names. For example, on Mac/Linux use Program\ Files, and on Windows use "Program Files".
- The -storetype JKS tag is only required for Java 9 or newer. As of the Java 9 release, the keystore type defaults to PKS12.
-
Reference the keystore from the app
Create a file named
android/key.properties
that contains a reference to your keystore:storePassword=<password from previous step> keyPassword=<password from previous step> keyAlias=key storeFile=<location of the key store file, such as /home/<user name>/key.jks>
Building APK:
-
'fat' APK
flutter build apk --flavor prod
This will build a 'fat' APK, which contains code compiled for all architectures, which means it can run on all android devices.
-
Split APKs
flutter build apk --split-per-abi --flavor prod
This will split it into different APKs, based on the architecture which results in smaller app sizes, but it only works on phones with the specific architecture.
Once finished building, the APK will be available at
build/app/outputs/flutter-apk/app-prod-release.apk
. To install, either
transfer the apk to your phone and install, or connect your device via
USB Tethering and run:
flutter install
You may be shown this popup when installing the app:
You can safely click 'Install Anyway'.
See flutter's ios release documentaion.
The app was built with an android testing device and so it may not function fully as intended in ios. In general the UI will look and work the same, but platform specific things like notifications may not. For example, android allows for progress notifications while ios does not.