ZeroTrace Desktop
App Builder
Build, run, and version your own apps for a connected ZeroTrace device — a code editor, a live preview, a console, and full version history in one workbench.
App Builder
The App Builder is where you build your own apps for a ZeroTrace device. An app is a small program you write that puts a control panel on screen — buttons, sliders, readouts, charts — and drives the connected device to do exactly what you want. You write it, run it against your device, watch it work, and keep a history of every version.
1ui.title("Signal sweep")2const ch = ui.slider("Channel", 1, 14)3const live = ui.toggle("Live")4ui.stat("Devices", 128)5ui.button("Start scan", () => {6device.scan(ch.value)7})
Drag the slider, flip the toggle, hit Start scan.
If the built-in operations views cover the common cases, the App Builder covers your case — the one-off tool, the repeated routine, the custom readout nobody shipped. And when you have something worth sharing, you can publish it to the Store & Hub for others to install.
The App Builder is a maturing part of Desktop and is marked Beta in the app. The workflow described here — write, run, version, publish — is in place; expect it to keep growing.
The four globals — ui, device, console, utils — lifecycle, persistence, and timers.
The complete ui.* control catalog, with signatures and runnable examples.
How to call the connected device, handle results and errors, and subscribe to events.
Saving versions, restoring, exporting a backup, and publishing to the Hub.
The workbench
The App Builder is a single workbench with three panes you can show, hide, and rearrange:
- Code — the editor where you write your app. It offers syntax highlighting and suggestions as you type.
- Preview — the live panel. Every time you run, the controls your app declares appear here, and they update as your app runs.
- Console — the log. Anything your app prints, and any errors, show up here so you can see what happened.
You can arrange the panes to suit the moment with layout presets (for example, split view, code only, preview only, or all three at once), drag the edges to resize them, and pop out a pane into its own window when you want more room. Your layout is remembered between sessions.
You can run an app against the device you have plugged in, or against a built-in simulator when no hardware is connected — useful for sketching out an app before you are at your bench. The simulator stands in for a device so your controls and logic can be exercised without one.
Building your first app
- Open the App Builder
From the workspace, open the App Builder. It starts you with a short starter app so there is always something to run.
- Write your app in the Code pane
Describe the panel you want and what it should do. The starter shows the shape: declare a few controls, and give a button something to do when it is pressed. See Writing apps for the full execution model.
- Run it
Press Run. Your controls appear in the Preview pane and your app starts. Press Run again any time to apply your latest changes — the preview and any running timers are reset cleanly each time, so nothing piles up.
- Watch the Console
Anything your app prints appears in the Console, along with a clear message if something goes wrong. Use it to check what the device returned and to find mistakes.
- Commit a version when it works
When you have something worth keeping, Commit it with a short message. This saves a named point you can always return to. See Publishing: saving versions and reverting.
Version history, at a glance
Every app carries its own version history from the moment you first commit it — named commits you save on purpose, plus automatic snapshots taken quietly every time you press Run. You can preview any earlier version, restore it, or export the whole history as a backup file. The full picture — commits, snapshots, restoring, and exporting — is in Publishing.