The Proton VPN Android app is open source and available on GitHub. Contributions are welcome — whether that’s fixing bugs, improving existing features, or helping with translations.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ProtonVPN/android-app/llms.txt
Use this file to discover all available pages before exploring further.
What contributions are welcome
- Bug fixes and regression fixes
- Feature improvements that align with the project’s architecture and tech stack
- Performance improvements
- Test coverage additions
- Documentation corrections
Guidelines
When contributing, keep the following in mind:- Stick to the project’s existing code style and naming conventions
- The codebase is mostly written in Java, but the project is transitioning to Kotlin — new code should be written in Kotlin where possible
- New features or large refactors should use the preferred tech stack: Kotlin, MVVM, data-binding, and coroutines
- After adding or updating open source dependencies, run
gradlew updateLicensesJsonto update the attribution file
Copyright assignment
By making a contribution to this project, you agree to the following terms:
- You assign any and all copyright related to the contribution to Proton AG.
- You certify that the contribution was created in whole by you.
- You understand and agree that this project and the contribution are public, and that a record of the contribution (including all personal information you submit with it) is maintained indefinitely and may be redistributed with this project or the open source licenses involved.
Opening a pull request
Fork and clone the repository
Fork the android-app repository on GitHub, then clone your fork locally.
Make your changes
Follow the code style and build instructions to set up your environment. Write tests where appropriate — see the testing guide for how to run them locally.
CI checks
When you open a pull request, the internal CI pipeline automatically runs the following checks:Checkstyle
Checkstyle
Enforces the Java code style defined in
ProtonStyle.xml. Run locally with:Detekt
Detekt
Static analysis for Kotlin code. Run locally with:
Unit tests
Unit tests
Runs all JVM unit tests. Run locally with:
Instrumented tests
Instrumented tests
Runs Android instrumented tests. Run locally with:
Code ownership
All files in the repository are owned by the@ProtonVPN/groups/android-developers team, who are responsible for reviewing and merging pull requests.