Others

Kalipso - Developing - Project - Properties - Others

You can customize and protect your Project simply by checking a few Options. Please revise them because they directly influence the execution of your Project once deployed.

General

  • DB Encryption Key - Password to encrypt your Local Database file. All the Offline and Local Tables used in your Project, are stored in a single SQLite file. That file, by default, can be accessed with appropriate software. If you want to prevent the access to that file, define a password to encrypt it. If you don’t define this property, your Database will be open.

  • GPS Unit - GPS unit used by the TOMTOM and GPS Actions.

  • Resize Mode - Allows the application to automatically resize to better fit the actual device where it's being executed. For example if the project terminal is defined has 1200x640 and the application is then executed on a device with 1800x800, then all the objects in the application will be stretched 1.5 times in the horizontal dimension and 1.28 times in the vertical. The font sizes will also be adjusted by the smaller factor, in this case 1.28. So if the application is executed on devices with similar width/height ratios, it will "look good" on all those devices without any modification to the project.

  • Resize Font Mode - Allows the fonts to automatically resize to better fit the actual device where it's being executed. For example, if the device has a smaller height compared to the project terminal, but the same width, using the Y axis, the font will be bigger and won't fit. If the user chooses the smaller axis, the fonts will fit both in width and height.

  • Idle Time - This parameter allows to define the time, in milliseconds, to trigger the "On Idle" Event. The Event will be triggered when no Action has been executed during the amount of "Idle Time".

  • Android ZXing Mode - Allows to define the usage mode of ZXing on Android. For barcode reading through camera on Android, Kalipso uses ZXing library. This library isn't update in Kalipso as the same speed as it is released. Therefore, Kalipso allows you to choose between using the library version shipped with KClient or the manually installed ZXing app. The options available are:

  • Automatically Refresh Combos, Lists and Radios with only Fixed Values - Loads Combos, List and Radios data even without calling "Refresh Control" Action. If your Control has only Fixed Values, it's automatically refreshed with that data. If you uncheck this property, you’ll have to use “Refresh”, “Refresh Plane” or “Refresh Control” Action for the Control to be filled with the defined fixed values.

  • Prevent the execution of Update/Delete Statements without 'Where' clause - Returns an error if you try to execute an Update or Delete SQL Statement without "where". By checking this property, any Update or Delete statement that you’ve defined in your Project that doesn’t have a “Where” (ex: “update Products set Stock = 10”, “delete from Products”), will not be executed and an error will be raised. You can enable this feature individually for Online and Offline Databases. If you really want to execute and Update or Delete statement without a "Where", we advise you to keep this option checked and to define a dummy "Where" in your Update or Delete statement (ex: “update Products set Stock = 10” where 1 = 1, “delete from Products” where 1 = 1).

  • Prevent SQL Injection - “Does what it says”. When defining SQL statements in Kalipso, you can use values inputted by the user, therefore is possible for the user to “inject” SQL code into your statement. If you activate this property, Kalipso will check for the existence of semi-colon (;) outside single quotes (’).

  • Prevent "Replace Mode" to be applied in "Update Project" with unsynchronized data - Kalipso won't update the Project with replace mode if there is unsynchronized data.

  • Prevent automatic Keyboard Display - Controls the visibility of the Keyboard. This option is disabled by default on new Projects. Projects from previous versions won't be affected by this parameter.

  • Hide Navigation Bar - Controls the visibility of the Navigation Bar. This option is disabled by default on new Projects. Projects from previous version won't be affected by this parameter.

  • Ignore Barcode Action errors on Simulator - Ignores errors from the Barcode Actions in the Simulator. When testing applications that use Barcode Actions on Simulator the errors returned by the application will be ignored.

  • Run Project in Memory - Kalipso projects are stored on the device in the “.KPR” file and executed directly from the file. Activating this option will cause the project to be loaded from the “.KPR” file into RAM memory. The 2 bigger advantages are: faster execution and in case of Win32, will allow multiple instances of the Same App to execute The biggest disadvantage is memory consumption, since it will use more RAM memory to load the project.

  • Save Project modifications - When using “Run project in Memory” option, changes made by actions like “Set DB Profile Parameter” are lost when the project is closed, since they are made in RAM memory. Activating this option will cause Kalipso to also write those changes into the “.KPR” file making them persistent.

Numeric Settings

  • Thousand Separator - Thousand separator character for numeric columns. This value is available throughout the Project under "TSEPARATOR" Keyword.

  • Decimal Separator - Decimal separator character for numeric columns. This value is available throughout the Project under "DSEPARATOR" Keyword.

  • Currency Symbol - Character used as Currency symbol (suffix) in currency columns. This value is available throughout the Project under "CCY_SYMBOL" Keyword.

  • Currency Decimal Places - Number of decimal places in currency columns. This value is available throughout the Project under "CCY_DPLACES" Keyword.

  • Use the specified Decimal Separator in input Boxes. Checkbox to activate the option as the sentence says.

Push Notifications

Enable Push Notifications - Allows you to enable your application to receive Push Notifications A push notification is a message that pops up on a mobile device. App publishers can send them at any time; users don't have to be in the app or using their devices to receive them. In order to use Push Notifications in your application, you need to register it in Google. Upon that process is completed, you're able to download a JSON file with your Android Sender ID and Android Google App ID.

For test purposes, you're able to send a Push Notification to your application, if running through KClient.

  • Save messages when application is not active - When your application is closed, you cannot intercept push notifications. Nonetheless, when you activate this option, lost messages are stored and you can access them when the application runs again through "Push Notification Get Lost Message" Action. Don't use this mechanism to persistently store information, this information may be lost for example in a system or App upgrade.

For the "Save messages when application is not active" on Android this will only work for data-only push notifications.

  • Send Test Request - Makes a test

Android

  • Android Sender ID - This value is provided to you by Google upon setting up your account. You can use "Load from google-services.json" button to load it automatically if you have access to the file.

  • Android Google App ID - This value is provided to you by Google upon registering your app for push notifications. You can use "Load from google-services.json" button to load it automatically if you have access to the file.

  • Android Google API Key - This value is provided to you by Google upon registering your app for push notifications. You can use "Load from google-services.json" button to load it automatically if you have access to the file.

  • Android Google Project ID - This value is provided to you by Google upon registering your app for push notifications. You can use "Load from google-services.json" button to load it automatically if you have access to the file.

  • Load from google-services.json - Upload information from Google for the fields described above.

IOS

  • Use Firebase - To send Push Notifications to iOS, Apple's services are usually used to do this. Kalipso allows this test to be sent via Google's Firebase. To do this, you must check this option. Thus, if this option is not checked, Push Notifications must be sent to iOS via Apple services. If this option is checked, Push Notifications must be sent to iOS via Google's Firebase services

By default the option is set to off.

Voice (Nuance)

  • Use TTS (Text To Speech) - Activates the Text To Speech

  • Use ASR (Automatic Speech Recognition) - Activates the Automatic Speech Recognition

Data Security

  • Encrypt Database with password randomly generated on device - As the name implies, the database is encrypted with a password generated randomly on the device. This can be done in three ways:

    • No - It will not encrypt this way.

    • Yes for current Project - Yes, but only for the current project.

    • Yes for current Project and Linked Project's - Yes, for the current project and linked projects.

  • Encrypt Database with specific password - It provides a free field to enter a password to encrypt the database. This password is placed in this option.

  • Encrypt Database password with device's user keystore - Encrypts the database password with the user's KeyStore on the device. This option is only effective if used with a Random Password, or with a dynamic password defined with SetProjectParameter.

  • Encrypt Profile's passwords with device's user keystore - Encrypts database and communication profiles passwords with the user's KeyStore on the device. This option is only effective with passwords defined using SetCommProfileParameter or SetDBProfileParameter.

Using devices KeyStore to save the passwords, greatly increases the security of these passwords, but it also means that it can only be decrypted on the same device, by the same App on the same user account.

For example, on Windows, if you copy the entire application folder from one PC to another, these values cannot be decrypted. For the local database it means it will not be possible to access that database, for profiles, it means those values cannot be read, and so they need to be redefined with SetCommProfileParameter or SetDBProfileParameter.

Advanced

  • MIS Product Code - This is the product code used by Kalipso to identify to MISCommunicator. In MISCommunicator this is defined under the "Products" button.

  • Keywords Scope - This option is for keywords ERRORCODE, ERRORMSG, IERRORCODE, RECORDCOUNT and POPUP.

    • “Global” - It means that this keywords work has global variables, their value is equal in all project

    • “Event” - It means that this keywords work has temporary variables, their value is only valid on the event that is running. If for example an ActionSet is called these keywords will have their own value inside the actionset that is running.

  • Custom URI Schemes - Names through which your application can be launched like a protocol.

  • Soap Prefix - Add a specific SOAP Prefix to your project.

  • Preload Control's Images in Memory (win32 only) - “Does what it says” . The pre-loading will be executed when the Form is open. If checked, this option will slow down the opening of the Form and will have a higher cost of memory but the display of images in the Controls will be faster.

  • Manage Key Event On - When defining a Key Event, that Key event can be triggered either at Key Down or Key Up. With this parameter, you can define if you want the Key Events to be triggered when the key is pressed, released or both. Notice that if defined both "Key Down" and "Key Up", each Key Event will be triggered twice for each keystroke.

  • Override default Keyboard handler for mapped Key Events - By choosing this option you can override the default behavior of a key on an input control, or on a form. When you add an event associated with a key, when that key is pressed the code you have on that event is executed, but the default behavior for that key is also executed. For example, on a text box it is possible the add an event for the key "1". So if the user presses the key "1" the number "1" is entered into that text box and your code is also executed. If you enable this option, when the key "1" is pressed, nothing is sent to that text box, only your code is executed.

    • No

    • Yes for Controls

    • Yes for Controls and Forms

    This option is only for Android and Win32.

  • Android code execution mode - In Android, if a specific set of code is executed in the user interface thread for longer than 4 or 5 seconds, a message will appear to the user saying the application is "non responsive" (ANR) and it allows the user to kill the application. The advantage of "Background Thread" mode is that the "ANR" message will never appear to the user, but if the application makes a lot of changes to the user interface in the code, it can be slower. For application that don't have code running for long periods of time, the "User Interface Thread" mode is normally preferred, and if a specific function requires a lot of time to execute it can still be executed in a background thread by specifying "Thread Mode" = Yes in the "Execute Action Set" actions.

App Center

  • AppCenter - When enabled the Microsoft AppCenter SDK will also be enabled. By default both Analytics and Crashes module will also be enabled, but you should not rely on this behavior and you should Enable/Disable each module by calling AppCenter Set Enabled State action, normally in your App first form.

  • App Secret Android - The App Secret for Android version. You get this from your AppCenter account. You need to provide this value to enable AppCenter SDK integration on Android.

  • App Secret iOS - The App Secret for iOS version. You get this from your AppCenter account. You need to provide this value to enable AppCenter SDK integration on iOS.

  • App Secret Win10 - The App Secret for Win10 UWP version. You get this from your AppCenter account. You need to provide this value to enable AppCenter SDK integration on Win10.

  • Maximum Storage Size - This value is used to determine the maximum storage size for locally cached data. If not specified, the default value for the SDK is 10Mb. Crashes and Analytics data is cached locally and sent at regular intervals when the network connection to the AppCenter is available. Please refer to Microsoft AppCenter documentation for further details on how the local cache is actually performed.

Last updated