Fuse (beta) release 0.8.1

0.8.1

This is mainly a bugfix release, please see the release notes for 0.8.0 below for more details about the 0.8 release.

In this release we have fixed the bug where you didn’t get selection cues, and the inspector didn’t work. We have also introduced new buttons on the dashboard to open the monitor and the inspector.

0.8.0

Fuse

New features

  • Fuse Inspector, allowing you to tweak values without refreshing the whole app
  • Fuse Monitor, a common place to find all run-time output from preview
  • On OSX we have also introduced an experimental Sketch importer for Fuse

Fixes and improvements

  • Better defaults for OSX dashboard project creation
  • “Open project” button in dashboard
  • Fuse update notifications

Fuselibs

X,Y, Offset

  • Element gains an X, and Y property which replace the old Offset property. If X is specified it sets the default horizontal alignment to Left and then offsets from that alignment. If Y is specified it sets the default vertical alignment to Left and then offsets from that alignment.
  • The Offset property still offets but no longer modifies the alignment, thus stretching can still be used. To migrate either replace Offset with X and Y or set Alignment="TopLeft".

Grid Columns and Rows

  • Renamed properties on Grid and GridLayout: ColumnData -> Columns and RowData -> Rows. The old Rows and Columns (which are only used in Uno code) are now called RowList and ColumnList respectively.

To migrate, change:

<Grid RowData="1,2" ColumnData="100px,auto">

To:

<Grid Rows="1,2" Columns="100px,auto">

Native

  • An <App> without a theme tag implied a Basic theme previous, but now it implies an “empty” theme. Add Theme="Basic" to your App, and include the Fuse.BasicTheme package in your project to get the basic theme.
  • Fuse.Elements.ImageElement removed. Use the high-level Image to wrap native/graphics images.
  • The hit test for Image is now strictly within the visible image, not the empty area in the control, in cases where the image does not fill the control entirely
  • Fuse.Shapes is no longer part of the standard namespaces. Circle and Rectangle are now controls in Fuse.Controls.
  • WhileSliding has been replaced with the more generic WhileInteracting
  • ScrollViewer renamed ScrollView.
  • ScrollView.Behavior removed. You can use the KeepFocusInView and UserScroll properties directly. If you need a scroll view that doesn’t have standard behaviour you’ll have to create a style that doesn’t add that behavior.
  • IScrollable has been removed. A Scroller must be rooted inside a ScrollView.
  • BasicTheme Button no longer sets the style of all text contained within, only the ButtonText has a style now. If you were using Text inside a button you can use ButtonText instead.
  • Many of the basic controls are now derived from Panel, making it even more important you never style panel. If you need a custom panel type then create one with <Panel ux:Class="MyPanel"/> and apply a style to that panel.
  • Node.LayoutRole made a style property of Layout since that is the only node in which it applies (used by Layout)
  • Fuse.LayoutRole moved to Fuse.Layouts.LayoutRole
  • Control.VisualTree has been removed. Several controls, like ScrollView derive now from ContentControl which exposes Content. This likely doesn’t require any code change, but if you were using VisualTree in a custom control, you must now use ContentControl and the Content property.
  • Control.Overlays has been removed. You can use Layer="Overlay" on a panel instead now (from which most controls are derived). A few controls, like ScrollView no longer have multiple children, and thus must be placed inside a Panel if you need an overlay or background.
  • Control.OnHitTestControlChildren has been removed, just use OnHitTestChildren

BottomBarBackground and StatusBarBackground renamed

BottomBarBackground and StatusBarBackground are now remove in favour of the more consistantly named BottomFrameBackground and TopFrameBackground. These have been available in uno for a while so if you are already using them then you dont have to worry.

API for both are exactly the same as before.

HitTest

  • If you override a HitTest... function you must override the matching HitTest...Bounds function and produce an appropriate bounds, otherwise hit test clipping will prevent the node from getting events.
  • IViewport.PixelToWorldRay is replaced with IViewport.PointToWorldRay since point space is more common. Divide by PointDensity to calculate in pixel space (not valid in all situations).
  • Hit test clipping is now based on HitTestBounds and not the RenderBounds of controls. If you have a custom control that doesn’t seem to get messages add a custom HitTestLocalBounds definition. Standard controls should all respond correctly.

FuseJS

  • Added NativEvent to be able to call events from Uno.
  • Storage: Added deleteSync, writeSync and readSync.
  • Fetch and FetchJson is deprecated, use the browser based fetch (lowercase f) API instead.
  • Added optional parameter to NativeEvent to decide if events should be queued before the handler is set
  • Added localStorage web api shim
  • Added setInterval

It doesn’t work ;( OSX 10.11.1 Beta (15B22c)

It’s all that can see. After i start a new project or open downloaded example - nothing happens.

Hey there, can you tell us a little more about what fails? Any error message? When does it fail (during installation or after?)

Also please give the output of mono --version and which mono in the terminal.

El Capitan 10.11, doesn’t work too. Trying to open a project, choosing a file and nothing happens. Trying to start a new one and after clicking OK in Project template window - nothing happens. Also Inspector, Monitor buttons doesn’t react. Sublime text setup is ok. Loading wheel always spinning…

I’m having the same issue, I think. I’m on El Capitan and seeing the same thing. I’ve only just got it, so it’s a clean install.

Trying to create a new project on the commandline appears to hang on Connected to fuse daemon and trying to run fuse preview on the project which is created does the following:

~/Work/fuse/myapp  fuse preview
Connected to fuse daemon
fuse: Failed to connect to daemon.

I don’t know if it’s relevant, but the tutorial says the .ux file created should contain some content, but it appears to to be just an <App> tag and its corresponding closing tag.

I’ll paste my output below:

~/Work/fuse/MyApp  mono --version
Mono JIT compiler version 4.2.1 (explicit/804ddbc Mon Sep 28 18:40:29 EDT 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       altstack
    Notification:  kqueue
    Architecture:  x86
    Disabled:      none
    Misc:          softdebug
    LLVM:          yes(3.6.0svn-mono-(detached/a173357)
    GC:            sgen

~/Work/fuse/MyApp  which mono
/usr/local/bin/mono

Not sure if this is the same issue, but running the android export fails with the following (after having done the fuse install android step):

✘  ~/Work/fuse/MyApp  fuse build --target=android --run
Connected to fuse daemon
fuse: unhandled exception: Daemon did not respond to handshake (Timeout = 00:00:05)
   at Outracks.OptionalNullCoalescing.OrThrow[T] (Optional`1 self, System.Exception e) in <filename unknown>:line 0
   at Outracks.Fuse.Protocol.MessagingServiceSpawner.ConnectOrSpawn (IMessagingServiceSpawner spawner, System.String identifier, IEnumerable`1 events, TimeSpan timeout, Optional`1 eventFilter) in <filename unknown>:line 0
   at Outracks.Fuse.BuildCliCommand.Run (System.String[] args) in <filename unknown>:line 0
   at Outracks.CLI.CliProgram+<Main>c__AnonStorey0.<>m__0 (System.String arg) in <filename unknown>:line 0
   at Outracks.Optional`1[T].Do (System.Action`1 some, System.Action none) in <filename unknown>:line 0
   at Outracks.CLI.CliProgram.Main (System.String[] args) in <filename unknown>:line 0
Unhandled exception: Daemon did not respond to handshake (Timeout = 00:00:05)
[ERROR] FATAL UNHANDLED EXCEPTION: Outracks.Fuse.Protocol.HelloTimeoutException: Daemon did not respond to handshake (Timeout = 00:00:05)
   at Outracks.OptionalNullCoalescing.OrThrow[T] (Optional`1 self, System.Exception e) in <filename unknown>:line 0
   at Outracks.Fuse.Protocol.MessagingServiceSpawner.ConnectOrSpawn (IMessagingServiceSpawner spawner, System.String identifier, IEnumerable`1 events, TimeSpan timeout, Optional`1 eventFilter) in <filename unknown>:line 0
   at Outracks.Fuse.BuildCliCommand.Run (System.String[] args) in <filename unknown>:line 0
   at Outracks.CLI.CliProgram+<Main>c__AnonStorey0.<>m__0 (System.String arg) in <filename unknown>:line 0
   at Outracks.Optional`1[T].Do (System.Action`1 some, System.Action none) in <filename unknown>:line 0
   at Outracks.CLI.CliProgram.Main (System.String[] args) in <filename unknown>:line 0

It looks like the Preview version of Mono for El Capitan doesn’t work. I’ve downgraded to the latest stable release and it’s running now.

me@dan-gilbert.uk:

Hey, thank you for the error report. Mono 4.2.x is considered to be a bad mono release. It is even labeled as an alpha release (that is not so clear from their download page).

You should instead install the normal MDK, Mono 4.0.4: http://download.mono-project.com/archive/4.0.4/macos-10-x86/MonoFramework-MDK-4.0.4.4.macos10.xamarin.x86.pkg

This mono version should also work on Mac OS X - El Capitan, despite what the mono download page says.

We are sorry about being so unclear about which mono version we support.

Nikita and g.adagamov@gmail.com:

Hey, thank you for reporting!

Hopefully will the above post fix your problems aswell, based on the information you gave us.

Hi!

This release contained a bug that caused preview build problems on iOS and Android.

This has now been fixed, downloading the latest release should get rid of that issue.