← スキル一覧に戻る

expo-camera-workflow
by PlaneInABottle
⭐ 0🍴 0📅 2025年12月28日
SKILL.md
name: expo-camera-workflow description: Handles camera integration, photo capture, sticker creation, and storage workflows in Expo React Native apps. Use when implementing camera features, photo editing (sticker creation), file system operations, and integration with MST.
Expo Camera Workflow
This skill handles the complete camera integration workflow for Expo React Native apps, including permissions, capture, sticker creation, and file system management.
When to Use This Skill
Use this skill when you need to:
- Implement camera functionality with permission handling
- Capture photos using
CameraView - Implement photo editing or sticker creation logic
- Manage photo storage and file system operations
- Integrate camera features with MST stores
Camera Workflow Steps
1. Permission Management
Always request camera permissions before accessing camera:
import { Camera } from 'expo-camera'
export async function requestCameraPermissions(): Promise<boolean> {
const { status } = await Camera.requestCameraPermissionsAsync()
return status === 'granted'
}
2. Camera Setup
Configure CameraView with proper settings:
import { CameraView } from 'expo-camera'
<CameraView
ref={cameraRef}
style={styles.camera}
facing="back"
flash="off"
/>
3. Photo Capture
Capture photos with takePictureAsync:
const photo = await cameraRef.current?.takePictureAsync({
quality: 1.0,
})
4. Photo Editing (Sticker Creation)
Create stickers by drawing paths and using captureRef:
import { manipulateAsync, SaveFormat } from 'expo-image-manipulator'
import { captureRef } from 'react-native-view-shot'
// 1. Capture drawing view
const uri = await captureRef(viewRef, { format: 'png', quality: 1 })
// 2. Crop to sticker bounding box
const result = await manipulateAsync(
uri,
[{ crop: { originX, originY, width, height } }],
{ format: SaveFormat.PNG }
)
5. File Storage
Store captured images in app's document directory:
import * as FileSystem from 'expo-file-system'
const PHOTOS_DIR = `${FileSystem.documentDirectory}purrsuit/photos/`
await FileSystem.copyAsync({ from: photoUri, to: `${PHOTOS_DIR}${filename}` })
Best Practices
- Permissions: Use
requestCameraPermissionsand handle denied states. - Icons: Use
lucide-react-nativefor consistent UI. - Storage: Always ensure directories exist before saving.
- Compression: Use high quality (1.0) for stickers, slightly lower for originals if needed.
References
See CAMERA_PATTERNS.md for actual project implementations.
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓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
レビュー
💬
レビュー機能は近日公開予定です