Convertigo 7.6 is the new release of the leading Open Source Mobility platform featuring a powerful back-end server MBaaS and an integrated hybrid MXDP (Multi eXperience Development Platform) based on Cordova and open SDKs able to integrate Native iOS Android and Xamarin mobile apps.
Convertigo 7.6 is a major release of the platform. This version adds new functionalities and enhances existing ones. This document will describe all the new features available in this release. Most of these enhancements and new features comes from requests from the 100 000 Users of the Convertigo community. We compiled them and “elected” the most important ones to be available in this release.
New Source Control and project sharing
One of the main requests we had from Convertigo users was to review the source control and collaborative project system.
Previous versions of Convertigo Studio were using an XML format to save projects on disks. This was really an issue for sharing projects within teams as all developers were modify one unique XML file causing conflicts and merge problems.
This has now been solved by using a new format for projects. They are now saved as YAML structures and split in several files. One for the main project settings, one for each Sequence, one for each Mobile Builder page, and one by connector. This prevents conflicts as 2 developers can work on different parts of the project without creating conflicts and solves the merging issues as YAML can be much more visually merged than XML.
Even more, instead of writing all the object properties in the file we now just write properties when they differ from the default property settings. This way the programmer can instantly see what property was modified in his project.
We also enhanced the UX for the programmer as we now offer the Team menus directly in the Convertigo project view, previously users had to switch to the resource view to perform SCM commands.
In the same way, Convertigo Studio is now shipped with a Full GIT Support (Without adding a plugin) making the use of GitHub or BitBucket much easier. Convertigo projects can now be imported directly from a Git repository even if the repository is not held in the workspace.
Note that a “.gitignore” file is automatically configured to prevent unnecessary files to be SCM controlled.
New Dark Theme
Another request we had from the community was to support a Dark Theme in Convertigo Studio. We now ship dark theme configured by default. Users can of course switch back to the classic ‘Light’ theme using the Window->preference->general Dialog box and choose the theme they want.
Convertigo views will be colored using this new theme, here is screen shot example.
Code editors are also using the dark theme, resulting in a much better UX and syntax coloring for the text file parts of Convertigo.
Cleaned up Menu System
Previous version of Convertigo were still presenting Eclipse standard menus to the user. This was confusing, and we had many requests to get rid of them. This is now done!
New Eclipse base for Studio
The Studio is now based on the latest 4.11 eclipse distribution, getting all benefits from this release.
Convertigo MBaaS is the low-code server part of Convertigo. This part also benefited from enhancements asked by the Convertigo Community
Convertigo “.CAR” Projects can now embed Java JAR librairies.
You can now add JAR files in your projects to provide Java classes that some of your project’s “Sequence_JS” would call. This way you can extend Convertigo functionality just by deploying a project on the server!
To do this, just add your JAR files in a project’s “libs” folder. They will be automatically added to a “private” (Restricted to this project only to avoid Class conflicts) Java class path so you can call any Class method of this JAR. From any sequence.
This is a key feature introducing community plugins to Convertigo MBaaS server.
New PDF Generation Sequencer Step
You can now generate PDFs from data in one step. All you have to do is to prepare a PDF Model using any PDF authoring tool such as Word, create in this PDF some form fields and name them.
Now in the PDF Step, just configure the path to the PDF Model, and a list of form fields names. Convertigo will generate a PDF with dynamic data based on the model.
Performance increase for Server JS
Jobs scheduler enhancements
The job scheduler now executes the jobs in the same order as they are defined. Also, you limit the number of parallel jobs.
New header for Convertigo responses
All Convertigo responses now use a new HTTP header called “X-Convertigo-Authenticated” to notify that a user is currently Authenticated to Convertigo. This information is used by the new SDKs in order to handle authentication events and session management events.
Global project Wide or server Wide properties
Sequencer now supports the context.server.get()/set() and the context.project.get()/set() in SequenceJS steps to get/set project wide or server wide properties
New URLMapper module supporting OAS3 (OpenAPI)
This release supports an OAS3 API portal available on “http://convertigo/openapi” This is based on the latest Swagger engine. The URL Mapper module has also been enhanced by supporting automatic JSON schema generation for swagger models and an integrated authentication system based on Convertigo “setAuthenticatedUser” Step.
Better ORACLE Database Cache manager
We added support for Oracle XMLTYPE and CLOB objects in the Convertigo cache manager. This way large object can be also cached in Convertigo to enhance performances.
Mobile builder Enhancements
Mobile Builder is the low-code Front-end part of Convertigo platform. Although developers can only use the Client SDKs to access the MBaaS back-end, they will benefit from the full platform acceleration when they use the Mobile Builder.
Introducing shared Actions and Shared components
This is a major enhancement in mobile builder. Code reuse and factorization is a global challenge in development. This release of Mobile Builder solves this by introducing the “Shared Actions” and “Shared Components”. You can now create Shared Actions that will define a complete client-side Action chain, with actions and of course any “Custom Action”. These actions can be invoked within any page of your project and even more, from any page of any other project! Same for “Shared Components”. A complete Graphical component structure can be shared among pages of your project and pages of any other project. This is the key for modular functional development where you can define a “.CAR” project providing basic functionality to other projects. For example you could have a completely functional Customer Shared Component handling all the necessary actions (Modify, create etc ..) that could be inserted in several different apps.
This leverages Code reuse among projects, better efficiency and reduces maintenance costs. Shared Actions and Shared Components are held in two new folders of the “Application” folder.
Another interesting event is the “SessionLost” event. This will be triggered if your device has been in an offline status longer then the session timeout configured in the project’s “Session Timeout” property. A good practice is to re-authenticate your user when this occurs.
Other enhancements on mobile builder…
Mobile Builder now supports application events. They are held in a new “Events” folder under the Application object. Application events will handle all application wide events such as network status, Application pause and start, and orientation changes.
One of the most interesting events is the “NetworkReachable” event. This event will be triggered when the app starts and when a check to access a Convertigo server endpoint is successful. From this event you can be sure to access any Convertigo server sequence and specially a “login” sequence to authenticate the user to a Convertigo server. The event is also triggered when the device comes back from an offline status and that the connectivity check is OK. A classic scheme is to handle in this event the Login and the FullSync “sync” request of your app.
New SharedObject Source picker
SharedObjects are application wide JSON objects that are shared among all application pages. This was already available in previous versions, but we enhanced the usability of these object. Previously you had to use a TS syntax such as “router.sharedObject?.myObject” in your properties, now you can use the new picker that will automatically bind the shared object to the property without bothering for the syntax.
New Action flow components
Even though we could do some action flows in previous versions, we added very useful ready to use Action flow components. This was really missing. We had a strong feedback from our users and are now happy to provide an “IterateAction “ for iterating on collections, and execute a set of actions on each iteration and an “IfElse” action to execute conditionally some actions and execute in an “Else” and other actions if the condition is not met.
New Infinity scroll component
Nice infinity scroll support in a few clicks the component will handle automatically an “ionInfinite” event that will be triggered each time you need more data in the scroll view.
New ClearDataSource action
In mobile builder projects you can bind components to data sources resulting from Sequence calls. Sometimes you would like to clear a Source, clear some listview data for example. You can now use this new action. Previously this had to be done by some code in a custom action.
New ClosePopOver Action
Much easier to use. This was requiring a Custom Action before!
Better Spinner control
Each time you execute a sequence or a FullSync request from your mobile builder application, the Convertigo Angular Framework (CAF) will handle the wait spinner automatically for you. You can now control the spinner by disabling this default behavior or define a time threshold to prevent the spinner to be displayed if the request execution time is smaller than this threshold. We also added to actions to explicitly display and hide the spinner without having the CAF handling it for you.
ForEach directive enhancements
The ForEach directive helps in displaying recurring components in a page. Previously, it was difficult to access the current item and to know the current index of this element when executing action from an event triggered on a component. This is now much easier as within your action, you can access “scope.item” giving you the item and “scope.index” for the index of this item in the collection
New Tooltip component
Just a built-in tool tip component to handle mouse over tooltips for desktop apps. Get this feature in your apps in a few clicks!
New Progress bar UI component
Ready to use progress bar component, useful to show to a FullSync replication status to your app users.
OpenID / OAuth enhancement
Just a simple enhancement: you can now configure an explicit TenantID for AzureAD. This is helpful when you want your AzureAD login page to be displayed directly.
FullSync is a key component of the Convertigo platform. It enables applications to handle OffLine data scenarios where data can be dynamically synced between users from different devices.
Automatic Client database resets
This was really an issue in previous version of the platform. All FullSync programmers did experience client database data flowing back to the server and “polluting” data on the server side when the server database was reset.
The applications had to implement by themselves a mechanism to RESET the client databases.
Now all this is done automatically. Executing a RESET transaction on the server will automatically cause any FullSync client to RESET their client database too. When syncing, Convertigo SDK will automatically perform this Database version check and will handle RESETs if needed.
This is a very important enhancement solving deployment issues and development issues. This enhancement has been voted as one of the most important by the Convertigo User community.
New Purge Transaction
The “Purge” action is to remove from the database all “_deleted” status documents. This speed up indexation and replication times.
This was of course possible previously but required a strong knowledge of CouchDB protocol and Heavy Sequence_JS programming.
We now provide a “Purge” transaction doing this work on one transaction call! Purge Transactions can be executed periodically thanks to the Convertigo Scheduler component. A good practice is to purge Large databases Monthly for example.
Global Platform Setup and Packaging
Convertigo is now on GitHub
Previously, Convertigo open source community edition was held on SourceForge. We got many requests from our community to switch to GitHub.
We totally agree as GitHub is the #1 open source exchange platform, GitHub brings to the Convertigo community a better view on issues, and a better collaboration workflow thanks to pull requests.
Convertigo Github repository is at : https://github.com/convertigo/convertigo
From now on, binary releases of Convertigo will also be available in GitHub for download. You will find there the Studios for Windows and MacOS and the Convertigo “.WAR” file you can deploy by yourself.
Convertigo is not shipping anymore the “linux.run” package as this has superseded by the new docker packaging
Better Community Support
In the same Idea, for getting better community support we are switching our community forum to Stack Exchange!
Of course, all the existing questions community support answers are archived on our web sites forums, but all new questions should be posted on StackOverflow with the “convertigo’ tag.
Kubernetes and Docker engine support
Convertigo Server is now packaged as Docker Image on Docker Hub. You can access them from https://hub.docker.com/_/convertigo
This way, on premises and cloud architects can use the images to setup their own server farms using Kubernetes.
We do provide on GitHub some sample Kubernetes setups files for Azure.