M5VPN
Dark-themed VPN app with VLESS protocol and App Store approval
Screenshots
Client
Client needed a custom-branded VPN app for distribution in the App Store. Required a dark, minimalist design and fast connection via modern protocols.
Problem
VPN is one of the hardest categories to get approved in App Store. Apple regularly rejects VPN apps for vague reasons. The client needed an app that passes review, connects via VLESS (a modern protocol that avoids detection), and has a polished dark UI. The app had to work with the client's existing server infrastructure.
Solution
SwiftUI app with forced dark color scheme. MVVM architecture with global AppState singleton and TunnelManager for NetworkExtension management. VPN tunnel via NETunnelProviderManager with LibXray (C binding) and Tun2SocksKit for SOCKS5 bridging. VlessLinkParser handles vless:// URI parsing. Configuration priority: server-provided xray_config JSON first, fallback to VLESS link parsing via LibXray. Server selection with country flags, IP display, and traffic statistics. App Group shared container for passing config to the PacketTunnelProvider extension.
Results
- +Approved and live in App Store
- +VLESS protocol via Xray core (avoids detection)
- +Dark minimalist UI with traffic statistics
- +Network Extension with PacketTunnelProvider
- +Clean MVVM architecture
Role & timeline
Solo iOS Developer. SwiftUI, NetworkExtension, Xray/VLESS integration. 4 weeks


