๐Ÿ›ก๏ธ Windscribe VPN for Android

May 31, 2026 ยท View on GitHub

Your Digital Privacy Companion ๐Ÿš€

Android Kotlin License

Developed by Windscribe Limited - Because your privacy matters

Features โ€ข Building โ€ข Architecture โ€ข Contributing โ€ข License


๐Ÿ“ฑ About

Windscribe VPN is a top-notch VPN application that offers comprehensive privacy and security features for Android devices. Whether you're browsing on your phone, tablet, or Android TV, Windscribe has you covered with military-grade encryption and blazing-fast servers worldwide.

โœจ Key Features

๐Ÿ” Authentication & Account Management

  • SSO Login - One-click authentication
  • Captcha Support - Bot protection that actually works
  • Email Verification - Get free data when you confirm your email
  • Account Management - Full control at your fingertips

๐ŸŒ Six VPN Protocols (Because one size doesn't fit all!)

  1. OpenVPN UDP - Fast and efficient
  2. OpenVPN TCP - Reliable and stable
  3. IKEv2 - Lightning-fast with StrongSwan implementation
  4. Stealth Protocol - OpenVPN TCP with a cloak of invisibility
  5. WSTunnel - OpenVPN over WebSocket for maximum stealth
  6. WireGuard - The new kid on the block, and it's fast! โšก

๐ŸŽฏ Advanced Features

  • Per-Network Configuration - Different protocols for different networks
  • Network Auto-Detection - Seamless switching (requires location permissions)
  • Split Tunneling - Choose which apps use the VPN
  • App Decoy Traffic - Throw off surveillance with fake traffic
  • Custom Configurations - Import your own WireGuard/OpenVPN configs
  • R.O.B.E.R.T - DNS filtering with customizable toggles
  • Static IP Addresses - Available with pro plans

๐ŸŽจ Personalization

  • Custom sounds for connections
  • Custom wallpapers
  • Custom names for server locations
  • Location favorites
  • Newsfeed with promos and news

๐Ÿ“Š Transparency

  • Real-time IP address display
  • Connection status monitoring
  • Traffic statistics

๐Ÿ—๏ธ Building from Source

Prerequisites

Before you dive in, make sure you have these tools ready:

โ˜ Android Studio (Latest stable version)
โ˜ Android SDK (API 21+)
โ˜ Android NDK (for native code compilation)
โ˜ CMake (for building native modules)
โ˜ SWIG (for generating JNI bindings)
โ˜ Git (obviously!)

Quick Start

# Clone the repository
git clone https://github.com/Windscribe/Android-App.git
cd androidapp

# Build debug version
./gradlew assembleDebug

# Or open in Android Studio and hit Run! ๐ŸŽฏ

Build Commands Cheat Sheet

# Debug Builds
./gradlew assembleDebug              # Build debug APK
./gradlew :mobile:assembleGoogleDebug   # Mobile app only
./gradlew :tv:assembleGoogleDebug       # TV app only

# Release Builds
./gradlew assembleRelease            # Build release APK
./gradlew bundleGoogleRelease        # Google Play AAB
./gradlew bundleFdroidRelease        # F-Droid AAB

# Testing
./gradlew test                       # Unit tests
./gradlew connectedAndroidTest       # Instrumented tests

# Code Quality
./gradlew ktlintCheck                # Check Kotlin style
./gradlew ktlintFormat               # Auto-format Kotlin
./gradlew dependencyCheckAnalyze     # Security analysis

# Cleaning
./gradlew clean                      # Fresh start!

Installing & Running

Mobile App ๐Ÿ“ฑ

# Build and install
./gradlew :mobile:assembleGoogleDebug
$ANDROID_HOME/platform-tools/adb install -r mobile/build/outputs/apk/google/debug/mobile-google-debug.apk

# Launch the app
$ANDROID_HOME/platform-tools/adb shell am start -n com.windscribe.vpn/com.windscribe.mobile.ui.AppStartActivity

TV App ๐Ÿ“บ

# Build and install
./gradlew :tv:assembleGoogleDebug
$ANDROID_HOME/platform-tools/adb install -r tv/build/outputs/apk/google/debug/tv-google-debug.apk

# Launch the app
$ANDROID_HOME/platform-tools/adb shell am start -n com.windscribe.vpn/com.windscribe.tv.splash.SplashActivity

๐Ÿ›๏ธ Architecture

Module Structure (The Big Picture)

androidapp/
โ”œโ”€โ”€ ๐Ÿ“ฆ base/              # Core functionality hub
โ”‚   โ”œโ”€โ”€ api/             # API communication
โ”‚   โ”œโ”€โ”€ backend/         # VPN protocol handlers
โ”‚   โ”œโ”€โ”€ localdatabase/   # Room database
โ”‚   โ”œโ”€โ”€ repository/      # Data layer
โ”‚   โ””โ”€โ”€ services/        # Android services
โ”œโ”€โ”€ ๐Ÿ“ฑ mobile/           # Phone/tablet UI (Jetpack Compose)
โ”œโ”€โ”€ ๐Ÿ“บ tv/               # Android TV UI (XML layouts)
โ”œโ”€โ”€ ๐Ÿ”Œ Protocol Modules
โ”‚   โ”œโ”€โ”€ openvpn/        # OpenVPN implementation
โ”‚   โ”œโ”€โ”€ strongswan/     # IKEv2/IPSec
โ”‚   โ””โ”€โ”€ wgtunnel/       # WireGuard, WSTunnel, Stunnel & ControlD (All Go code compiled to single lib)
โ”œโ”€โ”€ ๐ŸŒ wsnet/           # Networking library
โ””โ”€โ”€ ๐Ÿงช test/            # Shared test utilities

Technology Stack

LayerTechnology
LanguageKotlin (100% of app modules; vendored native VPN modules are C/C++/Go/Java)
UIJetpack Compose (Mobile), XML (TV)
AsyncCoroutines + Kotlin Flows
DIHilt
DatabaseRoom
Networkingwsnet (custom library)
Background TasksWorkManager

Build Variants

๐ŸŸข Google Play (google flavor)

  • โœ… Google Play Billing
  • โœ… In-App Review API
  • โœ… Firebase Cloud Messaging
  • โœ… Full feature set

๐ŸŸ  F-Droid (fdroid flavor)

  • โŒ No proprietary Google dependencies
  • โŒ No payment processing
  • โŒ No push notifications
  • โœ… 100% open source friendly

For detailed architecture documentation, see AGENTS.md


๐ŸŽฏ StrongSwan Setup

Prebuilt binaries are included, but if you're feeling adventurous:

  1. Follow the official StrongSwan Android build guide
  2. Replace contents in ./strongswan/libs
  3. Test thoroughly before committing! ๐Ÿงช

๐Ÿ’ป Code Style

Kotlin (Preferred) โœจ

We use ktlint with default rules:

# Check your code
./gradlew ktlintCheck

# Auto-fix issues
./gradlew ktlintFormat

General Guidelines

  • โœ… Use Kotlin for all new code
  • โœ… Prefer coroutines over callbacks
  • โœ… Use Kotlin flows for reactive streams
  • โœ… Follow MVP pattern
  • โœ… Write meaningful commit messages
  • โœ… Test your changes!

๐Ÿค Contributing

We โค๏ธ contributions! Here's how to get started:

The Golden Rules

  1. Code Style is Sacred
  • Run ktlintFormat before committing
  • Follow existing patterns
  • Keep it clean and readable
  1. Kotlin First, Always
  • The app modules (base/mobile/tv) are 100% Kotlin โ€” keep them that way
  • New code MUST be in Kotlin (no new Java files)
  • Use coroutines and flows
  1. Respect the Module Hierarchy

    Feature Modules โ†’ base โ†’ UI Modules
    

    NO CIRCULAR DEPENDENCIES! ๐Ÿšซ

  2. Test Your Changes

  • Write unit tests for business logic
  • Add instrumented tests for UI
  • Manual testing is also important!

Development Workflow

# 1. Create a feature branch
git checkout -b feature/awesome-new-feature

# 2. Make your changes
# ... code code code ...

# 3. Format and lint
./gradlew ktlintFormat

# 4. Run tests
./gradlew test

# 5. Commit with meaningful message
git commit -m "feat: add awesome new feature"

# 6. Push and create PR
git push origin feature/awesome-new-feature

For detailed development workflows, see SKILL.md


๐Ÿ”ข Versioning

Format: [major].[minor].[build]

Example: 3.72.123

  • 3 = Major version
  • 72 = Minor version
  • 123 = Build number

๐Ÿ“š Additional Resources


๐Ÿ†˜ Getting Help

  • ๐Ÿ’ฌ Check existing issues
  • ๐Ÿ“ง Reach out to the team
  • ๐Ÿ“ Read the documentation
  • ๐Ÿ” Search the codebase for examples

๐Ÿ“„ License

Copyright (c) 2021 Windscribe Limited

All rights reserved. This project is proprietary software developed by Windscribe Limited.


Happy Coding! ๐Ÿš€

Made with โค๏ธ and lots of โ˜•

โฌ† Back to Top