Нативная основа, на которой построены компоненты Astra.
Пакета Astra для установки не существует. Здесь вы настраиваете нативные зависимости, на которых построены компоненты, и CLI, который их копирует.
В Expo Go пойдут не все компоненты
Skia и ещё несколько нативных модулей требуют сборки для разработки. Компоненты, построенные только на Reanimated и Gesture Handler, в Expo Go работают как надо.
1. Поставьте общие зависимости
| Пакет | Для чего |
|---|---|
react-native-reanimated | любой анимированный компонент — не опционален |
react-native-worklets | едет отдельно от Reanimated 4; нужен 76 компонентам |
react-native-gesture-handler | перетаскивание, свайп и нажатие |
react-native-svg | векторные формы, иконки и анимация по путям |
@shopify/react-native-skia | шейдеры, градиенты и эффекты, рисуемые на канве |
expo-haptics | тактильный отклик при нажатии |
expo-blur | поверхности матового стекла |
expo-symbols / @expo/vector-icons | наборы иконок |
На странице каждого компонента перечислено всё, что ему нужно сверх этого. Ставьте только то, чем пользуетесь — ничто из этого не обязательно заранее.
2. Добавьте Babel-плагин Reanimated
Он должен стоять последним в массиве plugins:
Затем сбросьте кэш:
3. Оберните корень в GestureHandlerRootView
Всему, что работает на жестах, это нужно выше по дереву:
4. Инициализируйте CLI
npx astra-rn initpnpm dlx astra-rn inityarn dlx astra-rn initbunx --bun astra-rn initОн спросит, куда класть компоненты, как их раскладывать и что делать с npm-пакетами,
которые они импортируют, а потом напишет component.config.json. В файл попадёт
только то, что отличается от умолчаний — с ответами по умолчанию это папка и
найденный менеджер пакетов:
Алиас должен совпадать с сопоставлением путей в вашем tsconfig.json — init
читает его и предлагает тот, что уже работает. Все ключи перечислены в
справочнике CLI.
Этот шаг можно пропустить целиком, если вам удобнее копировать исходник со страниц компонентов руками.
5. Добавьте компонент
npx astra-rn add accordionpnpm dlx astra-rn add accordionyarn dlx astra-rn add accordionbunx --bun astra-rn add accordionВсё, что он импортирует, приезжает вместе с ним, а любой npm-пакет, которого нет
в проекте, будет предложен к установке. После любого нативного изменения
пересоберите нативную цель — npx expo run:ios — а не перезапускайте Metro.
Дальше: Использование или справочник CLI со всеми флагами.
Сделано в Astra