{"id":16514910,"url":"https://github.com/schnatterer/nusic","last_synced_at":"2025-03-21T08:31:40.232Z","repository":{"id":64121362,"uuid":"12520014","full_name":"schnatterer/nusic","owner":"schnatterer","description":"your new music (android app)","archived":false,"fork":false,"pushed_at":"2022-01-03T13:16:10.000Z","size":9143,"stargazers_count":42,"open_issues_count":9,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-17T23:05:14.603Z","etag":null,"topics":["android","fdroid","gradle","music","musicbrainz"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schnatterer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-01T12:04:27.000Z","updated_at":"2023-06-15T05:50:08.000Z","dependencies_parsed_at":"2023-01-14T23:15:24.431Z","dependency_job_id":null,"html_url":"https://github.com/schnatterer/nusic","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnatterer%2Fnusic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnatterer%2Fnusic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnatterer%2Fnusic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnatterer%2Fnusic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schnatterer","download_url":"https://codeload.github.com/schnatterer/nusic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244765208,"owners_count":20506776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","fdroid","gradle","music","musicbrainz"],"created_at":"2024-10-11T16:14:21.521Z","updated_at":"2025-03-21T08:31:37.507Z","avatar_url":"https://github.com/schnatterer.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"nusic - your new music\n=====\n\nNever again miss a new album release of your favorite artists - always stay informed by nusic.\n\n\u003cimg src=\"resources/featuredGraphic-02.png\" width=500 align=\"center\"\u003e\n\nnusic uses [MusicBrainz](http://musicbrainz.org/) - the free music encyclopedia - to find out about new releases of the artists on your phone.\n\nNo account necessary.\n\n## Download\nYou can download the latest version as APK from [GitHub](https://github.com/schnatterer/nusic/releases/latest) or get the app directly from [F-Droid](https://f-droid.org/app/info.schnatterer.nusic).\nDue to Google's policy newer version can no longer be supplied via [Google Play](https://play.google.com/store/apps/details?id=info.schnatterer.nusic). However, the APKs found on GitHub are compatible, so you can use those to upgrade your old installations from Google Play.\n\n[\u003cimg src=\"https://f-droid.org/badge/get-it-on.png\" alt=\"Get it on F-Droid\" height=\"80\"\u003e](https://f-droid.org/app/info.schnatterer.nusic)\n\n[\u003cimg alt=\"Get it on Google Play\" src=\"https://play.google.com/intl/en_us/badges/images/apps/en-play-badge.png\" height=\"60\"/\u003e](https://play.google.com/store/apps/details?id=info.schnatterer.nusic)\n\n## Licenses\nCopyright © 2013 Johannes Schnatterer.\n\nLicensed under the GNU General Public License Version 3.\nSee the [License](LICENSE.txt) and the [licenses of dependencies](NOTICE.md).\n\n## Release notes\nSee [Changelog](CHANGELOG.md) and [Releases](https://github.com/schnatterer/nusic/releases).\n\n## Permissions\nWhat kind of permission does nusic require and why does it require them?\n- Network communication, full network access: Check MusicBrainz for new releases\n- Nework communication, view network connections: Get notified about available connection to the internet in order to start checking for new releases.\n- Yor applications information, run at startup: Schedule regular checking for new releases via the Android alarm manager\n- System tools, test access to protected storage: Get the artists that are stored on the device\n- Affects Battery, prevent phone from sleeping: Prevent the device from falling back to sleep while searching for new releases\n\n\n## Build\n### Modules\n| Module             | Packaging      | Description   |\n| -------------      | ------------- | ------------- |\n| parent             | - | Global build properties for all modules |\n| nusic-apk          | apk | Assembly maven module containing the guice module, wires up all dependencies and builds the APK |\n| nusic-ui-android   | aar | Contains all android specific frontend-code |\n| nusic-core-api     | jar | Interfaces of the central logic module |\n| nusic-core-android | jar | Android-specific implementation of the central logic module |\n| nusic-data-api     | jar | Interfaces of the persistence module |\n| nusic-data-android | jar | Android-specific implementation of the persistence module |\n| nusic-domain       | jar | Domain objects for persistence and migration between the layers |\n| nusic-util         | jar | Utility module, containing logic common to all modules |\n\n### Gradle\nIn order to build the APK use the [SDK manager](https://developer.android.com/tools/help/sdk-manager.html) to download the SDK Version specified in the [parent project's build.gradle](build.gradle) and deploy android to your local maven repo using [maven-android-sdk-deployer](https://github.com/mosabua/maven-android-sdk-deployer). Also make sure to set your `ANDROID_HOME` environment variable to `sdk` folder of your Android SDK.\nThen just run\n```sh\ngradlew clean check assembleDebug\n```\nto compile from scratch, run the tests and create a debug-signed APK, or run\n\n```sh\ngradlew clean check assembleRelease\n```\nto create a signed APK, using an custom keystore.\n\nFor passing the credentials for this keystore via the command line there are four options\n\n1. Define them in your `~/.gradle/gradle.properties` like so\n\n   ```ini\n   signKeystore=FULL/path/to/keystore\n   signAlias=the key's alias within the keystore\n   signKeypass=password for keystore\n   signStorepasss=password for key\n   ```\n2. Pass them as command line properties, e.g.\n\n   ```sh\n   gradlew clean check assembleRelease -PsignAlias=\"the key's alias within the keystore\"\n   ```\n3. Pass them as environment variables, e.g.\n\n   ```sh\n   export ORG_GRADLE_PROJECT_signAlias=the key's alias within the keystore\n   ```\n4. or pass them as system property, e.g.\n\n   ```sh\n   gradlew clean connectedCheck assembleRelease -Dorg.gradle.project.signKeystore=signAlias=\"the key's alias within the keystore\"\n   ```\n\n\n## Creating a release\n\n1.Set Version\n   ```sh\n   gradlew setVersion -PnewVersion=2.1.1\n   ```\n2. Update [changelog](CHANGELOG.md)\n3. Commit\n    ```sh\n    git add .\n    git commit -m \"Prepare release v.2.1.1\"\n    ```\n4. Finish release: Tag\n   ```sh\n   git tag -s \"v.2.1.1\" -m \"v.2.1.1\"\n   ```\n5. Set next dev version \u0026 commit\n    ```sh\n    gradlew setVersion -PnewVersion=2.1.2-SNAPSHOT\n    git add .\n    git commit -m \"Prepare for next development iteration v.2.1.2-SNAPSHOT\"\n    ```\n6. Checkout and build tag\n    ```sh\n    git checkout tags/v.2.1.1\n    gradlew clean connectedCheck assembleRelease\n    ```\n7. Push all branches \u0026 tags\n    ```sh\n    git push --all\n    git push --tags\n    ```\n8. Upload artifact: [Github](https://github.com/schnatterer/nusic/releases)\n9. Add changelog to github release page: https://github.com/schnatterer/nusic/releases/tag/v.2.1.1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschnatterer%2Fnusic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschnatterer%2Fnusic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschnatterer%2Fnusic/lists"}