Your Digital Privacy Companion π
Developed by Windscribe Limited - Because your privacy matters
Features β’ Building β’ Architecture β’ Contributing β’ License
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.
- 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
- OpenVPN UDP - Fast and efficient
- OpenVPN TCP - Reliable and stable
- IKEv2 - Lightning-fast with StrongSwan implementation
- Stealth Protocol - OpenVPN TCP with a cloak of invisibility
- WSTunnel - OpenVPN over WebSocket for maximum stealth
- WireGuard - The new kid on the block, and it's fast! β‘
- 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
- Custom sounds for connections
- Custom wallpapers
- Custom names for server locations
- Location favorites
- Newsfeed with promos and news
- Real-time IP address display
- Connection status monitoring
- Traffic statistics
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!)# 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! π―# 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!# 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# 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.SplashActivityandroidapp/
βββ π¦ 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
| Layer | Technology |
|---|---|
| Language | Kotlin (primary), Java (legacy) |
| UI | Jetpack Compose (Mobile), XML (TV) |
| Async | Coroutines + Kotlin Flows |
| DI | Dagger 2 |
| Database | Room |
| Networking | wsnet (custom library) |
| Background Tasks | WorkManager |
- β Google Play Billing
- β In-App Review API
- β Firebase Cloud Messaging
- β Full feature set
- β No proprietary Google dependencies
- β No payment processing
- β No push notifications
- β 100% open source friendly
For detailed architecture documentation, see AGENTS.md
Prebuilt binaries are included, but if you're feeling adventurous:
- Follow the official StrongSwan Android build guide
- Replace contents in
./strongswan/libs - Test thoroughly before committing! π§ͺ
We use ktlint with default rules:
# Check your code
./gradlew ktlintCheck
# Auto-fix issues
./gradlew ktlintFormat- β 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!
We β€οΈ contributions! Here's how to get started:
- Code Style is Sacred
- Run
ktlintFormatbefore committing - Follow existing patterns
- Keep it clean and readable
- Kotlin First, Always
- We're migrating from Java to Kotlin
- New code MUST be in Kotlin
- Use coroutines and flows
-
Respect the Module Hierarchy
Feature Modules β base β UI ModulesNO CIRCULAR DEPENDENCIES! π«
-
Test Your Changes
- Write unit tests for business logic
- Add instrumented tests for UI
- Manual testing is also important!
# 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-featureFor detailed development workflows, see SKILL.md
Format: [major].[minor].[build]
Example: 3.72.123
- 3 = Major version
- 72 = Minor version
- 123 = Build number
- AGENTS.md β AI-friendly architecture reference
- SKILL.md β Development workflows and operational guides
- docs/ β Comprehensive documentation
- docs/architecture/ β Architecture deep-dives
- docs/features/ β Feature-specific documentation
- docs/guides/ β How-to guides
- docs/workflows/ β Process documentation
- Android Developer Docs
- Kotlin Documentation
- Jetpack Compose
- Coroutines Guide
- Room Database
- π¬ Check existing issues
- π§ Reach out to the team
- π Read the documentation
- π Search the codebase for examples
Copyright (c) 2021 Windscribe Limited
All rights reserved. This project is proprietary software developed by Windscribe Limited.