System variables reference

System variables are values calculated by the app runtime, covering things like current app version or screen width. They are automatically kept up-to-date, so e.g. resizing your screen will affect systemVars.dimensions.window, and rotating your phone will update systemVars.orientation.

They can be accessed in formula functions under the systemVars namespace. This means that e.g. os below is found under systemVars.os.

System variable

Valid values

Description

os

android, ios, windows_phone, black_berry, androidtv, tvos, tizen, webos, windows, macos, unix, linux, unknown

Name of the current operating system.

orientation

portait, landscape

Device orientation.

dimensions.screen.width

Any positive integer value

Screen width, in pixels.

dimensions.screen.height

Any positive integer value

Screen height, in pixels

dimensions.window.width

Any positive integer value

Window width, in pixels. On mobile, this is equal to screen width.

dimensions.window.height

Any positive integer value

Window width, in pixels. On mobile, this is equal to screen width.

dimensions.viewport.width

Any positive integer value

Visible viewport width excluding sidebar if exists.

dimensions.viewport.height

Any positive integer value

Visible viewport height excluding navbar and topbar if exists.

env

dev, prod

Current environment. If release management is not in use, the value is always prod.

formFactor

phone, tablet, big_screen, desktop, unknown

Device form factor.

permissions

N/A

Covered in the Permissons reference document.

buildVersion

Semver version code, e.g. 1.0.5

Binary build version, set in the build configuration.

runtimeVersion

Semver version code, e.g. 1.2.4

AppGyver runtime version.

buildType

client, selector

Build type. selector means the AppGyver app used to view and develop your apps.

networkStatus

none, cellurar, wifi, unknown

Network status. If there is no network, or the app is running with the web runtime, then none is returned.

runtime

web, native

Runtime type.

initialUrl

String value

If your app was launched from external URL that URL is registered intoinitialUrlsystem variable.

uriSchemes.primary

String value

This variable represent url your app can be launched from external tool i.e. mobile browser.

File system

The systemVars.filesystem object contains information about the file system of the device the app is currently running.

This information is only available on native apps, not when running on web.

Common base directories

The systemVars.filesystem.directories object contains the base directory paths available on the device. Flow functions that deal with files work with absolute paths, so a pattern you will encounter is using these at the beginning of a file path constructed with a formula, e.g. systemVars.filesystem.directories.cache + "/myTempFile.jpg".

The following directories are available on both iOS and Android.

Document

systemVars.fileSystem.directories.document

Local file system path to the document directory. This directory will only be emptied when the app is uninstalled, so it can be used to safely store files your app needs to function.

For example, /data/user/0/com.appgyver.agclient.debug/files.

Under the hood on iOS, the NSDocumentDirectory API is used. On Android, the getDataDirectory API is used.

Cache

systemVars.filesystem.directories.cache

Local file system path to the cache directory for the app. This directory can be emptied by the operating system, so it should only be used to store temporary files.

For example, /data/user/0/com.appgyver.agclient.debug/cache.

On iOS, the NSCachesDirectory is used. On Android, the getCacheDir API is used on the app context.

iOS-only directories

The directories below are only available when the app is running on an iOS device.

Main bundle

systemVars.filesystem.directories.ios.mainBundle

Local file system path to the main bundle directory, which contains files embedded in the iOS binary. This directory is read-only.

Android-only directories

The directories below are only available when the app is running on an Android device.

DCIM

systemVars.filesystem.directories.android.dcim

Local filesystem path to the Digital Camera Images (DCIM) directory.

Download

systemVars.filesystem.directories.android.download

Local filesystem path to the downloads directory.

Music

systemVars.filesystem.directories.android.music

Local filesystem path to the music directory.

Pictures

systemVars.filesystem.directories.android.pictures

Local filesystem path to the pictures directory.

Movies

systemVars.filesystem.directories.android.movies

Local filesystem path to the movies directory.

Ringtones

systemVars.filesystem.directories.android.ringtones

Local filesystem path to the ringtones directory.

SD card

systemVars.filesystem.directories.android.sdCard

Local filesystem path to the device SD card directory.