Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

nusic - your new music

Build Status Develop Quality Gates Develop License

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.

Note that this app is not optimized for tablets, yet. Please be patient.

Please report any issues here.


You can download the lates version as APK from GitHub or get the app directly from F-Droid or Google Play.

Get it on F-Droid

Get it on Google Play


Copyright © 2013 Johannes Schnatterer.

Licensed under the GNU General Public License Version 3. See the License and the licenses of dependencies.

Release notes

See Changelog and Releases.


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



Module Packaging Description
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

  1. Define them in your ~/.gradle/ like so

    signAlias=the key's alias within the keystore
    signKeypass=password for keystore
    signStorepasss=password for key
  2. Pass them as command line properties, e.g.

    gradlew clean check assembleRelease -PsignAlias="the key's alias within the keystore"
  3. Pass them as environment variables, e.g.

    export ORG_GRADLE_PROJECT_signAlias=the key's alias within the keystore
  4. 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

TODO Automate this, e.g. via Jenkins

  • Start release

    git-flow release start v.2.1.1
  • Set Version

    gradlew setVersion -PnewVersion=2.1.1
  • Update changelog

  • Commit

    git add .
    git commit -m "Prepare release v.2.1.1"
  • Finish release & Tag (+ tag message)

    git-flow release finish 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
  • Update F-Droid metadata by adding new release to the metadata (e.g. via this fork) and creating a merge request

  • Upload artifact: Github, Google Play

  • Add changelog to github release page:

  • Add changelog to google play entry

You can’t perform that action at this time.