A Flutter app that acts like a VPN client using HTTP proxies from a remote list. Premium UI inspired by top VPN apps.
- Fetch proxies from https://proxies.typegpt.net/ips.txt
- Auto refresh every 30 minutes
- Server list with flags, names, IP, and latency
- Connect/Disconnect flow with animated button
- Session timer and basic data stats (stubbed)
- Settings: Auto-connect, Kill switch (stub), Split tunneling (stub)
- Flutter + Dart
- Riverpod for state management
- http for networking
- country_flags and google_fonts for UI polish
- Install Flutter (3.19+ recommended) and Dart SDK.
- From the project root, fetch packages and run:
flutter pub get
flutter run-
Android (system-wide IP change):
- Download Leaf native libs from https://github.com/eycorsican/leaf/releases (v0.11.0+).
- Copy the .so files per ABI to:
android/app/src/main/jniLibs/arm64-v8a/android/app/src/main/jniLibs/armeabi-v7a/android/app/src/main/jniLibs/x86_64/
- Build and run, allow VPN permission. If you see a notification "Native tunnel not found. Add jniLibs.", the libs are missing.
- After libs are present, the service will route traffic through the selected HTTP proxy (Leaf tun2socks). Split tunneling and Kill switch can then be enabled.
-
iOS: Requires NetworkExtension (NEPacketTunnelProvider) with Apple Developer entitlements.
Until the native libs are added, the app uses a stub tunnel; UI/notifications/speed tests work but system IP won’t change yet.
- The app enriches each proxy with country info via ipapi.co and measures TCP connect latency to rank servers.
- Be respectful of API rate limits in production; add caching/backoff.