Layouts, Styles and Themes, Oh My.
On 6/3/14, prior to the 2014 Developer’s Convention in San Antonio, Texas, FileMaker hosted a webinar about layouts, styles and themes. There were many interesting points discussed that may not be common knowledge to the FileMaker community. These are highlighted below:
Slide Control – This layout object is similar to a tab control, but has many important differences. Dots are used to switch slides instead of tabs with names. Dots can be hidden, unlike tabs which cannot be entirely hidden. Changing slides can be animated but changing tabs cannot be animated.
Refresh Object – This script step is similar to the Refresh Window script step, but it is more focused. Refresh Object only re-fetches data for the specified object whereas Refresh Window re-fetches data for the whole screen. This naturally results in better performance. However, there are times when Refresh Window is more appropriate, such as when refreshing a field within a portal is desired.
Style hierarchy – There are three different levels in the style hierarchy: local, theme and default. A local style is the style of the current layout object in the Inspector. If changes are made to an object and not saved with the current theme, this is a local style. A theme style is a theme’s designated style for all objects. The default style is the style that is used when the local and theme styles don’t dictate how an aspect of an object’s style should be. Local styles are respected first, then the theme style is used, lastly the default style is used. For example, if on a field we don’t change the corner radius in the Inspector and the theme doesn’t specify what the corner radius should be, then the default theme will be used and the corner radius will be 0 points.
Style normalization – In FileMaker Pro 13, if the local style of an object matches the theme style, then it is not stored. Previously, the local and theme styles were stored separately, even if they were exactly the same. This was unnecessary data that added a small amount of size to a FileMaker file.
Local style performance – The less local styles that are used (the fewer fields that are altered using the Inspector) the better. In development, you should not deviate from the theme defaults if possible.
Shadows – Outer and inner shadows can be applied to layout objects and are found in the Inspector. In terms of performance, shadows are very expensive and should be used with care. In fact, shadows are the most expensive layout style. They are so expensive that they are not fully supported on FileMaker Go.
Layout backgrounds – Using image backgrounds can be slow on FileMaker Pro, but are faster when viewed on FileMaker Go. This is because on the desktop there is no hardware acceleration.
Gradients – Don’t overuse gradients as they can slow things down. Interestingly, the direction of the gradient can affect performance.
Freeze Window – This script step stops the current window from redrawing (fetching data for the current layout’s objects) while a script is at work. This step is much more effective in FileMaker Pro 13. Tests done by FileMaker staff show that scripts are up to 90 times faster when they use Freeze Window.
In regards to the performance of layout objects: shapes are cheap, fields are a little more expensive, tab controls are more expensive than fields and web viewers are very expensive. Also, off-screen objects have less performance cost.
Nested tab controls make it harder for users to navigate your layout.