Bogen

Tomacco

Tomacco builds, runs and tests Android and iOS apps on Linux. Bogen reads the screens it exports, so a real app screen can come onto the canvas as an artboard you can edit, and a design can be checked against the screen the app really shows.

Bogen only reads Tomacco's documented export format and, when it is installed, asks tomaccoctl for a screen. It installs nothing, changes nothing on the device and needs nothing from Tomacco beyond that format.

The export

A screen export is a folder with two files, written by tomaccoctl call screen.export:

FileWhat it holds
screen.pngThe screenshot at full resolution.
screen.jsonFormat tomacco.screen, version 1: the device, the display with its size in pixels and in dp or points, the system bars, the theme, the app, and every element on the screen with its bounds, text, role and state.

Bogen reads version 1 and ignores fields it does not know. It refuses another format, a newer version, a screen.json over 8 MB and a screen.png over 40 MB. When the export does not say how many pixels make a dp or point, as an older iPhone export may not, Bogen takes the likely scale and says so.

Import an app screen

Click the phone button in the toolbar, or Import an app screen in the command palette (Ctrl+P), and pick where the screen comes from:

Then choose:

Import as artboard places one artboard, next to the others, at the device's size in dp (Android) or points (iOS). Above the screenshot, every element of the UI tree is a layer, nested as in the app: text as real text in the colour it has on the screen and at about its size; pictures, icons and controls as crops of the screenshot, which look right and can be moved; the status and navigation bars as their own layers. The whole import is one undo step.

Font sizes and weights are read off the pixels and are estimates: check them, and swap in your own text styles.

Design versus app

Select a design artboard and choose Design versus app in the command palette. Pick the app's screen the same way. Bogen renders the artboard at the screen's pixel size and shows:

The artboard should be the screen's width. An artboard made by an import with a frame is compared by its screen, without the frame.

For your agent

Both read the computer the server runs on. See the tool reference.

Privacy and limits