Various comments on OS X with version 0.9.2 (build 5183)

Looked over the videos and documentation yesterday, and they were good and promising. The “getting started”-threshold was lower than for any other technology I’ve ever tried. You could just start to play with the examples and the instant preview works like magic. I particularly liked the Tetris-like logic of the stack panels.

Here are some things I ran into:

BUGS

  1. “Open in Sublime Text” doesn’t work even though the setup wizard was completed successfully.

  2. I get no error messages (“Auto reload results”) in Sublime Text when saving/building. A friend with an earlier build gets them on his machine.

ANNOYANCES/SUGGESTIONS

  1. I have to answer “Allow” every time to allow incoming network connections every single time I start Fuse. It should be possible to give an “Always allow”.

  2. There are quite a few Fuse apps that clutter up my Cmd+Tab life. Dashboard, Preview, Monitor, Inspector… Look at how you can integrate all these into a single app.

  3. Make it possible to download and test examples from the Dashboard with just two clicks.

  4. Make it possible run preview on a desired device with a single click. The secondary “Local/iOS/Android” step is as intolerable as the “Normal/Interlaced” dialog when saving PNGs in Photoshop.

  5. There is really no need for a step-by-step wizard to configure Sublime Text. A single click, relevant feedback and possibly a progress meter should suffice.

  6. Why do margins start on left and not on top (like HTML)? Is this some sort of GL convention?

  7. Markup in camelCase (or even lowercase) would have been largely preferred to the gruesome TitleCase.

  8. The markup borders on aspiring to be a programming language at times (while, if, etc.) which if the trend continues could cause bloat and confuse the target group (artists/UX). It would seem better to use it for describing visuals and leave the logic to programming (JavaScript).

FUTURE CONCERNS:

  1. How bug-ridden is Fuse when you actually start using it for something? (The visual engine seems powerful, smooth and easy to use, and I do hope it’s like that under the hood too - and stays that way.)

  2. Support for external APIs (in order of demand). A reliable “next day” release of builds that resolve any severe issues that cause apps to break.

  3. How does it play with native components (UI elements, apps like Maps, etc.)? I’ve not tested this yet, and I hope they will work smoothly as they are supported.

If you want to be really honest to yourselves and the world, put a feature table on the web page which clearly state the current weaknesses. Or to put it another way: “What shortcomings and considerations will prompt a retreat to native development?” It’s better to know sooner than later and there is nothing worse than a developer with a broken heart.

Hi Olav and thanks a lot for the thorough feedback - we love it! :slight_smile:

The bugs have been noted and will be investigated+fixed promptly. The feature requests are also now on record, many good ones (including a few already under development, so validation feels good :slight_smile:

As there are a lot of comments here other Fusers will probably want to chime in as well, but here are my responses to some:

[…] put a feature table on the web page which clearly state the current weaknesses.

This is indeed something we really need, and we have already started working on this. Once published it will indeed make it much easier to assess up front whether Fuse is ready for your particular project.

Why do margins start on left and not on top (like HTML)? Is this some sort of GL convention?

It is a matter of taste and mostly a C#/XAML heritage, and the fact that in the underlying Uno tech all vectors are expressed X, Y, Z …, where in the case of Margin, X is Left and Y is Top.

How bug-ridden is Fuse when you actually start using it for something?

We are still at the (0.x) beta stage, so there will be bugs, but we are killing a whole bunch of them each day, in order of severity. We will call it version 1.0 the level of known bugs is low enough for Fuse to be more or less completely reliable in production.

If you start using it in a production app and run into blockers, we are offering intensive support through our forum and active Slack community to get your app out on app stores, even during beta :slight_smile: For locals like yourself, we have no problem setting aside some time for you to meet with one of our devs in the office even.

Support for external APIs (in order of demand).

A near future version of Fuse (0.10) will have a completely new and shiny mechanism for easily adding native code (.java, .mm or .cpp) to your Fuse project, and interop with any native external APIs and SDKs will be straight forward.

In the current version (0.9.x) external APIs must be accessed using native bindings in Uno or using UXL (Here Be Dragons!)

How does it play with native components (UI elements, apps like Maps, etc.)? I’ve not tested this yet, and I hope they will work smoothly as they are supported.

Maps are still not fully supported, yet works with limited features in iOS (feature dashboard will show this). WebView is supported, and new features making it more useful is rolling out soon. Once a few core mechanisms for interoping with native UI matures, we will quickly add the full range of native UI components and their features.

Fuse has two UI subsystems, one for GL based UI (completely portable) and one for Native UI controls. If you are using GL, you can still mix native UI components inside it using <NativeViewHost>. More examples on this is in the pipeline.