Convert Figma logo to code with AI

ProtonVPN logoandroid-app

Official ProtonVPN Android app

2,203
293
2,203
65

Top Related Projects

The Mullvad VPN client app for desktop and mobile

Quick Overview

ProtonVPN/android-app is the official Android application for ProtonVPN, a secure and privacy-focused VPN service. This open-source project allows users to connect to ProtonVPN servers and protect their online activities on Android devices. It provides a user-friendly interface for managing VPN connections and settings.

Pros

  • Open-source, allowing for community review and contributions
  • Implements strong security features and encryption protocols
  • Regular updates and maintenance from the ProtonVPN team
  • Supports advanced features like split tunneling and NetShield

Cons

  • May have occasional stability issues on certain Android devices
  • Limited customization options compared to some third-party VPN clients
  • Requires a ProtonVPN account to use, not compatible with other VPN services
  • Some advanced features are only available for paid subscribers

Getting Started

To use the ProtonVPN Android app:

  1. Clone the repository:

    git clone https://github.com/ProtonVPN/android-app.git
    
  2. Open the project in Android Studio.

  3. Build and run the app on an Android device or emulator.

  4. Sign in with your ProtonVPN account or create a new one.

  5. Select a server and connect to start using the VPN.

Note: This is an Android application, not a code library, so there are no specific code examples or quick start instructions for integration into other projects.

Competitor Comparisons

The Mullvad VPN client app for desktop and mobile

Pros of mullvadvpn-app

  • Cross-platform support (Android, iOS, Windows, macOS, Linux)
  • More frequent commits and active development
  • Comprehensive documentation and user guides

Cons of mullvadvpn-app

  • Smaller community and fewer contributors
  • Less extensive feature set compared to ProtonVPN
  • Limited localization options

Code Comparison

mullvadvpn-app:

private fun createTunnel() = CoroutineScope(Dispatchers.Main).launch {
    val tunnel = Tunnel(TunnelState.Disconnected)
    tunnelStateResolver.updateTunnelState(tunnel)
    tunnelManager.createTunnel(tunnel)
}

android-app:

private fun connectToBestServer() {
    viewModelScope.launch {
        val server = serverManager.getBestServer()
        vpnConnectionManager.connect(server)
    }
}

Both repositories use Kotlin for Android development and implement asynchronous operations using coroutines. The mullvadvpn-app code snippet shows a more modular approach with separate tunnel state management, while the android-app code focuses on server selection and connection in a single function.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

ProtonVPN for Android

Copyright (c) 2019 Proton AG

Download

Get it on Google Play Get it on F-Droid Get it on GitHub

Build instructions

  • Install sdk, ndk, cmake, swig
  • Clone this repository
  • ./gradlew assembleProductionVanillaOpenSourceDebug or open and build in Android Studio

Build release

To complete a release build signing keys need to be provided:

  • ./gradlew assembleProductionVanillaOpenSourceRelease -PkeyStoreFilePath=<keystore> -PkeyStoreKeyAlias=<alias> -PkeyStorePassword=<pass> -PkeyStoreKeyPassword=<key-pass>

Code style

Project uses agreed code style ProtonStyle.xml for java. Import it in Android studio via File>>Settings>>Editor>>Code style>>Import Scheme For kotlin's code style we use ktlint with default rules

Contributing

If you would like to contribute, please keep in mind the following rules:

  • Try to stick to the project's existing code style and naming conventions
  • The code base is mostly written in Java, but we are transitioning to Kotlin, so new code should be written in Kotlin where possible
  • Our preferred tech stack is Kotlin, MVVM, data-binding and coroutines, so any new features or large refactors should conform to this preferred tech stack
  • After adding/updating open source dependencies run gradlew updateLicensesJson to update attributions.

Internally our CI automatically checks all pull requests for code style issues, and runs our tests. However you can run those locally as well.

gradlew checkstyle
gradlew detekt
gradlew test
gradlew androidTest

By making a contribution to this project you agree to the following:

  1. I assign any and all copyright related to the contribution to Proton Technologies AG;
  2. I certify that the contribution was created in whole by me;
  3. I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it) is maintained indefinitely and may be redistributed with this project or the open source license(s) involved.

Signature

All our builds (except for F-droid) will be signed with same key. SHA256 fingerprint for signing certificate

ch.protonvpn.android
DC:C9:43:9E:C1:A6:C6:A8:D0:20:3F:34:23:EE:42:BC:C8:B9:70:62:8E:53:CB:73:A0:39:3F:39:8D:D5:B8:53

Versioning

  • Version matches format: [major][minor][patch][hotfix]

License

The code and datafiles in this distribution are licensed under the terms of the GPLv3 as published by the Free Software Foundation. See https://www.gnu.org/licenses/ for a copy of this license.

Copyright (c) 2019 Proton AG