Before posting, please read: When to use this forum, when to submit a help ticket

Freeform Window Sizing

Started by arlo, November 03, 2022, 12:39:46 AM

Previous topic - Next topic


With the introduction of Stage Manager in iOS 16.1, iOS now joins macOS and Android in supporting freeform app windows -- windows that can be set to any size or orientation within the bounds of the screen. This presents a particular challenge for BandHelper and Set List Maker, with their customizable layout function that aims to give users precise control over the interface they use for performing. Since each layout is designed for a specific window size, you can lose your chosen design each time you resize your app window. Here's what I'm doing to help make this more manageable:

1) Starting with iOS and Android versions 2022-11-04, all layouts that were created at the full screen size will be automatically treated as scalable when using multi-window mode. This avoids the problem of all layouts suddenly disappearing when moving to multi-window mode, and avoids the need to manually set layouts to Scalable, which will clutter the list of available layouts on other devices. However, layouts will be letterboxed or pillarboxed as needed when scaling to a different window size.

2) To avoid letterboxing and pillarboxing, you can create native layouts for each window size you use, but it is not easy to return to a previously used window size on any of these platforms. If you have a layout that you created for a specific window size and you want to return to that size, you can click Help > About, then watch the Window Size field as you resize the window until you reach your desired size.

3) Instead of creating new layouts from scratch, you can create a new layout based on an existing layout by clicking the Copy For This Size button the existing layout's Edit Details page. This is useful if you have customized a layout for one window size, and want to create a layout for another window size based on those customizations.

4) If you change the window size from the set list view, the app will switch to the last layout you selected when using approximately the same window size if you've done that, or scale the current layout to the new window size if not. If you see that the layout has been scaled, you can select a layout for the new window size if one exists, or create one if you wish.

5) Starting with iOS and Android versions 2022-11-18, the Repertoire > Layouts list, the set list menu and the Switch Layout button will add parentheses around the names of layouts that are available at the current window size because they are set to Scalable or were created at the device's full screen size, but will be scaled because they were created at a different window size. This will help you pick native layouts when available instead of scaled layouts with the same names.

Here are some other ideas to consider as this functionality becomes more widely adopted:

1) If my apps could change the window sizes programmatically, the app could potentially snap to a layout's native size when viewing it. I don't think this is possible on any of the platforms, but if it becomes possible I'll consider it.

2) I might have to move toward making all layouts scalable. Issues to address include eliminating letterboxing and pillarboxing, perhaps by automatically stretching some elements of a layout; reducing confusion when several layouts with the same name have different native sizes but are available on every device, perhaps by automatically giving preference to the closest size match; and deciding how many native layout sizes to create, perhaps a fixed set of sizes regardless of the band's actual device sizes.

I'm open to other ideas about how to adapt to these new operating system capabilities.


Since app version 2023-10-27, scalable layouts will scale in both directions (no letterboxing or pillarboxing), and all new layouts are scalable by default. So you can potentially use the same layout for multiple window sizes. This will work best on devices that let you resize a window but keep roughly the same aspect ratio. Layouts are still orientation-specific, so if you resize your window in a way that changes its orientation (e.g., from landscape to portrait), you will need to use a different layout.

Also, instead of listing scaled layouts in parentheses, the apps now show scaled layouts with a subtitle like "Scaled from Arlo's iPad" to help identify them.