How to create a responsive display?

I am currently developing an application for multiple Edge devices. Their screen sizes differ so much that I just can't handle it for all devices, like Edge 820 vs Edge 1030 plus.

In the "Devices Reference Guide" page of Garmin's developer site (https://developer.garmin.com/connect-iq/reference-guides/devices-reference/#edge%C2%AE830) I noticed that so-called "Field Layouts" are defined for the devices. If I understand correctly, these can be used to provide a universal arrangement across devices. For example, on Edge 530, with a "2 Fields Layout", "Field 2" would start at y=162, while on the Edge 820, "Field 2" would start at y=134. These Fields are automatically adjusted to fit the dimensions of the device.

However, I am facing difficulty finding information on how to define these Field Layouts in Monkey C, like the "Field 1" or "Field 5", etc...

  • The field layouts in the developer docs actually refer to the data field layouts that each device provides to the user for built-in activities (such as Run, Walk, Bike, etc.)

    If you develop a CIQ data field, then the user could add app to a field within any one of these layouts. Most data field apps in the CIQ store are designed to work within any layout, but some apps are designed to only work within a single field / full page layout (e.g. some of these data field apps draw their own layout, so they won't work properly unless they have the full screen to work with.)

    It isn't possible to for a data field app to directly determine the current layout is and/or its position in the layout, but the app can get limited related information:
    - the height and width of the dc (device context)

    - the regions of the dc which are obscured: developer.garmin.com/.../DataField.html

    Having said all of that, CIQ devs aren't given the tools to recreate these layouts. If you want to do that, you'll have to reinvent the wheel.