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.