Personal project / 2025
Virtual Gamepad
A two-part experiment: a landscape SwiftUI controller with touch controls and haptic feedback, plus a small Windows server that translates WebSocket messages into XInput events. The server is also distributed as an executable so the setup does not require a Python environment.
Role
iOS client and Windows server development
Year
2025
Full stack
8 tools
Full stack
- 01Swift
- 02SwiftUI
- 03Starscream
- 04WebSockets
- 05Python
- 06FastAPI
- 07vgamepad
- 08ViGEm
01
Built around
- The client covers standard Xbox 360 inputs, twin analogue sticks, triggers, shoulder buttons, and a D-pad.
- Touch gestures are translated to compact real-time commands and sent to a configurable local server.
- Haptics, connection state, and press animations make a glass touchscreen easier to use without looking down.
02
If I kept going
- Add automatic server discovery and more resilient reconnection when the phone changes networks.
- Make control placement configurable for different hand sizes and iPhone dimensions.