Unide 0.3.1 Released
Tags: java, javascript, design, webdev
Published: 2020-01-06 15:58:51

Two of the most interesting features for 0.3.1 are exporter for the new Vaadin TypeScript target and a releasing as VSCode extension.

0.3.0 was quickly followed by 0.3.1 due to a small error I didn't notice before releasing.

Note that this is a pre-alpha release and is only for the brave and patient to try out.

How to get started
-----------------
Unide can be used online, or one can export a project and use Unide to edit it  locally. Navigate to [Unide](https://mjvesa.github.io/unide/) and export a project from there. Vaadin Java is currently best supported and is the default target. Unzip the exported project somewhere. From here you have two choices: either install Unide in VSCode trough the marketplace, or install unide with `npm install -g unide`. Unide can the be invoked in a terminal at the root of your exported project.

Vaadin TypeScript
-----------------
The new Vaadin TypeScript target is an upcoming feature in Vaadin that allows writing views purely at the frontend. 0.3.1 contains support for it in the form of an exporter. Better support for local editing will come later.


Visual Studio Code
------------------
VSCode has progressed into a useful platform for writing Java applications. Unide can be installed into VSCode as an extension and views can be produced in pure Java on the server side. As with the Electron version, saving a view will export the view as Java. 

For each such Java file there is an auxilliary file that has access to the design and can be used to attach listeners and other logic to the design. The Aux file will not be overwritten when the design is saved.

Other improvements and fixes
----------------------------
Brute has been integrated into Sketch Mode. Brute is a tiny library that finds the corresponding flexbox CSS properties when given a configuration of absolutely positioned rectangles. That means a `div` can be used where `vaadin-vertical-layout` and `vaadin-horizontal-laout` were previously necessary.

DnD has had some issues with the drop marker being stuck when the DnD operation did not end in a drop. For example, if the drop happens outside the paper area that contains the edited view, the red marker is stuck and no DnD in the area it covers is possible. That has been fixed in this version.

Nested components did not work properly. The insertion of the tree has  been fixed and a nested Shadow DOM is created for them so that styles should work properly as well.


What's coming in 0.4.0
----------------------
The aim of 0.4.0 is to improve the usability of Unide for visual design during development. To facilitate that, I will start working on an example project for the Java target at first, continuing to cover other targets over time.

Also, each minor version from now on will provide improvements for some particular target. For 0.4.0 there are multiple: Java, Vaadin TypeScript, LitElement and Vanilla JS. After that I will pick frameworks in descending order by popularity in the State of JS 2019 survey. That means 0.5.0 will most likely contain proper support for React: exporting React projects and working on existing projects locally as is possible with the Java target now.