This skill assists developers in adding Meta Quest support to Expo apps by utilizing the expo-horizon packages. It provides guidance on critical decision-making processes and common pitfalls when transitioning to Meta Quest.
$ npx skills add https://github.com/software-mansion-labs/skills --skill expo-horizonExpo Horizon is a fork of Expo packages that extends support for Meta Quest and Meta horizon devices. It provides three core packages: expo-horizon-core for building applications, expo-horizon-location for location services, and expo-horizon-notifications for push notifications. Developers can start by installing expo-horizon-core and its config plugin, then add location and notification packages as needed. The project includes an example app and is maintained by Software Mansion, core React Native contributors.
Use the command line to install the skill.
Add Meta Quest support to existing Expo apps.
Navigate critical rules and gotchas in migration.
Webfetch up-to-date installation steps and options.
$ npx skills add https://github.com/software-mansion-labs/skills --skill expo-horizongit clone https://github.com/software-mansion-labs/expo-horizonCopy the install command above and run it in your terminal.
Launch Claude Code, Cursor, or your preferred AI coding agent.
Use the prompt template or examples below to test the skill.
Adapt the skill to your specific use case and workflow.
I need to add Meta Quest support to my Expo app using expo-horizon. Explain the critical steps and common pitfalls when transitioning to Meta Quest for [COMPANY] in the [INDUSTRY] industry. My current setup includes [DATA].
### Adding Meta Quest Support to Your Expo App with expo-horizon
Here’s a structured approach to integrating Meta Quest support into your Expo app using expo-horizon, based on your current setup:
#### **1. Prerequisites Check**
- Ensure your Expo SDK version is **48+** (recommended: SDK 49).
- Confirm your `expo-horizon` package is installed:
```bash
npx expo install expo-horizon
```
- Verify your `app.json` includes the Meta Quest build profile:
```json
{
"expo": {
"plugins": ["expo-horizon"]
}
}
```
#### **2. Key Configuration Steps**
- **Update `app.json` for Oculus Store Compliance**:
Add required permissions and metadata for Meta Quest Store submission:
```json
{
"expo": {
"android": {
"permissions": ["com.oculus.permission.IPD", "com.oculus.permission.PHYSICAL_IK"],
"package": "com.yourcompany.yourapp"
}
}
}
```
- **Enable 6-DoF Support**:
In `expo-horizon`, enable room-scale tracking by adding:
```javascript
import { HorizonConfig } from 'expo-horizon';
HorizonConfig.setRoomScaleEnabled(true);
```
#### **3. Common Pitfalls & Fixes**
- **Issue: Black Screen on Launch**
*Cause*: Missing Oculus Mobile SDK initialization.
*Fix*: Ensure `expo-horizon` is initialized in your app’s entry point:
```javascript
import { Horizon } from 'expo-horizon';
Horizon.init();
```
- **Issue: Controller Input Not Detected**
*Cause*: Incorrect input mapping for Meta Quest controllers.
*Fix*: Use `expo-horizon`’s input system:
```javascript
import { useHorizonInput } from 'expo-horizon';
const { trigger } = useHorizonInput();
```
#### **4. Testing & Optimization**
- **Test in Oculus Developer Hub**:
Use ODH to simulate device-specific behaviors (e.g., IPD adjustments).
- **Optimize Performance**:
Reduce render resolution for Quest 2/3 (target 1.2x dynamic resolution).
#### **5. Submission Checklist**
- [ ] Oculus Store metadata (icons, screenshots) added.
- [ ] Privacy policy linked in app settings.
- [ ] Performance tested on Quest 2 and Quest 3.
Need help debugging a specific error? Share your `app.json` and error logs for targeted guidance!Take a free 3-minute scan and get personalized AI skill recommendations.
Take free scan