This repository contains a example on how to create a minimal Android app in Zig.
State of the project
This project contains a really small app skeleton in
example/main.zig which initializes OpenGL and renders a color cycle. Touchscreen events will be displayed as small circles beneath the fingers that will fade as soon as no event for the same finger will happen again.
The code contains some commented examples on how to interface with the JNI to use advanced features of the
It has no dependencies to C code except for the android libraries, so it can be considered a pure Zig app.
We're running a CI that will verify the build for Windows, macOS and Linux:
There is a FOSDEM Talk you can watch here:
- Configuration management example
- Save/load app state example
Requirements & Build
You also need adb and a Java SDK installed (required for
Now you need to generate yourself a keystore to sign your apps. For debugging purposes, the build script contains a helper. Just invoke
zig build keystore to generate yourself a debug keystore that can be used with later build invocations.
Note that the build file might ask you to configure some paths. Do as requested and just run the build again, it should work then.
If all of the above is done, you should be able to build the app by running
There are convenience options with
zig build push (installs the app on a connected phone) and
zig build run (which installs, then runs the app).
sdkmanager and invoke the following command line:
sdkmanager --install "platforms;android-28" sdkmanager --install "build-tools;28.0.3" sdkmanager --install "ndk;21.1.6352462" zig build keystore install run
This should build an APK and install it on your connected phone if possible.