This page describes the new features offered by the Smart Devices Generator in GeneXus 15.
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
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
Like the Web Components concept, SD Components are available. This feature provides a high degree of reusability. Learn more
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
This new control greatly improves the user experience for cases in which end-users have to choose between two options. Learn more
New improvements have been added to Audio API to allow creating playlists in smart device applications. Learn more
A new miscellaneous control has been added for easily interact with AudioAPI as an audio player. Learn more
Allows the end user to share content with any third-party application installed in the device. Learn more
Help developers to register information of application usage with the popular framework Google Analytics in the client-side. Learn more
This API adds a new method to persist encrypted data. Learn more
Encrypt data persisted in the offline database by simply changing one property. Learn more
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
Two new specific properties were added to control the maximum amount that reaches the chronometer: Max value & Max value text. Learn more
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
A simple control to interact with Facebook to retrieve public information from the end user. Learn more
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
The three static methods of GUID data type (NewGUID, Empty & FromString) are supported in client-side events. Learn more
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
The ability to promote apps through facebook is automatically resolved. Learn more
All records of the grids can be loaded in reverse order by setting a property. Learn more
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
The Refresh event associated with a Grid control allows reloading it without refreshing the entry form. Learn more
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
A simple mechanism to select the way of how your system sends a set of notification to the smart devices apps. Learn more
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
A multi platform mechanism to incorporate audio recordings to your app has been added as a simple API. Learn more
A set of functionalities for selecting items on a Grid control by using programming strategies. Learn more
A flexible mechanism that allows the developer to integrate a website with a native application for smart devices. Learn more
Designed for those advances developers which want to extend GeneXus functionalities for Smart Devices applications. Learn more
An alternative of synchronization by row using hashes that allows the developer to synchronize rows by using timestamps. Learn more
Useful when the developer embedded web-content on the app and desires to capture events from the native application. Learn more
Integrate your application with AliPay's Chinese electronic payment. Learn more
Integrate your application with WeChatPay's Chinese electronic payment. Learn more
New methods have been added to this external object. Learn more
Send customizable push notification using the OneSignal provider. Learn more
Send notifications using JPush Chinese provider. Learn more
A set of properties helps the developers to simulate popular graphic behavior in their smart devices applications. Learn more
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
This feature allows setting if when the end-user scroll down the screen, the Application Bar will continue being visible or not. Learn more
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
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.
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
Add custom Lottie animations to your application. Learn more
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
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.
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
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
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:
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
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.
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
The property included in main objects helps developers to link their applications with Google Cast. Learn more
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
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
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
Increase the security of an Android smart device application by obfuscating its methods. Learn more
Objective-C language is demodé. Since GeneXus 15, iOS applications are generated using the newest Apple's programming language called Swift. Learn more.
A resource optimization proposed by Apple has been added to reduce the size of an iOS application generated with GeneXus. Learn more
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).
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.
It is possible to call SOAP web services (External Object) from offline Apps.
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).
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.
As from iOS 10, the developer must indicate the usage purpose of any device's feature. Learn more
This property allows the developers to indicate which features of their apps can execute in background mode (e.g. audio playback). Learn more
Design apps for iPhone X screen by setting a group of properties. Learn more
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.
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.
If the compile process fails due requirements, the output indicates which one miss and gives more information about it.
The User Controls has to incorporate the Visible and Invisible Mode properties to hide or show them, at design or run time.
Some features have been deprecated since the last version, so iOS & Android specific properties are changed.
Please refer to:
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.