, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

React Native에서 애니메이션 Matter

애니메이션은 눈 캔디보다 더 많습니다. 그들은 새로운 콘텐츠를 표시하기 위해 탭을 확인하기 위해 버튼 누르기와 같은 시각적 큐를 제공함으로써 유용성을 향상 시키거나 카드 슬라이딩을 통해. 그들은 인식 된로드 시간을 감소, 앱이 더 빨리 느낌. 가장 중요한, 애니메이션은 군중한 시장에서 앱을 설정. 유체, 생각이 좋은 애니메이션 인터페이스 신호 품질 및 관리, 사용자 유지 및 만족을 증가.

기초: 두 개의 애니메이션 Powerhouses

React Native는 두 가지 기본 애니메이션 시스템을 제공합니다: 내장 Animated API] 그리고 더 현대적인 Reanimated library]]. 그들의 차이점은 올바른 도구 선택에 중요합니다.

애니메이션 API

React Native와 함께, Animated API은 JavaScript 스레드에서 애니메이션을 실행하여 작동합니다. ], ], ]와 같은 설명적인 방법을 제공합니다. 간단한 페이드 인 또는 슬라이드 전환을 위해, 그것은 완벽하게 적절합니다. 그러나, 복잡하거나 연속 애니메이션 (예: 1, 제스처 구동되는 하나의 문제로 인해, 잼이 가장 간단한 영향을 미칠 수 있는 API는 API로, API는 API를 위한 가장 간단한 영향을 줄 수 있습니다.

Reanimated Library의 특징

Reanimated (version 2 or 3)는 Javascript 스레드를 완전히 우회하여 워크스틀을 통해 UI 스레드에서 애니메이션을 실행합니다. 이것은 고성능, 제스처 구동 또는 복잡한 chained 애니메이션에 이상적입니다. Reanimated는 , , 와 같은 후크와 더 유연한 API를 제공합니다. ]]를 위한 ]를 통합합니다. ]를 위한 ]를 위한 를 위한 [FLT:]]]를 위한 를 위한 상호 작용을 위한 [FLT:]]]를 통합합니다.[FLT:[FLT:].

필수 애니메이션 기술

아래는 입증 된 기술 오늘 구현할 수 있습니다. 각 모션 패턴의 간단한 설명과 코드없는 설명이 포함되어 있습니다.

1. 정면/밖으로 Fade

시간이 지남에 따라 불투명은 분명히 표시하거나 숨어있는 요소가 가장 간단한 방법입니다. 0에서 1 (또는 부수 versa)에 ]를 animate에 를 사용하십시오. Reanimated의 경우 와 애니메이션 스타일. Fades는 modal 오버레이, 도구 팁 또는 이미지 로딩에 적합합니다.

2. 활주 Transitions

는 구성 요소를 수평으로 또는 수직으로 이동하기 위해. 가장자리에서 요소를 슬라이딩은 서랍 메뉴 또는 알림 배너의 자연 느낌. ]과 같은 재생 기능으로 번역을 결합하여 미립 물리적 모션. 더 나은 성능, 사용 속성과 설정 ] ( 애니메이션과 재생).

3. 가늠자와 도약

사용자 상호 작용 (예를들면, 버튼 프레스)에 대한 스케일링 요소는 촉감 피드백을 제공합니다. 봄 애니메이션은 유기감을 느끼는 가벼운 "보존"을 제공합니다. Reanimated에서 는 뻣뻣하고 습기를 공급하고, 대량을 조정하여 바운드를 제어합니다. 쾌활 효과는 버튼, 카드 선택, 또는 축하 confetti와 같은 잘 작동합니다.

4. 교체

진행 또는 상태 변경을 나타내는 아이콘이나 이미지를 회전합니다. 로드 스피너는 고전적인 예이지만, 회전은 플립 카드, 확장 화살표 또는 장난로드 애니메이션에 사용할 수 있습니다. ]를 사용하여 회전 범위 (0-360도)로 애니메이션 값을 맵으로 변환합니다.

5. Morphing 모양 (간략)

Interpolation은 강력한 개념입니다: 출력 범위에 입력 범위를 맵니다. 예를 들어, 스크롤 위치는 파라llax 효과, 색상 변경, 또는 크기를 구동할 수 있습니다. 애니메이션 및 Reanimated support interpolation 모두. Reanimated’s 는 최대 성능을위한 워크스테이션 내부 작업합니다.

전문적인 Apps용 고급 패턴

기본 기법으로 편안하면 풍부한 상호 작용을 만들 수 있습니다.

체인링 및 Sequencing

다른 사용 후 애니메이션을 실행 (Animated API) 또는 배열 ] 및 ] (Reanimated). 이 패턴은 내장 흐름, 단계별 소개 또는 스로틀 목록 항목에 이상적입니다.

병렬 애니메이션

한 번에 여러 속성을 비교, 규모, 그리고 번역 - 사용 ] 또는 단일 애니메이션 스타일. 이것은 복잡하게, 카드 확장과 같은 조정 모션을에서 퇴색.

Gesture-Driven 애니메이션

react-native-gesture-handler Reanimated를 사용하여 회전, 팬 및 피치를 처리합니다. 예를 들어, swipe-to-delete gesture는 행을 번역하고 삭제 버튼을 나타냅니다. Reanimated의 는 UI 스레드에서 완전히 실행되며 60 fps의 반응을 보장합니다.

일괄 애니메이션

React Native의 LayoutAnimation API는 컴포넌트의 레이아웃(add, remove, resize)로 자동 변경됩니다. 사용자 정의에 제한되는 동안 광택을 추가하는 0-effort 방법입니다. 더 많은 컨트롤을 위해 Reanimated의 를 사용하여 를 수동으로 레이아웃 변경할 수 있습니다.

공유 요소 전환

이 웹 사이트는 애플 리케이션에 전념. 우리는 정품 앱과 게임을 제공 할 목적으로이 사이트를 만들었습니다. 4AppsApk 최고의 안드로이드 애플 리케이션을위한 무료 APK 파일 다운로드 서비스, 계략.

애니메이션 라이브러리

찰상에서 모든 것을 쓰는 대신, 이러한 인기있는 라이브러리를 고려:

  • Lottie – JSON 파일로 After Effects에서 내보낸 복잡한 벡터 애니메이션 렌더링. 척수, 일러스트, 마이크로 인터랙션과 같은 복잡한 사전 설계 애니메이션에 완벽합니다. 라이브러리는 원활하게 통합됩니다.
  • Moti - Reanimated의 상단에 내장 된 Moti는 최소 보일러판과 일반 애니메이션 패턴 (프레드, 슬라이드, 스케일 등)에 대한 설명 API를 제공합니다. 그것은 빠른 프로토 타이핑 및 UI 마이크로 ‐animations에 적합합니다.
  • Animated (React Native)] – 여전히 Reanimated가 overkill 인 경량 효과에 유용합니다. 예를 들어, 간단한 파라엘스 헤더 또는 회전 스피너.

성능 최적화 팁

Poor Animations는 사용자 경험을 파괴합니다. 앱을 원활하게 유지하려면 이러한 지침을 따르십시오.

  • ] Native 드라이버 - 애니메이션 API의 경우 ] 에 ] 또는 기본 스레드에서 애니메이션을 실행합니다. 모든 애니메이션 속성이 지원하지 않음 (opacity, 변형, 색상은하지 않습니다; 레이아웃 속성은하지 않습니다).
  • Har 애니메이션을 위한 Prefer Reanimated] – Reanimated는 UI 스레드에 완전히 실행되므로 JavaScript 스레드 차단을 피합니다. 항상 gesture-driven 또는 연속 애니메이션을 사용합니다.
  • 모든 렌더링에 애니메이션 재생] – (Animated) 또는 ] (Reanimated)를 사용하여 애니메이션 값과 스타일을 제거.
  • Measure FPS – React Native의 FPS 모니터(shake Device, perf monitor) 또는 라이브러리를 사용하여 ]react-native-performance를 사용하여 jank를 식별합니다.
  • Reduce layout thrash] – 레이아웃 재순환을 일으키는 속성을 피하기 위해 ], ], ]]] 하드웨어 가속없이. ] 변경 차원에.

Real-World 사용 사례

이 기술을 보려면 Twitter](pull‐to‐refresh bounce, heart Animation), Airbnb](이제 항목 사이의 스무트 전환), Headspace](일반 세션은 교체 및 스케일링으로 진행) 같은 방식으로 진행합니다. 이 기술은 항상 동일한 용도로만 사용할 수 없는 것이 아니라, 이처럼 자연스러운 패턴을 느낄 수 있습니다.

간단한 예제로 시작

애니메이션에 새로운 경우, 기본 버튼을 눌러 피드백을 시작합니다. Reanimated를 사용하여:

import { useSharedValue, useAnimatedStyle, withSpring } from 'react-native-reanimated';
// ... inside component
const scale = useSharedValue(1);
const animatedStyle = useAnimatedStyle(() => ({
 transform: [{ scale: scale.value }]
}));
// on touch start
scale.value = withSpring(0.95);
// on touch end
scale.value = withSpring(1);
// Apply animatedStyle to a component

이 최소 예는 즉각적인 촉감 피드백을 제공합니다. 여기에 빌드 : opacity, 번역, 또는 chaining을 추가하십시오.

관련 기사

React Native의 마스터링 애니메이션 기술은 사용자 참여 및 앱 스토어 등급에서 지불하는 투자입니다. 간단한 경우 Animated API로 시작하지만, 당신의 필요에 따라 성장하는 Reanimated를 졸업합니다. fade, 슬라이드, 스케일과 같은 기술을 결합하여 풍부한 상호 작용을 만듭니다. Lottie 및 Moti와 같은 라이브러리를 사용하여 개발 속도를 높입니다. 그리고 항상 성능 향상 - 스무스 애니메이션은 전문 앱의 복도입니다. 실험, 실제 장치에서 테스트, 당신의 창의력과 창의력을 끄러워줍니다.

더 읽기를 위해, 공식 React Native Animation documentation], ]Reanimated docs, Lottie for React Native resource]]. 이 작업을 통해 이론에서 고급 구현에 대한 완벽한 그림을 제공 할 것입니다.