Mendix 8.14 – Keep the Maker Momentum Alive
Mendix 8.14 – Keep the Maker Momentum Alive by Danny Roest
Are you still giddy with excitement from Mendix World 2020? We certainly are! With over 16,000 Makers registered from 80+ countries, 20 big product announcements, the event certainly set many records. But in true Mendix Maker spirit, we never stop adding more features. In this blog, we not only talk about this month’s product updates but also summarize key features of the last two releases, Mendix 8.12 and 8.13. (Did you really think we would just skip talking about two product releases?!)
Dynamic classes: As much a great feature as a delighter
Ever wanted to style your widget differently based on some condition? Well, now you can. We introduced a dynamic class property on all widgets. This enables you to specify an expression that returns the class name(s) that will be applied to the widget.
Before this feature, widgets were duplicated and had to be toggled via conditional visibility just to use another class. Not anymore! This new feature will make your life easier and development faster. Further, you get more options to dynamically style your apps.
Native mobile navigation enhancements: History control and popups
When designing and building an app, one of the most important aspects to focus on is the user flow through the application. This is especially true for mobile apps, where users have specific expectations on what should happen at every step of their journey. To help you build apps that meet the expectations of your users, we have extended the native navigation capabilities on two fronts:
Control over history
We have extended the Close Page action with the ability to close multiple pages at once. This allows you to close an entire subflow of your application in one go.
Additionally, you can now close one or more pages as part of the Open Page action. This gives you fine-grained control over user flows, by deciding what is visible when the user navigates back. Alternatively, you can prevent the user from navigating back entirely by using the option to ‘Clear history’ of the Open Page action. This is useful when navigating from say, introduction screens to the real landing page of your app.
Sometimes you want your user to focus on a very specific task. Popups are perfect for such a scenario as they occupy the full screen. From now on, you can also use popups in native mobile apps by setting the layout type to ‘Popup.’
Pluggable widgets: Data sources
In the 8.12 release, we had introduced data sources, which allows widgets to work with object lists. Now with Mendix 8.14, you can get a list of attribute values from the data source without having to write the logic to retrieve the data. Isn’t that powerful?!
With 8.14 you can also link the expression property and the text template property to a data source which makes it possible to use the object of the data source in the expression and in the text templates parameters. This will give your users more control and flexibility when using your widget, for example, to format a currency or to use some additional logic. In the coming month, we will release a timeline widget for the web which already uses the text templates.
We see customers building more and more complex offline-first native mobile apps, including apps with more data. We are happy to announce that this release significantly improves the synchronization performance. Our tests and some customer tests are very promising – overall, we see a 4-5 factor improvement. In fact, we have also seen 20 times faster improvement!
If you already synchronize data in batches via the synchronize to device action, it might be worth tweaking the batch size, as larger batch sizes now perform better with 8.14.
ICYMI: 8.12 and 8.13 updates
Over the last couple of releases, we introduced many powerful features that will make your and the end user’s life better.
Refresh object and entity
Mendix provides a mechanism to automatically refresh widgets on a page, for instance, when data is committed. However, there are cases when you want to programmatically refresh a widget without using a commit. For example, if you have a list with non-persistent entities. To give this additional control to developers, we released the Refresh object and Refresh entity actions as part of the nanoflow commons module.
Dynamic page titles (8.12)
Before 8.12, pages on the web or mobile could only have a static page title. With 8.12 onwards, it is possible to override the page title with a dynamic title by using templates. You can now create dynamic page titles based on data.
Long paths in client expressions (8.12)
You can now use long paths in nanoflows, making client-side expression more powerful. No more need for additional retrieve actions!
Improved accessibility and UX with autocomplete (8.12)
We added an option to provide autocomplete information for text boxes. This is great to improve the accessibility and the user experience (UX) of your forms!
Preserve data on synchronization error (8.12)
With offline-first apps, it can happen that at the moment of synchronizing data back to the server, that data or entity is not accessible anymore. When synchronizing changes in offline-first apps of objects that are no longer available on the server at the time of synchronizing, these changes are discarded. This can happen when objects are deleted or no longer accessible.
In this release, we added additional logging of the discarded changes in a System entity called SynchronizationError. This makes it possible to provide custom rollback mechanisms and detect the possible bugs in your application that can cause this situation.
Tab container badge support (8.13)
We added the option to provide a badge in your tab containers, enabling new possibilities like showing the number of unread items or to highlight a new notification.
Mendix Studio updates
Live checks while building the app
Mendix Studio now performs real-time checks, making sure your app is checked for consistency after every single change you make. You will get direct feedback – is your app ready for showtime or do you have some to-dos left?
Talking about to-dos, it’s now easy to spot the to-dos and any configuration errors. Simply hit the Checks button to show them all. Start solving them whenever you feel like it. Moreover, when in problem-solving mode, Studio will mark elements in the various editors with a red bulb, making them easy to find and take action right away.
Keep the momentum going