We’re starting the New Year off with a bang! The release of 9.10 brings with it a whole slew of exciting features, and because we didn’t publish a post for Mendix 9.8 or 9.9, we’re covering all the goodies from those releases as well.
This post will cover topics like the integrated styling editor, GIT support, Mobile improvements, page building improvements, new widgets, MxAssist improvements, and some great Studio enhancements. Are you ready to kickstart the New Year?
Integrated styling editor
A long-time favorite amongst our customers, the Atlas UI Framework comes with an out-of-the-box design system ready to help quickly build beautiful interfaces. To further modify the UI of your apps, custom styling is often needed. With the integrated styling editor, this is now so much easier!
Similar to JavaScript actions we used the Monaco editor (the same one as used in Visual Studio Code) to make it easy to create/change custom styling. With this addition, you can change styling without having to leave Studio Pro or face the need for other tooling. It’s as easy as 1-2-3 as you can see in the video: change, save, enjoy!
You can find the app level styling under the App node in the App Explorer. Here you can browse your theme files and directly edit your SCSS, JS, and JSON files. Note that by right-clicking the styling node you can also enable the styling editor for the styles in other modules.
Team Server with Git support in beta
We are happy to announce that we have released the public beta version of the Team Server Git edition! The Git edition of Team Server is a drop-in replacement of our Team Server Subversion edition and we now offer the option to store your new Mendix app models in Git instead of in Subversion. We have released this beta version of the Git addition initially for new apps only with an opt-in approach: by default, a new Mendix app will still be stored in Subversion but you now have an option in Studio Pro (under Preferences/New features) to choose Git as the home for your new app.
Later this quarter, the Team Server Git edition will become the default for all new apps on the Mendix platform and we will continue to support the Team Server Subversion edition for all existing apps. Later this year we will also offer a migration tool to move an existing Mendix app from Subversion to Git.
Related to this, we also have our BYO Git offering currently in beta and are testing this in various customer environments. This product will follow the same release schedule towards a Generally Available (GA) release as our Mendix platform Team Server Git edition.
Page editor improvements
We spent quite some time in the page editor making adjustments, and with this release, the page editor is now easier and more dynamic than ever before, helping you to be more productive.
Data source variables in pages
When building more complex UIs, it is common to have nested widgets depending on objects shown in the outer ones, for example only showing the orderlines of the current order. XPath source could already express some of such dependencies with the help of entity path or [%CurrentObject%] token.
With this release, we make page editor simpler and more powerful. From now on, XPath sources of a List View widget, Data grid 2, and many other widgets have access to the same variables as Page expressions! XPath constraints can refer to objects of all surrounding data widgets and to their attributes. This makes creating XPath constraints easier, more robust, and reduces the need for microflow/nanoflow-based sources.
Kudos to Fabian Recktenwald, Jean Gabeler, and Alexander Nicolaij for proposing this idea on the Mendix Idea Forum. Thank you for your contribution!
Faster access to most used widgets
We added the five most common widgets to the toolbar when editing pages, page templates, snippets, and building blocks. This will save you time when adding one or more of the most-used widgets: Container, Layout grid, Data view, Button, and Text box.
Native mobile and offline-first PWAs
Mendix 9.8 came with some very nice improvements for Native Mobile and other offline-first apps like PWA’s.
Default values support
With the 9.8 release, we added support for default values in offline-first apps. This means that when an object is created, it uses the default values as defined in your domain model, just like web apps do. This new process is aligned with online and web apps and makes creating new objects easier.
Microflow Calls
We’ve improved the internals of how non-persistable objects are passed as microflow parameters in offline-first apps. This means better performance, increased stability, and more flexibility. A microflow call is now a single request instead of multiple network calls, which improves performance and stability when calling microflows. Depending on the number of objects sent, this can translate to a meaningful boost in performance.
Additionally, do you recall the error message, “Non-persistable objects created in a microflow can’t be passed to another microflow”? Well, you can forget that! We are happy to announce that you can now pass non-persistable objects to microflows, even if they were created inside another microflow.
Platform support for nanoflow actions
Nanoflow actions can be used for both (progressive) web apps and native mobile apps to do many things including, for example, leveraging device capabilities. However, these actions won’t work on all platforms. With this release, developers of JavaScript actions can determine whether the action can be used for web, native, or both. Studio Pro will now help you by checking design time for whether you can use the action.
Push notifications update
The Push Notifications Connector enables you to notify your mobile app’s end-users of events, even when users are not actively using the app. We have released version 6.0.0 of the Push Notifications Connector, where we added a new and improved UI using Atlas 3 and the latest Data Widgets module. To simplify the initial set-up of the module, we added a first-time configuration wizard and updated the documentation. The updated documentation now includes a step-by-step guide for sending your first notification.
With this new release, we also improved the device registration to make sure that device information is always up to date, including the ‘Last used’ date.
Single Sign-On (SSO)
Here’s what we’ve been doing to enhance SSO for this release.
Mendix SSO update
Using the Mendix SSO module in your app gives your app’s end-users SSO with their Mendix account. We have released a slim 3.0.0 version of this module that no longer contains front-end parts, so the module is independent of Atlas UI and can be easily combined with, for example, the Administration module. You can find the SSO module here.
Bring-your-own-IDP in public beta
You can “bring your own IDP” to give your employees SSO access to the Mendix platform, instead of using a Mendix account with Mendix credentials. In tech-speak: you can set up an identity federation between Mendix and your own corporate Identity Provider (IDP). The BYOIDP feature makes use of the OpenID Connect (OIDC) protocol, which is the common standard and is supported by Azure AD or Okta.
Why BYOIDP SSO is noteworthy:
- Convenience for your platform users
Governance: Access to the Mendix platform is only possible for users that have an active account at your corporate IDP. - Security: Your identity provider can enforce your preferred authentication policy, which may include 2-factor authentication (2FA)
The feature is currently in beta; see the Control Center manual for considerations and instructions on how to activate it.
Task Queue improvements
In Mendix 9 we introduced the Task Queue, which allows you to asynchronously run microflows or Java actions in a distributed manner to build high-performing stateless apps, without having to think about synchronization and task management.
Recently we added the option to automatically retry your tasks so you can ensure the job gets done, even if you’re dealing with a flaky external system for example. With a configurable fixed or exponential delay you have the flexibility to configure retries for different microflows or Java calls.
Aside from this, we’ve improved a lot under the hood! By combining database polling across task queues we’ve decreased the load on your database, which also allowed us to lift the 40-threads limitation. Finally, the queue’s reaction times have improved and we’ve made sure your logs are no longer flooded by polling messages.
New widgets
Everyone’s favorite highlight in the release blog: What shiny new widgets are we delivering this month? And wow, you won’t be disappointed! There are plenty of treats in this release widget update.
Slider widget improvements
Sliders are always a fun way to lighten up your app’s design. They are perfect for allowing users to explore many different options at once while also bringing freshness and fun to your app.
We have always had sliders as part of our list of widgets and with this release, we gave them a fun update. First up, we updated the underlying technology migrating the widget over to our new pluggable widgets framework. Secondly, we added some fun new options: Orientation selection (horizontal or vertical) as well as the option to have an always visible tooltip.
This update applies to not just one widget but two: the slider and range slider. Download both today and start creating some fun UX!
Tooltip
Helping your users to understand unknown or unfamiliar elements should always be a key objective for any developer, designer, or engineer if they are looking to build a great UX. Providing contextual help, assisting users with form fields, explaining complex features, and highlighting new features, are just a few New Year’s UX resolutions you could aim for in 2022.
The New Tooltip is what you need to make resolutions like that happen. It features a simpler, more fresh configuration – just drop another widget, and presto! Flexible design control (define both the tooltip and arrow position) and universalizability (use it in combination with all our other widgets, no restrictions). The New Tooltip is the New Year’s resolution that can help take your app’s UX from good to great!
New Native Controls
There’s just something about having a whole fresh new year ahead of you – a whole year where anything is possible. And what better way to start than with a new radio button and checkbox? These two great additions to the native widget toolbox, in addition to the switch, really expand the selection type widget options available for native app development.
Find the radio buttons as part of the Native Mobile resources package and the checkbox as render option (alongside the switch option) as part of the checkbox in Studio Pro. Making selection choices has never been more satisfying – which one you choose is up to you.
App Switcher
Browser tab fatigue is real – you experience it and so do your app’s end users! But gone are the days when the users had to remember or bookmark the URL for all the Mendix apps they need on a daily basis. Now your end-users can easily and efficiently switch between multiple Mendix applications from the app’s main menu. How can you quickly deliver this experience? With the Mendix App Switcher widget!
The App Switcher widget is now available in the Marketplace. It is quick to configure and is aligned with Atlas. The widget makes use of the Mendix SSO module, our out-of-the-box user management system for Mendix Apps.
MxAssist Performance Bot
New Best Practice
With Mendix 9, we have introduced MxAssist Performance Bot, an intelligent virtual co-developer that assists you in improving the performance of your app by inspecting your app against Mendix development best practices in real-time while you are building your application. In the last three releases — 9.8, 9.9, and 9.10— we have added 4 new performance-related best practices as follows:
- MXP009 to detect excessive levels of inheritance
- MXP010 to detect duplicated access rules
- MXP011 to detect deeply nested list views
- MXP012 to detect repeatedly committed variables in a microflow
With these new updates, we hope the Performance Bot helps you to build high-performing apps. Next time you are modeling in Studio Pro 9, give it a try!
Studio
Update your app modules
We are excited to introduce the Mendix Version & Add-Ons setting screen in Mendix Studio for apps based on Mendix 9.9 and later.
Mendix Studio will now keep an eye on new Mendix version updates and new versions of Mendix add-on modules like the Administration module. When there are new updates available for your app, Studio will provide you with a gentle green notification indicator on the settings icon in the left bar.
The new Mendix Version & Add-ons settings screen provides you with a clear list of used Mendix add-ons and helps keep your app up-to-date with the latest Mendix features, security, and bug fixes. Staying up-to-date is now as easy as a simple click of a button – the Update button in this case.
Call existing microflows
Based on Studio developer requests, we have added the Call Microflow activity to Studio, too. This can come in handy if you want to reuse existing logic in your microflow. It allows you to call an existing microflow made by you or a team member using Studio Pro.
Data Hub
Catalog: Company default discoverability setting
Company admins can now set a company default discoverability setting for data sources registered in Data Hub Catalog. This setting controls whether resources published and registered to Data Hub Catalog are automatically discoverable or non-discoverable for the Mendix developers in your organization. Admins can toggle this setting through the Data Hub tab in Control Center.
Connectors: MQTT
MQTT is an OASIS standard messaging protocol for the Internet of Things (IoT). It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth.
With this connector you can publish, subscribe, and unsubscribe to topics on MQTT servers, allowing you to send and receive events to/from topics. We have worked to ensure that the configuration and development experience is improved and simplified.
Connectors: Receive Email
This connector allows you to receive emails through POP3 or IMAP. With the latest update we have improved and simplified the configuration flow, and now you can trigger a microflow with incoming emails. It’s a piece of cake to start a workflow off of an email response, for example.
Are you ready to start making?
Mendix 9.10 is waiting for you here, and you can now watch the Mendix 9.10 release video here! For more details, take a closer look at all the features, improvements, fixes, and more in the release notes.