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 file.
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 |