nusic - your new music
Never again miss a new album release of your favorite artists - always stay informed by nusic.
nusic uses MusicBrainz - the free music encyclopedia - to find out about new releases of the artists on your phone.
No account necessary.
You can download the latest version as APK from GitHub or get the app directly from F-Droid. Due to Google's policy newer version can no longer be supplied via Google Play. However, the APKs found on GitHub are compatible, so you can use those to upgrade your old installations from Google Play.
Copyright © 2013 Johannes Schnatterer.
What kind of permission does nusic require and why does it require them?
- Network communication, full network access: Check MusicBrainz for new releases
- Nework communication, view network connections: Get notified about available connection to the internet in order to start checking for new releases.
- Yor applications information, run at startup: Schedule regular checking for new releases via the Android alarm manager
- System tools, test access to protected storage: Get the artists that are stored on the device
- Affects Battery, prevent phone from sleeping: Prevent the device from falling back to sleep while searching for new releases
|parent||-||Global build properties for all modules|
|nusic-apk||apk||Assembly maven module containing the guice module, wires up all dependencies and builds the APK|
|nusic-ui-android||aar||Contains all android specific frontend-code|
|nusic-core-api||jar||Interfaces of the central logic module|
|nusic-core-android||jar||Android-specific implementation of the central logic module|
|nusic-data-api||jar||Interfaces of the persistence module|
|nusic-data-android||jar||Android-specific implementation of the persistence module|
|nusic-domain||jar||Domain objects for persistence and migration between the layers|
|nusic-util||jar||Utility module, containing logic common to all modules|
In order to build the APK use the SDK manager to download the SDK Version specified in the parent project's build.gradle and deploy android to your local maven repo using maven-android-sdk-deployer. Also make sure to set your
ANDROID_HOME environment variable to
sdk folder of your Android SDK.
Then just run
gradlew clean check assembleDebug
to compile from scratch, run the tests and create a debug-signed APK, or run
gradlew clean check assembleRelease
to create a signed APK, using an custom keystore.
For passing the credentials for this keystore via the command line there are four options
Define them in your
signKeystore=FULL/path/to/keystore signAlias=the key's alias within the keystore signKeypass=password for keystore signStorepasss=password for key
Pass them as command line properties, e.g.
gradlew clean check assembleRelease -PsignAlias="the key's alias within the keystore"
Pass them as environment variables, e.g.
export ORG_GRADLE_PROJECT_signAlias=the key's alias within the keystore
or pass them as system property, e.g.
gradlew clean connectedCheck assembleRelease -Dorg.gradle.project.signKeystore=signAlias="the key's alias within the keystore"
Creating a release
gradlew setVersion -PnewVersion=2.1.1
- Update changelog
git add . git commit -m "Prepare release v.2.1.1"
- Finish release: Tag
git tag -s "v.2.1.1" -m "v.2.1.1"
- Set next dev version & commit
gradlew setVersion -PnewVersion=2.1.2-SNAPSHOT git add . git commit -m "Prepare for next development iteration v.2.1.2-SNAPSHOT"
- Checkout and build tag
git checkout tags/v.2.1.1 gradlew clean connectedCheck assembleRelease
- Push all branches & tags
git push --all git push --tags
- Upload artifact: Github
- Add changelog to github release page: https://github.com/schnatterer/nusic/releases/tag/v.2.1.1