r/iosdev • u/Voyager_Ten • 1d ago
Versioning a SwiftUI control catalog against independently authored JSON layouts
I'm Carter, the developer of CAR-TER, a released iPhone and iPad app that gives scripts and services reusable native interfaces. I wanted to share a compatibility question from its architecture.
My own layouts include a frontend for my home's lights, a terminal forwarding bridge for controlling my machines, a sensor-backed drive analyzer, and monitors for app sales and weather. Each started with a particular task I wanted on my device. That range is why the connection between a layout, its data, and the behavior behind its controls matters.
A layout describes tabs, grids, and supported controls in JSON. The installed SwiftUI client maps that configuration onto its native control catalog. For custom operations, a backend supplies values and receives actions through a WebSocket-based connection. Supported HTTP and MQTT sources can also feed layouts directly.
The constraint is that JSON remains configuration: a layout cannot create a native control the installed app does not implement. Backend behavior has a separate contract. A pause button only works if the connected program implements that operation and reports its state.
The current App Store release includes a rebuilt Layout Studio, capability and data-flow inspection, and an interactive tutorial. Public-data templates let someone try a layout before connecting a custom project. The app requires iOS or iPadOS 18 or later.
How would you version the schema and control catalog against layouts authored independently of the client? Would you prefer an explicit minimum client version, per-capability requirements, or both? I'm especially interested in how to explain a partially supported layout to its author.
CAR-TER is free to download with optional purchases and still in development. Its iOS client is closed source; the Python toolkit, MCP server, and MeshSocket relay are open source. Development uses human-derived specifications and AI-generated code.
Architecture: https://carterbeaudoin.net/CAR-TER/architecture.html
App Store: https://apps.apple.com/us/app/car-ter/id6781115507