nimble install happyx-native
or via GitHub:
nimble install https://github.com/HapticX/happyx-native
- Support for Chrome/Yandex/Edge browsers & Webview
- Support for Android
To init project you should use this command:
hpx-native init --name ProjectName
This command will automatically initialize your project.
It also fetches ANDROID_SDK_ROOT
from environment (need for android compilation).
To build your project you should move into project folder
cd ProjectName
and just build it!
hpx-native build
This automatically builds your project for your OS as target platform.
To compile for other OS use
hpx-native build --target linux
Possible values:
OS | value | aliases |
---|---|---|
Windows | windows | win |
Linux | linux | unix |
MacOS | macosx | mac, macos |
Android | android | - |
You should have:
- Android Studio with SDK and NDK;
- Gradle >= 7.5;
- Nim >= 2.0.0;
By default hpx-native build --target android
supports all android architectures.
If you want to disable some architectures then use:
hpx-native build --target android --no-x86_64
Possible architectures
Architecture | Disable Argument |
---|---|
x86 | --no-x86 |
x86_64 | --no-x86_64 |
armeabi-v7a | --no-armeabi-v7a |
arm64-v8a | --no-arm64-v8a |
If you doesn't want to use gradle building then use
hpx-native build --target android --no-gradle
This command will build only .so
libraries.
HappyX Native supports "building" assets - all resources from app directory (by default /assets
) and all subdirectories are "sewn" into executable fi
8045
le.
This way you can distribute your application over the network with only one executable file.
This option can be disabled via
--no-build-assets
When building with -d:webview
, on Windows, you may notice that the window icon is not set
for you. This is due to a limitation within Happyx Native, that will be resolved in the
future. Currently, you may manually link in your desired window icon, like how is done in
https://github.com/neroist/webview/tree/main/examples/example_application/windows.
In addition, Webview does not currently support window positioning
(see webview/webview#642), so the x
and y
arguments passed to
nativeApp
will be ignored.
If you want choose other browser instead of default - use these flags:
browser | flag |
---|---|
Default browser | uses by default |
Chrome | -d:chrome |
Edge | -d:edge |
Yandex | -d:yandex |
Webview | -d:webview |