Сфера из тысяч точек на Skia с глубиной: дальние точки бледнее, ближние ярче. В режиме «Парение» точки мягко колышутся, отталкиваются от пальца или курсора и по нажатию расходятся ударной волной с тонким кольцом. В режиме «Вращение» сфера плавно крутится вокруг наклонной оси.
Кадры считаются на UI-потоке Reanimated и ставятся на паузу, когда приложение свёрнуто или (в вебе) сфера вне экрана, а при «Уменьшении движения» она остаётся статичной. Работает на iOS, Android и в вебе.
Поставьте зависимости:
npm install @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedpnpm add @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedyarn add @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedbun add @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedСкопируйте эти файлы в src/shared/components/organisms/dotted-sphere/:
Код доступен по подпискеPro
Исходник «Точечная сфера» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Точечная сфера» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
size?Тип number
dotCount?Тип number
distribution?Тип DottedSphereDistribution
behavior?Тип DottedSphereBehavior
spinSpeed?Тип number
tilt?Тип number
dotRadius?Тип number
floatAmplitude?Тип number
repelRadius?Тип number
repelStrength?Тип number
pulseStrength?Тип number
showPulseRing?Тип boolean
interactive?Тип boolean
dotColor?Тип string
background?Тип string
theme?Тип "dark" | "light"
style?Тип StyleProp<ViewStyle>