# React Native Gesture Image Viewer ## 가이드 - [개요](/1.x/ko/guide/getting-started/overview.md): React Native에서 이미지 갤러리나 콘텐츠 뷰어를 구현할 때, 복잡한 제스처 처리와 애니메이션 구현으로 어려움을 겪으신 적이 있으신가요? 기존 라이브러리들은 커스터마이징이 어렵거나 성능 문제가 있었습니다. react-native-gesture-image-viewer는 React Native Reanimated와 Gesture Handler를 기반으로 한 고성능 범용 제스처 뷰어 라이브러리로, 이미지뿐만 아니라 비디오, 커스텀 컴포넌트 등 모든 콘텐츠에 완전한 커스터마이징과 직관적인 제스처 지원을 제공합니다. - [설치](/1.x/ko/guide/getting-started/installation.md): 필수 요구사항 - [빠른 시작](/1.x/ko/guide/getting-started/quick-start.md) - [AI](/1.x/ko/guide/getting-started/ai.md): AI가 이 라이브러리의 1.x 동작, 문서, 프로젝트 규칙을 더 잘 이해해서 개발이나 트러블슈팅 과정에서 더 정확한 도움을 줄 수 있도록, 이 프로젝트는 다음 기능들을 제공합니다. ## Others - [성능 최적화 팁](/1.x/ko/guide/performance-optimization-tips.md): renderItem 함수는 useCallback으로 감싸서 불필요한 리렌더링을 방지하세요. 대용량 이미지의 경우 expo-image나 FastImage 사용을 권장합니다. 많은 수의 이미지를 다룰 때는 FlashList 사용을 권장합니다. FlashList Performance 가이드 디바이스에서 테스트하세요. (시뮬레이터에서는 성능이 제한될 수 있습니다.) - [기본 사용법](/1.x/ko/guide/usage/basic-usage.md) - [커스텀 컴포넌트](/1.x/ko/guide/usage/custom-components.md): react-native-gesture-image-viewer는 강력한 기능으로 완벽한 컴포넌트 커스터마이징이 가능합니다. 이미지뿐만 아니라 원하는 컴포넌트로 제스처를 지원하는 아이템을 만들 수 있습니다. - [제스처 기능](/1.x/ko/guide/usage/gesture-features.md): react-native-gesture-image-viewer는 뷰어에 필요한 다양한 제스처를 지원합니다. 제스처 동작의 기본값은 아래 예제를 참고해주세요. - [GestureViewer Props](/1.x/ko/guide/usage/gesture-viewer-props.md): enableLoop (기본값: false) 루프 모드를 활성화합니다. true일 때 마지막 아이템에서 다음으로 가면 첫 번째로, 첫 번째에서 이전으로 가면 마지막으로 돌아갑니다. onIndexChange index 값이 변경될 때 onIndexChange 콜백함수가 호출됩니다. useSnap (기본값: false) 스크롤 동작 모드를 설정합니다. false(기본값)는 페이징 모드, true는 스냅 모드를 사용합니다. itemSpacing (기본값: 0) 아이템 간의 간격을 픽셀 단위로 설정합니다. useSnap이 true일 때만 적용됩니다. autoPlay (기본값: false) 자동 재생 모드를 활성화합니다. true일 때 지정된 간격 후 다음 아이템으로 자동으로 재생됩니다. enableLoop이 활성화되면 마지막 아이템에서 다음으로 가면 첫 번째로, 첫 번째에서 이전으로 가면 마지막으로 돌아갑니다.enableLoop이 비활성화되면 마지막 아이템에서 정지됩니다.아이템이 하나만 있을 때 자동 재생이 비활성화됩니다.줌 또는 회전 제스처가 감지되면 자동 재생이 일시 중지됩니다. autoPlayInterval (기본값: 3000) 자동 재생 간격을 밀리초 단위로 설정합니다.양수 정수여야 합니다. 값이 250ms 미만이면 런타임에서 250ms로 제한됩니다. initialIndex (기본값: 0) 초기 인덱스 값을 설정할 수 있습니다. dismissThreshold (기본값: 80) dismissThreshold는 수직 제스처 시 임계값을 적용하여 onDismiss 호출 시점을 제어할 수 있습니다. resistance (기본값: 2) resistance는 수직 제스처 시 저항값을 적용하여 수직으로 이동하는 범위를 제어할 수 있습니다. maxZoomScale (기본값: 2) 최대 줌 배율을 제어할 수 있습니다. - [뷰어 이벤트 처리하기](/1.x/ko/guide/usage/handling-viewer-events.md): useGestureViewerEvent 훅을 사용하여 GestureViewer의 특정 이벤트를 구독할 수 있습니다. 줌이나 회전과 같은 실시간 제스처 변화에 반응할 수 있습니다. 이벤트 타입 - [다중 인스턴스 관리](/1.x/ko/guide/usage/multi-instance-management.md): 여러 개의 GestureViewer 인스턴스를 효율적으로 관리하고 싶은 경우 id 값을 적용하면 여러 개의 GestureViewer를 사용할 수 있습니다.GestureViewer는 컴포넌트가 언마운트되면 메모리에서 자동으로 인스턴스가 제거되어 메모리 관리를 수동으로 할 필요가 없습니다. - [프로그래밍 방식 제어](/1.x/ko/guide/usage/programmatic-control.md): useGestureViewerController 훅을 사용하여 GestureViewer를 프로그래밍 방식으로 제어할 수 있습니다. - [스타일 커스터마이징](/1.x/ko/guide/usage/style-customization.md): GestureViewer의 스타일을 커스터마이징할 수 있습니다. - [트리거 기반 모달 애니메이션](/1.x/ko/guide/usage/trigger-based-animations.md): GestureTrigger는 썸네일과 같은 트리거 요소에서 전체 모달 뷰로의 원활한 전환을 생성하는 부드러운 트리거 기반 애니메이션을 지원합니다. 이 기능은 트리거와 모달 콘텐츠 간의 시각적 연속성을 유지하여 사용자 경험을 향상시킵니다.