×Full view
Back to Portfolio

// Flutter · Python · WebSocket · Networking

Slide Controller App

A wireless presentation remote — Flutter app sends swipe/tap gestures over WiFi to a Python server that controls slides and video on the connected desktop.

Platform: Flutter
Protocol: WebSocket / Socket

Overview

The Slide Controller App turns any smartphone into a wireless presentation clicker. A lightweight Python server runs on the presenter's laptop, listening for commands. The Flutter app connects via local WiFi, detects swipe gestures, and sends commands like next-slide, previous-slide, play/pause video, and pointer activation — all with sub-50ms latency on LAN.

Tech Stack

FlutterDartPythonSocket.ioPyAutoGUINetworking

Key Contributions

  • Built bidirectional socket connection between Flutter and Python with automatic reconnection on drop.
  • Implemented gesture recognition layer in Flutter — distinguishing tap, swipe-left, swipe-right, and long-press for different slide actions.
  • Python server uses PyAutoGUI to simulate keyboard shortcuts native to PowerPoint, Keynote, and VLC.
  • Added device discovery UI so users can scan LAN for active server instances without manually entering IP.

Screenshots

Screenshot Screenshot Screenshot

Results & Learnings

The app achieved reliable sub-50ms command latency on typical office WiFi. Key learning: Flutter's gesture recognizer system requires careful disambiguation when overlapping gesture types are needed simultaneously.