Technical Brief

FileMaker Go 1.2.1 Technical Brief
23
All of this leads to the general recommendation that you should design your solutions to be single-window-centric
in their primary functions.
Zoom Management
Window zoom settings behave somewhat differently in FileMaker Go. Zoom settings can be applied to a layout
and those settings will be retained for the layout until the setting is changed. This is slightly different than in
FileMaker Pro, where the zoom setting is applied to the window and is retained even when a layout change occurs.
Additionally if you script a zoom level that is smaller than the zoom level that will fill the screen, FileMaker Go stops
at the fractional zoom value that lets you see the whole layout, but no smaller. FileMaker Go will not let you zoom
out to see a postage-stamp version of your layout; it will only go as far as the screen allows.
For example, if you view a layout that does not fit the screen and pinch it, it will not get smaller than what can fit
onscreen,say73%.Ifyouuseascripttosetzoomlevellowerthan73%inthiscase(sayto50%),FileMakerGowill
onlyzoomto73%.
Note that Get(WindowZoomLevel) returns the integer value of a screen, even though FileMaker Pro users and
scriptscanonlychangethezoomlevelinsetincrementsof25%,50%,etc.
Locking the zoom level can be helpful on a list view to prevent horizontal scrolling. In general though, given that
users will more dynamically control zoom levels by pinch-zooming whenever they feel like it, a possible best
practice would be to defer zoom levels to the user rather than setting them by script as is common in FileMaker Pro.
Scripting for a Mobile World
As mentioned above, one of the important considerations to keep in mind for FileMaker Go is that a script can
be halted at any time regardless of its Allow User Abort settings. If a call comes in on the iPhone, iOS closes the
existing application to take the call. FileMaker Go does not support multitasking, so the application is shut down
when that happens. Likewise, a user can close the application at any time by pressing the Home button on either
the iPhone or the iPad.
Performance is another important consideration. While it is possible to create some fairly elaborate and richly
scripted processes in FileMaker, the addition of FileMaker Go to the platform further stresses that developers
shouldbejudiciouswhenusing“coolpettricks”ordataintensiveprocesses.
Testing indicated that committing records is a more network-intensive function than most other operations in
FileMaker Go, such as performing a find request. If, for example, a developer were to create a looping script that
modifies a field in a found set of records, two potential issues may arise. Firstly, the Home button, a phone call,
or a dropped connection may interrupt your script; and secondly, your users may not be prepared to wait for the
results, especially when on a 3G network.
A poorly conceptualized script in this case could leave a significant portion of your data in an unmodified state.
It cannot be stressed enough that in FileMaker Go there is no guarantee a given script will finish. A strong best
practice is to be careful and deliberate when writing scripts that modify data.
Before being guilty of a Chicken-Little response to this reality of working in a mobile world, consider that it would