Skip to content

A beautifully designed Flutter VPN application with an elegant UI, smooth animations, and multiple free server locations. The app features a modern design, real-time network statistics, and comprehensive VPN functionality.

Notifications You must be signed in to change notification settings

jamalihassan0307/FastVPN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Fast VPN - Secure & Free VPN App

A Modern VPN Application with Beautiful UI and Multiple Server Locations

📌 Overview

A beautifully designed Flutter VPN application with an elegant UI, smooth animations, and multiple free server locations. The app features a modern design, real-time network statistics, and comprehensive VPN functionality.

🚀 Tech Stack

  • Flutter (UI Framework)
  • GetX (State Management)
  • Hive (Local Storage)
  • Custom Animations
  • Material Design
  • VPN Engine Integration

🔑 Key Features

  • Multiple Server Locations: Free servers across various countries
  • Real-time Network Stats: Monitor your connection details
  • Dark/Light Theme: Customizable app appearance
  • Network Testing: Check connection speed and details
  • Location Selection: Choose from various VPN servers
  • Connection Timer: Track connection duration
  • Modern UI: Elegant and responsive interface
  • Onboarding Screens: Smooth introduction to the app

📸 Banner

Fast VPN App Banner

📸 Screenshots

Main Features

Home Light

Home Screen (Light)

Home Dark

Home Screen (Dark)

Locations

VPN Locations

Network Light

Network Info (Light)

Network Dark

Network Info (Dark)

Toast

Status Updates

Onboarding Experience

Splash

Splash Screen

Walkthrough 1

Walkthrough 1

Walkthrough 2

Walkthrough 2

🌍 Available Server Locations

United States Japan South Korea
Indonesia Ecuador Romania
Russia Taiwan Vietnam

📁 Project Structure

lib/
├── apis/
│   └── apis.dart
├── controllers/
│   ├── home_controller.dart
│   └── location_controller.dart
├── core/
│   └── vpn_engine.dart
├── helpers/
│   ├── pref.dart
│   └── my_dialogs.dart
├── models/
│   ├── ip_details.dart
│   ├── network_data.dart
│   └── vpn.dart
├── screens/
│   ├── home_screen.dart
│   ├── location_screen.dart
│   ├── network_test_screen.dart
│   ├── splash_screen.dart
│   └── walkthrough_screen.dart
├── widgets/
│   ├── count_down_timer.dart
│   ├── network_card.dart
│   └── vpn_card.dart
└── main.dart

📱 Download APK

You can download the latest version of the app from: APK/app-armeabi-v7a-release.apk

👨‍💻 Developer

Developed by Jam Ali Hassan


Do this to Connect / Disconnect

Connect or Disconnect vpn with single line of code!

    ...
        _vpnStage = AliVpn.vpnDisconnected;
        _selectedVpn = VpnConfig(
            config: "OVPN CONFIG IS HERE",
            name: "Japan",
            username: "VPN Username",
            password:"VPN Password"
        );
    ...

    ...
        if (_selectedVpn == null) return; //Stop right here if user not select a vpn
        if (_vpnStage == AliVpn.vpnDisconnected) {
            //Start if stage is disconnected
            AliVpn.startVpn(_selectedVpn);
        } else {
            //Stop if stage is "not" disconnected
            AliVpn.stopVpn();
        }
    ...

Listen to VPN Stage & Status

Don't forget to listen your vpn stage and status, you can simply show them with this.

    ...
        //Add listener to update vpnStage
        AliVpn.vpnStageSnapshot().listen((event) {
            setState(() {
                _vpnStage = event; //Look at stages detail below
            });
        });
    ...
    ...
        //Add listener to update vpnStatus
        AliVpn.vpnStatusSnapshot().listen((event){
            setState((){
                _vpnStatus = event;
            });
        })
    ...

VPN Stages

Let me be clearer, VPN Stage shows the connection indicator when connecting the VPN

static const String vpnConnected = "connected";
static const String vpnDisconnected = "disconnected";
static const String vpnWaitConnection = "wait_connection";
static const String vpnAuthenticating = "authenticating";
static const String vpnReconnect = "reconnect";
static const String vpnNoConnection = "no_connection";
static const String vpnConnecting = "connecting";
static const String vpnPrepare = "prepare";
static const String vpnDenied = "denied";

Note : To change notification's icon, you can go to vpnLib/main/res/drawable and replace ic_notification.png from there!

About

A beautifully designed Flutter VPN application with an elegant UI, smooth animations, and multiple free server locations. The app features a modern design, real-time network statistics, and comprehensive VPN functionality.

Topics

Resources

Stars

Watchers

Forks