@qlik/react-native-helium
v2.0.3
Published
Skia base JSI renderer for Picasso and Nebula
Readme
@qlik/react-native-helium
Skia base JSI renderer for Picasso and Nebula
Running
To build, develop and run, please see https://github.com/qlik-oss/react-native-carbon
Build Guide: Harfbuzz, ICU & Skia
This document provides instructions for building Harfbuzz, ICU and Skia for Android and iOS platforms.
⚙️ Prerequisites
Before building, ensure you have the following tools installed and correctly set up.
🔹 Common Tools
| Tool | Required For | How to Check |
|------|--------------|--------------|
| Git | Clone repositories | git --version |
| Python 3 | Meson build system | python3 --version |
| Ninja | Build system backend | ninja --version |
| CMake (≥3.18) | Android build | cmake --version |
| Meson (≥0.60) | iOS build | meson --version |
| pkg-config | Dependency discovery | pkg-config --version |
🔹 Android Specific
| Tool | Required For | How to Check |
|------|--------------|--------------|
| Android Studio / SDK | SDK + NDK setup | Open Android Studio > Preferences > SDK |
| Android NDK (≥23.1) | CMake builds | ls $ANDROID_HOME/ndk/ |
| Java (JDK ≥11) | Gradle + build tools | java -version |
👉 Set environment variables in your shell config (~/.zshrc or ~/.bashrc):
export ANDROID_HOME=$HOME/Library/Android/sdk
export ANDROID_NDK=$ANDROID_HOME/ndk/23.1.7779620
export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH🔹 iOS Specific
| Tool | Required For | How to Check |
|------|--------------|--------------|
| Xcode (≥14) | iOS SDKs + compilers | xcodebuild -version |
| Xcode Command Line Tools | clang, ar, strip | xcode-select -p |
| CocoaPods (optional) | Dependency mgmt | pod --version |
👉 Make sure SDK paths exist:
ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/If these return valid .sdk folders (e.g., iPhoneOS18.2.sdk), you’re good.
📦 Harfbuzz
🔹 Android
- Repository: harfbuzz/harfbuzz
- Branch: (Specify branch if needed)
Steps
Checkout the branch:
git clone https://github.com/harfbuzz/harfbuzz.git cd harfbuzz git checkout <branch>Create a bash script (e.g.,
build_android.sh):#!/bin/bash set -o errexit -o nounset cd build/android cmake ../.. -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-31 -DCMAKE_BUILD_TYPE=Release -DHB_HAVE_FREETYPE=OFF -DHB_BUILD_SHARED=OFF -GNinja ninja installRun the script:
bash build_android.sh
⚠️ Note: Building Harfbuzz for Android using Meson currently has known issues. Prefer CMake.
🔹 iOS
- Repository: harfbuzz/harfbuzz
- Branch: (Specify branch if needed)
Steps
Checkout the branch:
git clone https://github.com/harfbuzz/harfbuzz.git cd harfbuzz git checkout <branch>Create cross files for Simulator and Device builds.
Simulator Example (
ios_cross_sim.txt)
(see earlier section for full contents)Device Example (
ios_cross_dev.txt)
(same structure, but withiPhoneOS.platformSDK)
Run Meson setup:
meson setup --cross-file ios_cross_dev.txt ios_dev_arm64 -Ddefault_library=static -Dtests="disabled"Build with Ninja:
ninja -C ios_dev_arm64
📦 ICU
🔹 Android
- Repository: unicode-org/icu
- Branch:
release-70-rc
Steps
Clone the repo & checkout branch:
git clone https://github.com/unicode-org/icu.git cd icu git checkout release-70-rcCreate directories:
icu/icu4c/android icu/icu4c/macOSCopy build script (
build_icu_android.sh) intoicu/icu4c/android.Run the script:
cd icu/icu4c/android bash build_icu_android.sh
🔹 iOS
- Repository: dbquarrel/icu4c-xcframework
Steps
- Checkout the repo:
git clone https://github.com/dbquarrel/icu4c-xcframework.git cd icu4c-xcframework git checkout <branch>
✅ With this, you’ll be able to build Harfbuzz and ICU for Android and iOS successfully.
📦 Skia
🔹 Android
Repositories:
Branch: Yet to find (update once finalized)
Steps
Clone the repository and checkout branch:
git clone https://github.com/google/skia.git cd skia git checkout <branch>Sync dependencies:
python tools/git-sync-depsCopy
android_lib.shscript to the root directory of the repository.Run the script:
bash android_lib.sh
🔹 iOS
Repositories:
Branch: Yet to find (update once finalized)
Steps
Clone the repository and checkout branch:
git clone https://github.com/google/skia.git cd skia git checkout <branch>Sync dependencies:
python tools/git-sync-depsCopy
create-framework.shscript to the root directory of the repository.Run the script:
bash create-framework.sh
⚠️ Notes
- Ensure the script paths in
android_lib.shandcreate-framework.share updated correctly before execution. - The build process may require additional tools such as Python 3, Ninja, CMake, Xcode (for iOS), Android NDK (for Android).
- Some dependencies may take time to download when running
git-sync-deps.
Note: where ios/headers has a copy of the skia/include folder
✅ With this guide, you can build Skia for Android and iOS.
License
MIT
