Skip to content

MasterQ32/ZigAndroidTemplate

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Android Apps in Zig

Project banner

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

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:

CI

Presentation

There is a FOSDEM Talk you can watch here:

What's missing

  • Configuration management example
  • Save/load app state example

Requirements & Build

You need the Android SDK installed together with the Android NDK.

You also need adb and a Java SDK installed (required for jarsigner).

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 zig build.

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

Quick Start

Install the sdkmanager and invoke the following command line:

sdkmanager --install "platforms;android-21" # Min version: Android 5
sdkmanager --install "build-tools;33.0.0"
sdkmanager --install "ndk;25.1.8937393"
zig build keystore install run

This should build an APK and install it on your connected phone if possible.

Getting started

Check out the build.zig to see how to build a new android app, and example/main.zig to see how to create a basic application. All of this is still very rough, though.

Credits

Huge thanks to @cnlohr to create rawdrawandroid and making this project possible!

About

This repository contains a example on how to create a minimal Android app in Zig.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors 4

  •  
  •  
  •  
  •