BrightForms on iOS Appendix

Contents Hide


Introduction

This document details what features are currently unsupported in BrightForms on iOS devices, and also which features behave slightly differently in iOS compared to the Windows/Windows mobile platform. Please consider these differences with cross-platform applications and iOS development.

At the end of the document, there is also an explicit list of unsupported methods for reference.

Form Controls

Tabbing/Focus Properties

Fonts

Input Methods

Label

Edit Control

Button

Combo Box

DateTime

ListView

Scribble

Image

Forms

Navigation

Properties

Display

Menus

Tabs

Project

Settings

Trace

Deployment

Synchronisation

BrightForms on iOS may only sync to BrightServer instances which are version 6 or above. Previous versions of BrightServer are not supported.

The "Send server system clock for clients to synchronise" setting of BrightServer will have no effect the system clock.

File Sharing Deployment

BrightForms generally receives updates and deployments to applications via BrightServer over 3G/WiFi. If a new version of a project is set, syncing to the server will retrieve and unpack all the necessary project files, and give the option for users to restart BrightForms, applying the changes. However, if no connection is possible from a device to BrightServer, applications may be loaded via USB connection via the following steps:

  1. Ensure the project to deploy has the same name as the project under 'Settings > Project > Project Name' of BrightForms. If not the same, download the BSS file from the device, replace or create the "project-name" setting to the project’s name, then re-upload the changed BSS onto the device.

  2. Open the project in BrightBuilder, then right click it, selecting "Export Application".

  3. Choose a clean directory and continue with the export. The project's files will be exported to the chosen path.

  4. Close BrightForms on the device via iOS multitasking.

  5. Open iTunes, then copy the exported files over to BrightForms Documents via File Sharing. Replace where necessary.

  6. Restart BrightForms. The exported version of the application will load.

Due to the number of steps, it is recommended to use the wireless network connections where able, and to consider file shared utilised deployment as a last resort.

Objects

Camera

SetPath() is relative to BrightForms' home directory in iOS (see 'File' behaviour below).

Images taken by the camera will scale its largest dimension to 768px. Photos may be taken in either portrait or landscape modes.

Email

AddAttachment() is relative to BrightForms' home directory in iOS (see 'File' behaviour below).

File

As iOS apps are sandboxed, files may only be created or accessed within their own home directories. As such, files are accessed in BrightForms relative to BrightForms' directory in iOS.

For example, a directory named 'temp' may be referred to by the file object by CreateDirectory("temp"), or 'file.txt' created to this directory via SaveText("/temp/file.txt"). This data is backed up and restored to and from iTunes.

Unlike Windows Mobile and Android platforms, files may be created containing wildcards '*' and/or '?' characters. Furthermore, searching for files via the 'Find' set of methods can only produce a set of files for a particular directory - for example '/' will return all files in the projects directory, while '/temp/' will return all files in the 'temp' directory.

These files may be accessed by connecting the device to a PC, and using iTunes' 'File Sharing' feature for BrightForms. For more information, please refer to the BrightForms File Sharing chapter of this document.

GPS

Communicating with the GPS object via COMs port is not supported, and therefore the Open() and SendMessage() methods do not apply to the iOS platform. Instead, use the OpenIntermediate() method, and other GPS methods to retrieve information.

Due to system limitations, the methods GetFixQuality() and GetSatellitesInView() are not supported in iOS, and will not return correct values to assess the GPS read state. Instead, the HasValidRead() method must be used to determine if the GPS has captured valid values to read.

Using the GPS on an iOS device will also prompt the user for permission to do so by the OS on first use. For more information, please refer to the Location Services chapter of this document.

Magnetic StripeCard

Currently not supported.

NFC

Currently not supported.

Report

Print() will generate and open reports as a PDF in preview window, while PrintPDF() will produce the same output writing to specified file.

Scanner

Scanning on iOS operates using the device's camera, and is initiated via the Scanner.Scan() method. For more information, please refer to the Barcode Scanner section of the BrightForms on iOS topic.

Security

MD5Digest method is supported. However Encrypt, Decrypt, SetAlgorithm methods are currently not supported.

System

GetProjectPath() will return a value relative to BrightForms' home directory in iOS (see 'File' behaviour above).

The method GetBatteryStatus() will return a value containing a number of flags describing the battery status. For example, if the battery level is high and the device is charging, the codes BATTERY_CHARGING (8) and BATTERY_HIGH (1) will be flagged bitwise, resulting in the code 9. This behaviour is as Windows spec, but is not necessarily adhered to in all Windows devices. It will always hold true in iOS.  

List of Unsupported Object Methods

ConnectionManager

Camera

DLL

Email

Form

GPS

MagneticStripeCard

NFC

SerialPort

System

Controls