An open API service indexing awesome lists of open source software.

https://github.com/vpnclient/vpnclient-react-native-app


https://github.com/vpnclient/vpnclient-react-native-app

Last synced: 5 months ago
JSON representation

Awesome Lists containing this project

README

          

# VPNclient App (React-Native Implementation)

A cross-platform, open-source VPN client with support for multiple protocols (Xray, WireGuard, OpenVPN) and advanced routing capabilities.

## 🌟 Key Features

### Core Functionality
- **Multi-Protocol Support**: VMess, VLESS, Reality (Xray), WireGuard, OpenVPN
- **Cross-Platform**: iOS, Android
- **Subscription Management**: Import server lists via URL
- **Advanced Routing**: Split tunneling, domain rules, app-level routing

### Security
- Kill Switch protection
- Auto-connect on startup
- No root/jailbreak required

### Performance
- Real-time connection stats
- Server latency testing
- Optimized native engine

## πŸ“¦ Architecture Overview

```mermaid
flowchart LR
subgraph subGraph0["ReactNative Application"]
UI@{ label: "VPNclient App (ReactNative UI)" }
end
subgraph subGraph1["ReactNative Plugin"]
Plugin["VPNclient Engine ReactNative"]
end
subgraph subGraph2["Native Core"]
Core["VPNclient Engine Library"]
end
UI --> Plugin
Plugin --> Core
Core --> iOS["iOS"] & Android["Android"]

UI@{ shape: rect}
```

**Technology Stack**:
- **Frontend**: React Native, TypeScript
- **State**: Zustand/Redux Toolkit
- **Styling**: Restyle/NativeWind
- **Testing**: Jest, Detox
- **CI/CD**: GitHub Actions, Fastlane

---
## 🧱 АрхитСктура React Native прилоТСния

### 1. **АрхитСктурный ΡΡ‚ΠΈΠ»ΡŒ**

* **Modular Monorepo** (Ссли Web ΠΈ Mobile): ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ **Turborepo** ΠΈΠ»ΠΈ **Nx** β€” Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ UI ΠΌΠ΅ΠΆΠ΄Ρƒ web/mobile.
* **Clean Architecture**: Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° слои `presentation` / `application` / `domain` / `infrastructure`.

### 2. **Навигация**

* `@react-navigation/native` с **bottom-tabs + stack-nesting** (Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ для e-commerce).
* Deep Linking + Universal Links (Π²Π°ΠΆΠ½ΠΎ для ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π° ΠΈ ΠΏΡƒΡˆΠ΅ΠΉ).

### 3. **БостояниС**

* `Zustand` ΠΈΠ»ΠΈ `Redux Toolkit` с RTK Query (ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ API).
* НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ **react-query** / `TanStack Query`, Ссли Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π°ΠΊΡ†Π΅Π½Ρ‚ Π½Π° data fetching.

### 4. **UI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹**

* **Atomic Design** ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° `Atoms`, `Molecules`, `Organisms`.
* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `Restyle` ΠΈΠ»ΠΈ `NativeWind` для стилизации.

### 5. **Π Π°Π±ΠΎΡ‚Π° с API**

* REST-first, GraphQL Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли бэкСнд Π³ΠΎΡ‚ΠΎΠ² Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.
* АвтоматичСская гСнСрация Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Swagger / OpenAPI.

---

## πŸ§ͺ ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

### 1. **CI/CD**

* GitHub Actions ΠΈΠ»ΠΈ GitLab CI.
* АвтоматичСская сборка Π½Π° TestFlight ΠΈ Google Play Internal (Ρ‡Π΅Ρ€Π΅Π· EAS ΠΎΡ‚ Expo ΠΈΠ»ΠΈ fastlane).

### 2. **Code Quality**

* ESLint + Prettier + Husky + Lint-Staged.
* Бтрогая типизация (TypeScript).
* Codegen Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ· API (Swagger / GraphQL).

### 3. **ВСстированиС**

* **Unit**: `Jest`, `Testing Library`.
* **E2E**: `Detox` (для React Native).
* Π’Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ критичСского UI ΠΈ flows (Π»ΠΎΠ³ΠΈΠ½, ΠΊΠΎΡ€Π·ΠΈΠ½Π°, checkout).

### 4. **ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹**

* Kanban/Agile + weekly sprint planning.
* Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ CI/CD ΠΈ Feature Flags (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с `LaunchDarkly` ΠΈΠ»ΠΈ `ConfigCat`) для Π³ΠΈΠ±ΠΊΠΈΡ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ².

---

## πŸš€ Getting Started

### For End Users
Download from official stores:
- [Google Play](https://play.google.com/store/apps/details?id=click.vpnclient)
- [App Store (TestFlight)](https://testflight.apple.com/join/KQr4SeS7)

### For Developers
```bash
# Clone repository
git clone https://github.com/VPNclient/VPNclient-react-native-app.git
cd VPNclient-react-native-app

# Install dependencies
yarn install

# Run on iOS/Android
yarn ios
yarn android
```

**Platform Requirements**:
- Android 6.0+
- iOS 15.6+
- Node.js 18+

## πŸ“¬ Support

- [GitHub Issues](https://github.com/VPNclient/VPNclient-app/issues)
- [Telegram Group](https://t.me/vpnclient_chat)
- Email: support@vpnclient.click

---

> Part of the **VPNclient Ecosystem**:
> - [Engine Core](https://github.com/VPNclient/VPNclient-engine)
> - [React Native Plugin](https://github.com/VPNclient/VPNclient-engine-react-native)