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.
Note that this app is not optimized for tablets, yet. Please be patient.
Please report any issues here.
Download
You can download the lates version as APK from GitHub or get the app directly from F-Droid or Google Play.
Licenses
Copyright © 2013 Johannes Schnatterer.
Licensed under the GNU General Public License Version 3.
See the License and the licenses of dependencies.
Release notes
Permissions
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
Build
Modules
| 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 |
Gradle
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 assembleDebugto compile from scratch, run the tests and create a debug-signed APK, or run
gradlew clean check assembleReleaseto 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
~/.gradle/gradle.propertieslike sosignKeystore=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 check 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 check 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: https://github.com/schnatterer/nusic/releases/tag/v.2.1.1
-
Add changelog to google play entry


