RS-R Remote is an open-source, high-performance React Native (Expo) mobile application designed for remote control of GoPro® cameras over Bluetooth Low Energy (BLE) and Wi-Fi.
- BLE Low-Power Remote Control: Connect, power on/off, trigger shutter/recording, and switch modes over BLE.
- Model Capability Auto-Detection: Dynamic UI rendering and setting constraint resolution tailored to specific GoPro models (HERO9, HERO10, HERO11, HERO11 Mini, HERO12, HERO13, MAX).
- Wi-Fi Live Preview: Real-time camera preview streaming via Wi-Fi and UDP/RTSP (
react-native-vlc-media-player). - Custom Presets & System Settings: Create, edit, and apply custom presets and synchronize system settings (clock, LED, sound, etc.).
- Multi-Camera Control: Simultaneous batch commands (power off all, start/stop recording all) for multiple paired cameras.
- Robust Background Monitoring: Connection status monitoring and notifications powered by native foreground services.
- Multilingual Support: Available in 10 languages (English, 日本語, Español, Français, Deutsch, Italiano, Português, 한국어, 简体中文, 繁體中文).
- Framework: React Native / Expo (SDK 56)
- Language: TypeScript
- State Management: Zustand
- Local Database / Storage:
expo-sqlite - Native Modules:
react-native-ble-plx,react-native-wifi-reborn,react-native-vlc-media-player,@notifee/react-native - Testing & Quality Assurance: Vitest, TypeScript (
tsc), Madge (Circular Dependency Detection), Prettier
Available on the App Store and Google Play Store:
- 🍎 App Store
- 🤖 Google Play
- Node.js (v18 or higher recommended)
- npm / npx
- iOS (Xcode) / Android (Android Studio & SDK) development environment for physical device testing
-
Clone the repository:
git clone https://github.com/aroooy/rsr-remote-react-native.git cd rsr-remote-react-native -
Install dependencies:
npm install
-
Set up build configuration: Copy
eas.json.exampletoeas.json(used for EAS Build / Local Build configurations):cp eas.json.example eas.json
- Start Metro Bundler:
npx expo start -c
- Run on Physical Android Device:
npx expo run:android --device
- Run on Physical iOS Device:
npx expo run:ios --device
Maintain code quality and verify integrity using the built-in commands:
# Run unit tests
npm test
# Run TypeScript validation
npx tsc --noEmit
# Check for circular imports
npm run check:cycles
# Check for remaining debug logs
npm run check:debug-logs
# Check code formatting
npm run format:checkDetailed architecture blueprints, model resolver guides, and build instructions are located in the docs/ directory:
- System Overview
- BLE Communication Specification
- Wi-Fi & Streaming Architecture
- Model Implementation Guide
This project is licensed under the MIT License - see the LICENSE file for details.
GOPRO, HERO, and their respective logos are trademarks or registered trademarks of GoPro, Inc. in the United States and other countries.
This application is an independent third-party open-source project and is not affiliated with, authorized, maintained, sponsored, or endorsed by GoPro, Inc. or any of its affiliates or subsidiaries.
GOPRO、HERO、およびそれぞれのロゴは、GoPro, Inc. の米国およびその他の国における商標または登録商標です。
本アプリケーションは独立したサードパーティ製のオープンソースプロジェクトであり、GoPro, Inc. およびその関連会社とは一切関係ありません。