Текущая Поведение
- Первая сборка Android после установки Skia занимает 10–15 минут
- Размер каталога проекта увеличивается с ~1–2 ГБ до ~7–8 ГБ (с несколькими базовыми библиотеками)
- Производительность во время разработки заметно замедляется
- Циклы горячей перезагрузки/перестроения становятся очень частыми медленный
- Если newArchEnabled=false, Skia Canvas не отображается (пустой экран или ошибка времени выполнения)
- React Native: 0.81.2
- Skia: 2.4.14
- Hermes включен
- Архитектура: Armeabi-v7a,arm64-v8a,x86,x86_64
- Ос: Windows 10, 64-разрядная версия
- Любая поддерживаемая Skia версия, которая надежно работает на RN 0.81.2+ без новой архитектуры?
- Рекомендуемая комбинация версии Skia + React Native с разумной производительностью сборки?
- Есть ли официальные указания о том, зависит ли Skia теперь от Fabric/TurboModules в новых версиях RN?
Установка Skia в новом проекте занимает необычно много времени:
PS D:\Work\FreeProjects\ArchTest> npm i @/shopify/react-native-skia
added 5 packages, and audited 853 packages in 8m
164 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
PS D:\Work\FreeProjects\ArchTest>
Ниже приведен мой package.json после создания нового проекта CLI React Native и установки только /shopify/react-native-skia:
{
"name": "ArchTest",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"lint": "eslint .",
"start": "react-native start",
"test": "jest"
},
"dependencies": {
"@react-native/new-app-screen": "0.81.2",
"@shopify/react-native-skia": "^2.4.14",
"react": "19.1.0",
"react-native": "0.81.2",
"react-native-safe-area-context": "^5.5.2"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/preset-env": "^7.25.3",
"@babel/runtime": "^7.25.0",
"@react-native-community/cli": "20.0.0",
"@react-native-community/cli-platform-android": "20.0.0",
"@react-native-community/cli-platform-ios": "20.0.0",
"@react-native/babel-preset": "0.81.2",
"@react-native/eslint-config": "0.81.2",
"@react-native/metro-config": "0.81.2",
"@react-native/typescript-config": "0.81.2",
"@types/jest": "^29.5.13",
"@types/react": "^19.1.0",
"@types/react-test-renderer": "^19.1.0",
"eslint": "^8.19.0",
"jest": "^29.6.3",
"prettier": "2.8.8",
"react-test-renderer": "19.1.0",
"typescript": "^5.8.3"
},
"engines": {
"node": ">=20"
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ild-time-h
Мобильная версия