How it works

MobileCOBOL is a small set of moving parts with one job: let a COBOL program describe a user interface, and let modern clients draw it. The program stays a COBOL program. The compiler stays your compiler.

Your COBOL program │ CALL "mobilecobol" USING verb, "key=value…" ▼ Compiler bridge ── links RM/COBOL, Micro Focus (native or │ managed .NET), ACUCOBOL-GT, GnuCOBOL, isCOBOL ▼ MobileCOBOL daemon ── sessions, security, deployment, admin │ ├──▶ Web browser (nothing installed) ├──▶ iPhone / iPad (native app) ├──▶ Android (native app) └──▶ Desktop (Windows · macOS · Linux)

Programs build screens with plain COBOL

A program creates a page, adds controls, and waits for events — using ordinary CALL statements and a copybook of verbs. Buttons, entries, lists, pickers, images, signatures, barcode scans: each is one call. Two-way data binding keeps working storage and the screen in sync without the program shuttling values by hand.

Existing screens don't have to be rebuilt

One protocol, many clients

Every client — the browser, the mobile apps, the desktop apps, and the reference clients for Flutter, React Native, Java Swing, WPF and Avalonia — speaks the same small wire protocol. That's a deliberate guarantee: the interface layer is replaceable, so choosing MobileCOBOL never re-creates the lock-in you're trying to escape.

Deployment fits your rules

The daemon installs on your servers. Programs can run on the server with thin clients, on the device with a live connection, or fully standalone on the device. Field sessions survive lost connections and resume cleanly. A signed manifest system handles distributing program updates to devices when you want it.

The developer kit

One installer carries the daemon, the clients, the copybook, pre-built demo programs for every supported compiler, and the bridge for each. Install it, pick your compiler, and the demo suite is running in minutes — then point it at your own source.

Ask us anything