iOS companion app for testing streamdown-rn on real devices.
This app connects to the web debugger via WebSocket and renders the same streaming content on a real iOS device. This allows you to test:
- Native rendering performance
- iOS-specific font and layout behavior
- Real device streaming experience
- The web debugger must be running (
apps/debugger) - Xcode installed
- CocoaPods installed
cd apps/debugger-ios
bun install
# Install iOS dependencies
cd ios && pod install && cd ..bun run dev # Starts Metro (port 8082) + builds iOS appNote: Make sure the web debugger is running first:
cd ../debugger && bun run dev:web
┌─────────────────┐ WebSocket ┌─────────────────┐
│ Web Debugger │ ──────────────────▶│ iOS Debugger │
│ (port 8081) │ (port 3001) │ (port 8082) │
│ │ │ │
│ Control Panel │ │ StreamdownRN │
│ + Streaming │ │ Renderer │
└─────────────────┘ └─────────────────┘
- Web debugger streams markdown content
- WebSocket server broadcasts to connected clients
- iOS app receives content and renders via
StreamdownRN
| Script | Description |
|---|---|
bun run dev |
Start Metro + build iOS (recommended) |
bun run start |
Start Metro server only |
bun run ios |
Build and run iOS app |
This app uses port 8082 to avoid conflicts with the web debugger (port 8081).
The Metro URL is hardcoded in ios/DebuggeriOS/AppDelegate.swift to ensure the iOS simulator connects to the correct bundler.
Make sure Metro is running on port 8082:
bun run start- Ensure web debugger is running:
cd ../debugger && bun run dev:web - Check that port 3001 is accessible from the simulator
Clean and rebuild:
cd ios
rm -rf build Pods Podfile.lock
pod install
cd ..
bun run ios- apps/debugger — Web control panel
- packages/streamdown-rn — The renderer
- packages/debug-components — Shared test components