R
react-native-animations
by @pluginagentmarketplacev
4.9(26)
React Nativeアニメーション開発、特にReanimated 3とジェスチャー処理を習得し、スムーズで高性能なモバイルアプリケーションのインタラクション体験を創造します。
インストール方法
npx skills add pluginagentmarketplace/custom-plugin-react-native --skill react-native-animationscompare_arrows
Before / After 効果比較
1 组使用前
従来のReact Nativeアニメーション開発では、パフォーマンスのボトルネックに頻繁に遭遇し、アニメーションがカクカクしたり、スムーズでなかったりします。特に複雑なインタラクションやジェスチャー処理では、ユーザーエクスペリエンスが大幅に低下します。開発プロセスも比較的煩雑で、高性能な視覚効果を実現するのは困難です。
使用後
Reanimated 3と高度なジェスチャー処理を習得することで、非常にスムーズで高性能なモバイルアプリのアニメーションを開発できます。アニメーションはネイティブスレッドで実行されるため、JSスレッドのブロックを回避し、ユーザーインタラクション体験を大幅に向上させ、アプリのインターフェースをより鮮やかで応答性の高いものにします。
description SKILL.md
name: react-native-animations description: Master animations - Reanimated 3, Gesture Handler, layout animations, and performance optimization sasmp_version: "1.3.0" bonded_agent: 05-react-native-animation bond_type: PRIMARY_BOND version: "2.0.0" updated: "2025-01"
React Native Animations Skill
Learn high-performance animations using Reanimated 3, Gesture Handler, and layout animations.
Prerequisites
- React Native basics
- Understanding of JavaScript closures
- Familiarity with transforms and styles
Learning Objectives
After completing this skill, you will be able to:
- Create smooth 60fps animations with Reanimated
- Handle complex gestures with Gesture Handler
- Implement layout entering/exiting animations
- Optimize animations for performance
- Combine gestures with animations
Topics Covered
1. Installation
npm install react-native-reanimated react-native-gesture-handler
# babel.config.js
module.exports = {
plugins: ['react-native-reanimated/plugin'],
};
2. Reanimated Basics
import Animated, {
useSharedValue,
useAnimatedStyle,
withSpring,
} from 'react-native-reanimated';
function AnimatedBox() {
const scale = useSharedValue(1);
const animatedStyle = useAnimatedStyle(() => ({
transform: [{ scale: scale.value }],
}));
const handlePress = () => {
scale.value = withSpring(scale.value === 1 ? 1.5 : 1);
};
return (
<Pressable onPress={handlePress}>
<Animated.View style={[styles.box, animatedStyle]} />
</Pressable>
);
}
3. Gesture Handler
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
function DraggableBox() {
const translateX = useSharedValue(0);
const translateY = useSharedValue(0);
const pan = Gesture.Pan()
.onUpdate((e) => {
translateX.value = e.translationX;
translateY.value = e.translationY;
})
.onEnd(() => {
translateX.value = withSpring(0);
translateY.value = withSpring(0);
});
const style = useAnimatedStyle(() => ({
transform: [
{ translateX: translateX.value },
{ translateY: translateY.value },
],
}));
return (
<GestureDetector gesture={pan}>
<Animated.View style={[styles.box, style]} />
</GestureDetector>
);
}
4. Layout Animations
import Animated, { FadeIn, FadeOut, Layout } from 'react-native-reanimated';
function AnimatedList({ items }) {
return (
<Animated.View layout={Layout.springify()}>
{items.map((item) => (
<Animated.View
key={item.id}
entering={FadeIn}
exiting={FadeOut}
layout={Layout.springify()}
>
<Text>{item.title}</Text>
</Animated.View>
))}
</Animated.View>
);
}
5. Animation Timing
| Function | Use Case |
|---|---|
| withTiming | Linear, controlled duration |
| withSpring | Natural, physics-based |
| withDecay | Momentum-based (fling) |
| withSequence | Multiple animations in order |
| withRepeat | Looping animations |
Quick Start Example
import Animated, {
useSharedValue,
useAnimatedStyle,
withSpring,
interpolate,
} from 'react-native-reanimated';
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
function SwipeCard() {
const translateX = useSharedValue(0);
const gesture = Gesture.Pan()
.onUpdate((e) => { translateX.value = e.translationX; })
.onEnd(() => { translateX.value = withSpring(0); });
const style = useAnimatedStyle(() => ({
transform: [
{ translateX: translateX.value },
{ rotate: `${interpolate(translateX.value, [-200, 200], [-15, 15])}deg` },
],
}));
return (
<GestureDetector gesture={gesture}>
<Animated.View style={[styles.card, style]} />
</GestureDetector>
);
}
Common Errors & Solutions
| Error | Cause | Solution |
|---|---|---|
| "Attempted to call from worklet" | Missing runOnJS | Wrap with runOnJS() |
| Animation not running | Missing 'worklet' | Add 'worklet' directive |
| Gesture not working | Missing root view | Add GestureHandlerRootView |
Validation Checklist
- Animations run at 60fps
- Gestures respond smoothly
- No frame drops on low-end devices
- Layout animations don't cause jank
Usage
Skill("react-native-animations")
Bonded Agent: 05-react-native-animation
forumユーザーレビュー (0)
レビューを書く
効果
使いやすさ
ドキュメント
互換性
レビューなし
統計データ
インストール数564
評価4.9 / 5.0
バージョン
更新日2026年3月16日
比較事例1 件
ユーザー評価
4.9(26)
5
0%
4
0%
3
0%
2
0%
1
0%
この Skill を評価
0.0
対応プラットフォーム
🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI
タイムライン
作成2026年3月16日
最終更新2026年3月16日