Expo app with custom native modules for sensor processing. Uses a custom dev client (not Expo Go) because we integrate Swift and Rust code.
- rscontroller - Device Rust controller WebSocket host for mouse control
- mlrslab - Rust machine learning library
- radiolab - Radio lab for RF/EM experiments
Prerequisites:
- ✅ Node.js, Xcode, CocoaPods
- ✅ Rust toolchain
- ✅ iOS device with Developer Mode enabled
Setup:
cd pycontroller
npm install
cd ios && pod install && cd ..
sh rustcore/build-ios.sh # Required - builds Rust libsRun on device:
cd pycontroller
npx expo run:ios --deviceRequires your iPhone connected via USB with Developer Mode enabled. The custom dev client installs automatically on first run.
pycontroller/
├── app/ # Expo Router app code
├── components/ # React components
├── sensorlib/ # Custom Expo module (Swift/TypeScript)
│ ├── ios/ # Swift implementation
│ └── src/ # TypeScript interfaces
├── rustcore/ # Rust library (required)
│ └── build-ios.sh
└── ios/ # Native iOS config
Rebuild CocoaPods:
cd pycontroller/ios && pod installRebuild Rust libs:
sh pycontroller/rustcore/build-ios.shNative code changes: Rebuild the dev client with npx expo run:ios --device.
New GitHub releases trigger ios.yml to automatically build and submit to TestFlight.