Back to list
Takashi-Matsumura

ios-dev

by Takashi-Matsumura

0🍴 0📅 Dec 11, 2025

SKILL.md


name: ios-dev description: iOS/React Native development with Expo. Use when working on mobile app, running builds, debugging device issues, or setting up development environment including tethering.

iOS Development Guide

Project Structure

mobile/
├── app/                    # Expo Router pages
│   ├── _layout.tsx
│   ├── index.tsx           # Home screen
│   └── room/[id].tsx       # Voice call room
├── src/
│   ├── components/         # UI components
│   ├── hooks/              # Custom hooks (WebRTC, Socket, Speech)
│   └── types/
├── ios/                    # Native iOS project (generated by prebuild)
└── .env                    # Environment variables

Key Commands

cd mobile

# Development (WiFi - same network as Mac)
npx expo start --dev-client

# Development (Tethering - requires tunnel)
npx expo start --dev-client --tunnel

# Build for specific device
npx expo run:ios --device "DEVICE_NAME"

# Clean rebuild (after config changes)
npx expo prebuild --platform ios --clean

# List available devices
xcrun xctrace list devices

Environment Configuration

# WiFi development
EXPO_PUBLIC_SIGNALING_SERVER_URL=http://192.168.x.x:3001

# Production (Render server)
EXPO_PUBLIC_SIGNALING_SERVER_URL=https://webrtc-signaling-xxxx.onrender.com

Tethering Development

When Mac is connected to iPhone's Personal Hotspot:

  1. Problem: iPhone cannot directly access devices on its own hotspot
  2. Solution: Use ngrok tunnel
# Install ngrok (first time)
npm install -g @expo/ngrok@^4.1.0

# Start with tunnel
npx expo start --dev-client --tunnel

# Get tunnel URL
curl -s http://127.0.0.1:4040/api/tunnels | grep -o '"public_url":"https://[^"]*"'

Important: Use HTTPS URL (iOS App Transport Security requirement)

Troubleshooting

IssueSolution
"Device is busy"Unlock iPhone, reconnect USB
Metro connection failsCheck IP address, or use --tunnel
"main" not registeredRestart Metro with --clear
Build fails after config changeRun npx expo prebuild --clean
Simulator no audioUse real device for audio testing

Development Workflow

  1. Start signaling server: cd server && npm run dev
  2. Start Metro: cd mobile && npx expo start --dev-client
  3. Open app on iPhone, enter Metro URL
  4. For code changes: Hot reload automatic
  5. For native changes: Rebuild with npx expo run:ios --device

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon