DATE:
AUTHOR:
Product Team
Runtime

Runtime 5.0.1

DATE:
AUTHOR: Product Team

Stable is here

We are excited to announce that stable Runtime version 5.0.0 has been released.

In addition to migrating the entire code-base TypeScript, almost the entire framework has been refactored. V5 is offering improved stability, more modularity and better performance. We've replaced legacy technologies such as AngularJS and Ionic with our own more performant counterparts.

With this new framework, it opens the door for us to make much of the Runtime, including its APIs and components, completely pluggable. In the near future, developers will be able to add additional modules or even discard ones they don't need to shape their apps according to their needs, without lugging around any additional unused features.

See the Upgrading to V5 section near the bottom of the message to learn how to switch to V5.


5.0.1

Components

  • <object-tables/>

    • Fixed sticky headers and footers being rendered over other components, especially dialogs.

  • <dialog/>, <columns/>

    • Fixed issue where using <columns/> inside a <dialog/> would prevent the user from scrolling.

  • <multiple-choice-checklist/>

    • Fixed the required attribute being ignored during validation.

  • <toggle/>

    • Setting the required attribute to true on a <toggle/> component will require it to be set to true/enabled/on in order to pass validation.

  • <display-*/>, <capture-*/>

    • Fixed a minor memory leak in media components.

  • <menu/>

    • Fixed legacy <menu/> component's on-press not being executed.

  • <list/>

    • The <list/> component now has similar state management functionality as the <object-table/> component.

    • init-state and on-state-change attributes can now be used to set the initial state of the component and catch any updates.

    • The component.list().setState({ page, limit, search, selectedItem }) API can be used to change the state during the runtime.

    • See our latest documentation entry for <list/> to learn more.

API

  • journey.dialog.input()

    • Input dialogs created via the API will now correctly validate entered data according to the specified type (e.g. email or tel)

Engine

  • Optimized bundling of the Runtime which causes significant reduction in package size and memory footprint. This change should prevent many of the Out Of Memory errors experienced on iOS devices and older Android devices.


Upgrading to V5

Upgrading from V4 to V5 should be a minimally disruptive exercise.

From an app user's perspective the update will be downloaded and installed as with any Runtime update, with the consequence of a faster app experience and a slightly different UI for some components and views.

From the developer's perspective, upgrading to V5 requires a couple of minor changes and configurations.

These change are:

  1. Selecting the latest Runtime version. Executing the Runtime version action from the command pallet is the quickest way.

  2. (For TypeScript Apps) Upgrading the runtime-build package to 3.0.5 (See this doc for more details).

  3. Replacing deprecated attributes if they haven't already (Please see the blog post for a list of removed attributes).

  4. Deploy... That's it!

For a full outline of what you can expect from upgrading to V5, see our blog post

Questions/Feedback

We're always interested in hearing from you so please feel free to reach out to us on our Discord server for help, feedback, bug reports and the latest release announcements.

Powered by LaunchNotes