GeneXus 15 Smart Devices Generator

Official Content

This page describes the new features offered by the Smart Devices Generator in GeneXus 15.

 

Developer Experience improvements

Live Editing - Runtime

Live Editing

The developer experience is enhanced because everything that is defined in the IDE is automatically reflected in the prototype device. In this way, the developer can preview his/her application while he/she is designing it. Learn more
 

Built-in modules

As a way to achieve low coupling and high cohesion in smart devices application, all those built-in APIs, SDTs and Domains are encapsulated into Modules and has been renamed to make it easily to understand.  Learn more
 

SD Components control

Like the Web Components concept, SD Components are available. This feature provides a high degree of reusability. Learn more
 

Tab control improvements

Due to the structural limitations of smart devices, organizing information is essential. New improvements to the Tab Controls are available to provide a better user experience in applications for smart devices. Learn more
 

Switch control

This new control greatly improves the user experience for cases in which end-users have to choose between two options. Learn more
 

Audio external object

New improvements have been added to Audio API to allow creating playlists in smart device applications. Learn more
 

AudioController control

A new miscellaneous control has been added for easily interact with AudioAPI as an audio player. Learn more
 

Share external object

Allows the end user to share content with any third-party application installed in the device. Learn more
 

Analytics external object

Help developers to register information of application usage with the popular framework Google Analytics in the client-side. Learn more
 

ClientStorage external object

This API adds a new method to persist encrypted data. Learn more
 

Encrypt offline database

Encrypt data persisted in the offline database by simply changing one property. Learn more
 

Global events external object

This new mechanism simplifies the programmer's task to solve cases in which the end-user executes an action in the application, or there are critical server changes to be notified. Learn more
 

Chronometer control

Two new specific properties were added to control the maximum amount that reaches the chronometer: Max value & Max value textLearn more
 

Search external object & SearchBox control

When data increase, a good search mechanism is vital for the end user. These two elements allow the developers to incorporate their in-app searches improving its power in a simple way. Learn more
 

SD Facebook Button control

A simple control to interact with Facebook to retrieve public information from the end user. Learn more
 

Do Case command in client-side events

The Do Case command is available in client-side events (such as ClientStart, Back, and user-defined) simplifying the developer task when is necessary to program multiple conditional flows. Learn more
 

GUID static methods support

The three static methods of GUID data type (NewGUID, Empty & FromString) are supported in client-side events. Learn more
 

Navigation external object

The CallOptions allows loading a panel on any target section of the device and then display it by a swipe gesture or call it programmatically. Learn more
 

Facebook deferred deep linking

The ability to promote apps through facebook is automatically resolved. Learn more
 

Grids inverse loading

All records of the grids can be loaded in reverse order by setting a property. Learn more
 

Import fonts

A Font node has been added to the Theme object tree view in order to import custom fonts and reference them from Font Family property on the theme classes. Learn more
 

Refresh method for Grids

The Refresh event associated with a Grid control allows reloading it without refreshing the entry form. Learn more
 

Runtime external object

Differentiate in which side of the client-server architecture was executed some action, giving to the developer the full control of the application business logic. Learn more
 

Notification provider property

A simple mechanism to select the way of how your system sends a set of notification to the smart devices apps. Learn more
 

StoreManager external object

This API has been reimplemented as of GeneXus 15 Upgrade 3 to simplify the task of the developers when they incorporate in-app billings in their applications. Learn more
 

AudioRecorder external object

A multi platform mechanism to incorporate audio recordings to your app has been added as a simple API.  Learn more
 

Selection by code

A set of functionalities for selecting items on a Grid control by using programming strategies. Learn more
 

Deep Linking strategy

A flexible mechanism that allows the developer to integrate a website with a native application for smart devices. Learn more
 

Extension libraries

Designed for those advances developers which want to extend GeneXus functionalities for Smart Devices applications. Learn more
 

Synchronization by timestamp

An alternative of synchronization by row using hashes that allows the developer to synchronize rows by using timestamps. Learn more
 

WebBrowser external object

Useful when the developer embedded web-content on the app and desires to capture events from the native application. Learn more
 

AliPay integration

Integrate your application with AliPay's Chinese electronic payment. Learn more
 

WeChatPay integration

Integrate your application with WeChatPay's Chinese electronic payment. Learn more
 

Facebook external object

New methods have been added to this external object. Learn more
 

OneSignal notification provider

Send customizable push notification using the OneSignal provider. Learn more
 

JPush notification provider

Send notifications using JPush Chinese provider. Learn more

 

User Experience & User Interface improvements

PullToRefresh - Runtime Scroll behavior - Runtime HEROImage - Runtime

Parallax Effect

A set of properties helps the developers to simulate popular graphic behavior in their smart devices applications. Learn more
 

Motion Effect

A group of properties allows to developers the possibility to add to their applications a depth and movement effect when the end users move their devices. Learn more
 

Header Row Pattern (a.k.a. Hero Image)

This feature allows setting if when the end-user scroll down the screen, the Application Bar will continue being visible or not. Learn more
 

Pull To Refresh

By just setting a new property available for grids, the end user will be able to refresh or synchronize a list of items, in a friendly and intuitive way. Also, the developer has full control programming a single event to display the data. Learn more
 

In-app web content

When the application references external domains, the end user feels more comfortable if the transition between the native application and the browser is smooth. This behavior is provided by default, allowing to display full-screen web content to end users in Chrome (for Android) or Safari (for iOS) apps preserving the look&feel for the application and increasing the performance when loading the content. This feature is available for OpenInBrowser method, Link items in Dashboard, and variables/attributes based on URL/Component domains.
 

Floating pattern

A new value (named Float) has been added to Label Position property which incorporates a smooth floating effect when an editable field is selected. Learn more
 

Lottie animations

Add custom Lottie animations to your application. Learn more

 

Server side improvements

Distributed cache system

Distributed environments are becoming more frequent (mainly with smart devices applications) and with them, arises the need of a distributed memory object caching system to guarantee the validity of cached information. For this purpose, it is now possible to configure GeneXus to work with Redis and Memcached systems. Learn more
 

REST API Description

Web generators use Swagger to describe your REST API. That helps those who want to access it, and it helps them to build tools to know what changed. Learn more.
 

Offline synchronization table maintenance

The offline architecture may introduce an excessive increase of disk space usage (on server-side) as consequence of the number of devices that are consuming the provided service. To avoid that problem, a new property is available when the application has received data "by row" granularity, cleaning the table periodically elapsed a certain time indicated by the developer. As soon as a new version of the App, now generated with GeneXus 15, is installed on the device, the historical data from that device will be deleted from the server tables. So this cleaning process could be gradually executed. Learn more 
 

Multiple main offline support

The server side of the Smart Device Architecture supports multiple main offline apps that are installed on the same device, avoiding synchronization conflicts. Also, each app will have in its database only those tables that are involved that app. Learn more

 

Android generator improvements

Material Design Guidelines

As a way to help the end user to view a complete ecosystem for Android 5.0 and higher, a set of guidelines called Material Design must be followed. Learn More
For this propose, GeneXus has incorporated:

Google places picker

Attributes or variables based on Geolocation domain can be setting to pick a location using Google Places API, a richer tool than Google Maps. Learn more
 

Runtime permissions

The new permission scenario proposed by Android Marshmallow (6.0.0) is automatically resolved with GeneXus. Instead to granted all the permissions in installation time, the end user must granted them one-by-one at runtime. 
 

Notification Icon

It is possible to customize the icon shown in the status bar when the device receives a notification of the developed GeneXus app. Learn more
 

Google Cast receiver applications

The property included in main objects helps developers to link their applications with Google Cast. Learn more
 

Runtime formatted text

GeneXus automatically recognize the presence of HTML tags as a way to give format to plain text in those runtime properties which accepts string values. Learn more
 

Building process

Gradle is used to compile, instead of ANT, ensuring performance improvements in build-process and giving flexibility for those who develop User Controls and External Objects. Learn more 
 

FlexibleClient compiling process

As from this version, GeneXus built-in artifacts are provided pre-compiled. Experienced developers may have interested in how to incorporate their features to FlexibleClient. Learn more
 

Obfuscate application

Increase the security of an Android smart device application by obfuscating its methods. Learn more

 

iOS generator improvements

Swift generator

Objective-C language is demodé. Since GeneXus 15, iOS applications are generated using the newest Apple's programming language called Swift. Learn more.
 

App thinning

A resource optimization proposed by Apple has been added to reduce the size of an iOS application generated with GeneXus. Learn more
 

Autogenerate Application and Launch Images

Images missing from Application Icon and Launch Image properties in the main object are created automatically based on which have available. Consider that the images generated will scale down from the original one (only smaller images are created) and it works for any kind of image extension (not only *.png, that it was a restriction for previous versions).
 

Row height percentage support for Grids

Until this version, row height percentage on Grids was a limitation for iOS smart devices generator. Now you can design the layouts in a simple way avoiding workarounds.
 

SOAP services support from Offline Apps

It is possible to call SOAP web services (External Object) from offline Apps. 
 

Build Improvements

The performance of the step that transfers to MAC to compile has been improved a lot. In some laboratory test a huge time gain could be observed (8 minutes drop to 10 seconds).
 

FlexibleClient's split in frameworks

Since Apple's introduced watchOS and tvOS, and also some extensions have been added in iOS, It turns a necessity to split GeneXus FlexibleClient into frameworks to follow good programming practices. It might be useful knowledge for developers who create User Controls and External Objects
 

Purpose description for API access

As from iOS 10, the developer must indicate the usage purpose of any device's feature. Learn more
 

Background Modes property

This property allows the developers to indicate which features of their apps can execute in background mode (e.g. audio playback). Learn more
 

iPhone X support

Design apps for iPhone X screen by setting a group of properties. Learn more

 

Other improvements

Mode variable support

The Mode variable is available in Section and Detail nodes in WWSD object. This feature helps to developers to show the content that they want depending on the mode that de end user access to the panel. 
 

Output simplification for iOS generator

GeneXus developers don't need to know which files were generated and copied to the Mac computer to start the compilation process. For that reason, a single line is written to the Output window indicating the copying progress, instead of showing the progress for every single file. This results in a shorter, more readable output. Also, if there are errors or warnings in the build process, it will be indicated when necessary.
 

Output improve for Android generator

If the compile process fails due requirements, the output indicates which one miss and gives more information about it.
 

Visibility for user controls

The User Controls has to incorporate the Visible and Invisible Mode properties to hide or show them, at design or run time.
 

Android & iOS specifics properties

Some features have been deprecated since the last version, so iOS & Android specific properties are changed. 
 

 

Software Requirements

Please refer to:

 

Compatibility

Check compatibility with the previous version in GeneXus 15 Compatibility Section
Quick overview.

  • Tap gesture over Images based variables allows to upload them through "Select Image / Take Photo"  when they are not Read-Only following the same concept as other controls (strings display the keyboard, numeric display numeric keyboard, etc).
  • ControlValueChanged event is available on both platforms (Android & iOS), substituting the previous one (ValueChange  event - iOS only).
  • Auto Grow property differs semantically from the previous version.
    Specifically, when the Table has not autogrow enable, but some control inside the table has it, the control is limited for the table.
    In the previous version, it some attribute has this property enabled and the table disabled, the value in the table was ignored.
  • StoreManager external object, as of Upgrade 3, has deprecated the ProductCollection SDT (also change the parameters which use it) and also the IsEnable, EnableProduct and DisableProduct methods.

 


Was this page helpful?
What Is This?
Your feedback about this content is important. Let us know what you think.