New in version 0.9.0

Released one year ago

Please remember to uno clean your projects after upgrading Fuse.

Introducing Fuse.Video

Added support for video playback on mobile export targets. Video can be played from file or a network stream. Video format support is dependent on the specific device and OS you are exporting for:

Introducing media playback triggers

We realized that for the video element to be useful we needed some new triggers, so in this release we are also introducing WhilePaused, WhilePlaying and WhileCompleted. These triggers are designed to be usable with any media playback element, which will be expanded in future revisions.

Introducing push notifications API

We now support push notifications on iOS and Android. Notifications can be recieved from GCM (for Android) and APNs (for iOS).

Introducing GeoLocation API

Never get lost again! A cross platform geolocation API is now available in the FuseJS/GeoLocation JavaScript module. It's also really easy to use:

var GeoLocation = require('FuseJS/GeoLocation');

var locationOrNull = GeoLocation.location;
var locationPromise = GeoLocation.getLocation();

GeoLocation.onChanged = function(location) { ... };
Extended WebView API
  • Added WhileLoading, PageBeginLoading and PageLoaded triggers
  • Added GoBack, GoForward and Reload triggers which take a WebView argument to point at a specific view
  • Added LoadURL trigger action for telling a webview to go to a certain url with WebView and Url args
  • Added EvaluateJS trigger action for executing arbitrary JavaScript within a webview context and optionally passing the stringified JSON result of the evaluated JavaScript to a FuseJS callback
  • Removed <WebView File="someFile"/> in favor of using file:// protocol with <WebView Url="file://someFile"/>

Read more in the handbook.

Preview improvements
  • Improved stability of the simulator host, i.e. less "preview stopped responding to my changes"-issues
  • That mysterious devices.json-file is now optional. When it's not present the default device presets are loaded
  • Changes to devices.json are now automatically reflected in preview (What do you think we are? Ancient technology?)
  • Just to show off the above feature we also added a "Customize..." option in the bottom of the Device menu, opening devices.json in your favourite text editor (as long as your favourite text editor is the default for .json files)
  • Not to forget: Opening the monitor just got easier. This release features a brand new "Open monitor" option, inside of preview. Never again use the command line or other cumbersome launchers to do as we say when we tell you to open the monitor, just choose Fuse -> Open monitor in preview, or enjoy the shortcuts Ctrl+M and CMD+M, for improved productivity.
  • We also added a brand new "Project" menu, providing shortcuts to the included UX-files, the project file, and the containing project folder
  • Are other windows constantly trying to cover your preview window? Did you leave your extra monitor at home? Try our new "Keep on top" feature in the Fuse menu today!
TextInput primary keyboard action

You can now react to the primary keyboard action on a TextInput. Use the ActionTriggered property to specify a callback or use TextInputActionTriggered trigger.

<TextInput ActionStyle="Search" ActionTriggered="{goSearch}">

The ActionStyle property selects what the standard action button on the keyboard displays.

TextInput completeness and polish

Multiline text input is now supported on iOS. If we could think of anything to add here we would now have written multiple lines about this fix.

Android NativeTheme improvements
  • A bug where changing the value of a Text element did not cause the text to resize has been fixed.
  • Transforms in Fuse have top/left as their default origin, but there was a bug causing Android views to have center as their default transform origin. We like consistency in our APIs so this release makes the misbehaving views conform to the top/left default transform origin.
  • To avoid potential confusion with effects the ShadowBoxSizing has been renamed LayoutMasterBoxSizing. In particular, the ShadowElement property is not LayoutMaster.
  • ButtonText is no longer in the global namespace (that was an error), it is now Fuse.BasicTheme.ButtonText as it is theme specific. If you used ButtonText somewhere you need to replace that with Fuse.BasicTheme.ButtonText
  • The UpdateManagerclass now has a PostAction, which collects actions to be run prior to primary update. The dispatcher now uses this mechanism to avoid mixing the actions with the deferred actions.