Thanks for helping make SaavnMp3‑Android better! We welcome all kinds of contributions — bug fixes, new features, documentation improvements, and more.
This project is a clean, ad‑free Android music streaming app built in Java using the unofficial JioSaavn API.
Before contributing, ensure your development environment is ready:
- Java (version used by project; latest stable is advisable)
- Android Studio
- Android SDK (with required API levels)
- Emulator or Android device for testing
- Git
-
Fork this repository to your own GitHub account.
-
Clone your fork:
git clone https://github.com/<your-username>/SaavnMp3-Android.git cd SaavnMp3-Android
-
(Optional but recommended) Add upstream remote:
git remote add upstream https://github.com/harshshah6/SaavnMp3-Android.git
- Open the project in Android Studio (File → Open) and point to the cloned folder.
- Allow Gradle to sync.
- Make sure you can build and run the app on emulator or device.
- If there are configuration files (API keys, local settings), ensure they are untracked (e.g. via
.gitignore) and provide a template or guide for contributors.
When you spot a bug:
-
Search existing open/closed issues — maybe it’s already reported.
-
If not, create a new issue with:
- A clear title
- Steps to reproduce
- Expected vs actual behavior
- Logs, stack trace, screenshots
- Device / OS version info
For new features or improvements:
-
Create an issue labeled “enhancement” (or similar).
-
Describe:
- What you want to do
- Why it’s needed / use case
- Any sketches or mockups
- Possible implementation approach
-
Create a descriptive branch from
master. Example:git checkout -b feature/your-feature-name
-
Work on your change.
-
Commit with a meaningful message.
-
Push your branch to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request (PR) against the upstream
masterbranch. -
In the PR description, include:
- What change or feature you have implemented
- Why this change was needed
- How to test it
- Any screenshots (if UI changes)
-
Be ready to respond to review feedback and make updates.
- Follow standard Java/Android naming conventions (e.g.
camelCasefor methods,PascalCasefor classes). - Keep methods short and single‑purpose.
- Avoid magic numbers — use constants or resource files.
- Use resource files (
strings.xml,colors.xml,dimens.xml) rather than hardcoded values. - Include Javadoc-style comments for public classes/methods.
- Use
@Nullable,@NonNullannotations where appropriate. - Keep UI responsive — avoid doing heavy tasks on the main thread.
- Use Android best practices (if applicable).
Use clear, conventional commit messages. A recommended structure:
<type>(<scope>): <short description>
Optional detailed explanation.
Where <type> might be:
feat: new featurefix: a bug fixdocs: documentation changesstyle: formatting, whitespace, etcrefactor: code structure changes (no feature/bug)test: adding or updating testschore: build / tooling changes
Example:
feat(player): add shuffle mode for playback
Allows user to toggle shuffle mode in the player UI.
masteris the stable branch.- Branch new work from
master(e.g.feature/xyz,fix/issue-123). - Avoid working directly on
masterfor unreviewed changes.
- Before submitting a PR, run all tests locally and ensure nothing is broken.
- PRs will be reviewed by maintainers or experienced contributors.
- You may be asked to revise style, logic, or documentation.
- After approval and passing CI checks, your PR will be merged (via squash or merge).
- We may add you to the list of contributors if your contributions continue.
Don’t be discouraged by feedback — it helps improve code quality and consistency.
- You can ask questions by opening an issue with the label “question.”
- You may also tag project maintainers or contributors in issues or PRs for guidance.
- For general discussions or planning, issues or project boards can be used.
Thank you — your contributions help make SaavnMp3‑Android stronger and better for everyone! 🙏