Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Fuse (fusetools.com)
163 points by spking on July 18, 2017 | hide | past | favorite | 93 comments


I really don't see the point.

If you don't need cross platform the best choice is native so you can leverage all the platform goodies.

If you do need cross platform and have the budget you will go with 2 native projects.

If you don't have enough budget for 2 native apps you have a few options.

Cordova is good enough for a lot of apps. Even Apple uses Webviews in its own apps. Also check the Missive mail client all built with web technologies:

https://medium.com/missive-app/our-dirty-little-secret-cross...

We are building a universal app that will work on iOS, Android, Mac, Windows, and Chrome OS with a single code base.

If you need better performance you can always use React Native, NativeScript, or Xamarin.

Why go with this Fuse thing?


Hi, I'm Remi from Fusetools. This interview with our CEO Anders does a good job of summarizing what we're about: https://www.forbes.com/sites/julianmitchell/2017/06/29/this-... (feel free to skip past the intro about why app development is A Thing :)

TL;DR We're primarily about being able to create cool stuff in less time (cross-platform is just a side-effect of that). A lot of what we build comes down to creating good workflows for going from idea to the final product, and to find the right level of abstraction so that you can work very quickly (staying focused on the real job rather than boilerplate and glue code) without giving up control and being sandboxed.


There's a "welcome ad" redirection on forbes website preventing me from reading any articles there. Maybe choose a better place to host content you want to link to.

Is it really crossplatform when according to your website it only supports the two majors compuphones makers ? Seems to me it's more marketing than anything else.


Just gotta wait 3 seconds, man. The welcome overlay on Forbes will let you click through if you wait 3 seconds.

So much hate in your comment. Why are you so quick to be dismissive and rude?

I for one think it's fair to claim they are cross platform if they work with 97.12% of the mobile market share [1].

1. https://www.netmarketshare.com/operating-system-market-share...


"preventing me from reading any articles there" sounds more like someone with no success regardless of waiting; I would be completely unsurprised if their waiting screen broke sometimes.

> So much hate in your comment. Why are you so quick to be dismissive and rude?

GP raised multiple apparently valid objections. This is neither hateful nor rude, and your efforts would be better spent on answering issues than name-calling.


Even if you do have the budge for two native apps it may be that you would rather not spend all that money twice, or you would rather have one app with twice the features of two native apps.

That said, all cross-platform solutions at the moment currently suck, except maybe Flutter, but that is still very alpha.


> it may be that you would rather not spend all that money twice

Maybe. My point is not about how you manage your budget, but how you make an app with the available budget for the app.

> or you would rather have one app with twice the features of two native apps

If you need those features then you can't really afford 2 native apps either.


Because it's fast and slick. I'm​ no expert but my impression is that Fuse gets you the slickest, smoothest apps barring coding them in Swift and Java.

Additionally Fuse has pretty amazing devtools for something not as hyped as, say, React Native.


> Create better native apps for iOS and Android with a new breed of development tools.

Does no one understand what native means anymore? UI wise, native means using the platforms widget toolkit which this does not seem to do. I'm not sure if it's even possible on android unless they are calling into the java stack for rendering the UI. Notice how in the MacOS screenshots they give a giant middle finger to the current OS theme? Doesn't look like it's using cocoa/carbon (whatever the current mac toolkit is) underneath.

I'm not sure if I'd even consider it native code on android, which would be ART/Dalvik byte code, for better or worse. I also think transpiling from c#/javascript to to c++ would rule it out as being considered native, but that's debatable.

Never trust a project that will lie to you in the elevator pitch.


I tried Fuse a while ago and even tough I didn't really got into it it was all very comfortable.

Lot of examples that look very promising really help to get into the main stuff quickly.

Tough, after learning React (preact actually) ; I'm wondering what it could help achieve more than going trough Native React. The last one is already well implemented and is "structured" like react, merging up some learning curve.

as Pier25 said earlier tough, trouble is when you need to implement "fancier" things. At which point you could have gotten into real native anyway.

It saves some time, but the pricing plans are ridiculous.

If you want to build a tool people want to use you need to build up something they'll like first.

I doubt anyone could be using it since more established tools are already been accepted by the community.

I will never pay you for a Visual Studio. I like coding with VIM or Subl, and I look after tools that I can use with a idiot text editor.

Hope you grow up from this :)

Cheers

edit: misread plans


Bent from Fuse here again: thanks for the feedback — we definitely know of a lot of people who use both RN and Fuse for different projects. They both have advantages and disadvantages, depending on your team makeup, experience and what type of project you're working on.

Your feedback around pricing is also duly noted.


I also think the pricing is unsustainable.

Even if you are making mobile apps all year round, what if tomorrow you don't want to use Fuse anymore? You'd need to keep on paying the subscription to fix bugs.

What if you are a freelancer who only makes mobile apps from time to time? Again you need to pay the whole enchilada to be able to fix little bugs from time to time.

A price per published app would make more sense IMO. Allow devs to use the complete experience for developing, make them pay when they need to compile and publish the app. If you are confident that your users will love your dev experience (which seems your stronger selling point) this would not feel like a trap.


Looks like Electron on steroids. The landing page is nice but it's like putting lipstick on a pig - it's still a pig in the end.

Also, I never understood why people hate native languages so much - why do you want to replace everything with Javascript? It's shit - it's a necessary evil in the browser but when the environment gives you something better (Swift, Java, etc) why not enjoy it?


Hi, Remi from Fusetools here. In Fuse JavaScript is merely used as a scripting language to write business logic & tie the app together, so it's quite different from web & mobile frameworks where it's responsible for "everything". Native integrations are done in Swift / ObjC / Java, and all things visual & animation is handled in declarative markup. Working with business logic in JS also allows us to do instant preview updates when you change your code, which is one of the few things I've envied web-developers. :) And of course, a good argument for using JS rather than <some other script language> for this is the volume of developers (and to some extent non-developers) who can use it, as well as the amount of available resources & information out there.


> Also, I never understood why people hate native languages so much - why do you want to replace everything with Javascript?

Because people don't have the time, money or expertise to write multiple completely separate code bases for cross platform apps and having to keep these code bases in sync will dramatically slow down your ability to extend and adapt your product...?


You don't need completely separate code bases, just separate UI implementations.

When did we decide that developer time was more precious than user experience anyway? Every time I see an electron app now I just assume that the devs don't care about their users, just how much easier it is for them to push bloated crap out the door.


> When did we decide that developer time was more precious than user experience anyway?

I think people really over exaggerate native UI experiences... maybe a native experience is 10 out of 10 good and a non-native experience is something like 7 out of 10 good but it's not as bad as 1 out of 10 good. I'm sure there's lots of occasions where users will be happy with a non-native app rather than not having one at all because the developer didn't have enough resources for multiple native apps.

Don't we promote MVPs around here as well?

I use the Spotify, Whatsapp and Slack apps frequently for example and don't think they'd be vastly improved going native.


Spotify would be vastly improved going native. That thing has ridiculous lag when loading the app, trying to play a song. I have an older iPhone, so it's much more noticeable, but then when you use the built-in music app and see how fast it is, it's inexcusable. I've started buying music again instead of using Spotify because of it.

It's not just my ancient iPhone though - the Mac Spotify client regularly sticks for at least 30 seconds on the Browse screen, or if I try to search for an item. I could literally type my search, go make a coffee, and by the time I return it will almost be ready to display the result.

As for Slack, I deleted it because it was so slow and a resource hog. Pushover is faster and less resource intensive for my purposes.

>Don't we promote MVPs around here as well?

That's to get it out the door and evaluate whether it has business potential. That's not meant to be your final product. If your product is just an MVP you don't have much of a competitive moat - you also want it to be difficult for competitors to match what you have.


> the Mac Spotify client regularly sticks for at least 30 seconds on the Browse screen, or if I try to search for an item.

Works great for me. I could understand not liking it if it did that on my machine though.


I wonder if it's struggling with the size of some of my playlists. I've got a 70 hour coding music playlist, that's the only thing I can think would slow it down during startup. My machine has 16GB RAM.

Helpful to know I might be an isolated case, though.


Hmm, 70H and downloaded? Because I have a 63H playlist in my 'Playlists' that I didn't make but have, and I have no lag like you describe on my Windows 10 machine.


The 70hrs isn't downloaded on my Mac desktop, just streaming. I've timed Spotify ("native" Mac app) at 25 seconds from launch to UI - but even at that point, the Browse UI still doesn't appear for a long time.

Guess I'm just unlucky on this one. Thanks for the additional info though.


> and a non-native experience is something like 7 out of 10 good

I'd agree. Maybe even as high as 9 out of 10, depending on the framework used and the adherence to platform norms. User experience is not just the UI though, using a GB of RAM when you could be using 10MB is also a poor user experience, particularly when you run out of memory. Most people won't be knowledgeable to blame the app for this poor experience though, they'll blame MS or think there's something wrong with their computer.

> Don't we promote MVPs around here as well?

An MVP can be single platform, multi platform is clearly not the minimum.

>I use the Spotify, Whatsapp and Slack apps frequently for example and don't think they'd be vastly improved going native.

On what hardware? A good chunck of users are on less than 4GB of RAM still (http://store.steampowered.com/hwsurvey). Even if you've got 16GB, what happens when everything in the computer starts to be a resource hungry as electron apps? These are companies with a tonne of money to spend, there is no reason they can't stop being so wasteful with their users resources.

And that's on desktop. Go get a low end android phone and see how many apps you can even install. Very quickly you have to start making decisions like "should I uninstall facebook or audible".


To be honest, I don't even use many desktop apps at all anymore besides a music player, terminal, IDE and a browser. Everything else has slowly transitioned to the web. I'd wager non-technical users are fine with this is well and really don't have strong feeling about what native apps are.


> and a non-native experience is something like 7 out of 10 good but it's not as bad as 1 out of 10 good

The problem is that when a native app falls short, it stays with the conventions of the platform. When a non-native app falls short, it'll stay with the convention of the framework and likely be confusing or broke for the user.

As an example Adobe Flash was really popular for 10+ years. On all platforms it broke copy/paste, swallowed keystrokes, and ate battery, cpu, and memory. Those things could technically be addressed, but rarely were. Most of the time the website was for a restaurant where I was only interested in the menu, location, or hours.

I don't use any of the apps you cited regularly, but I do often hear complaints about them using excessive battery and memory usage for apps that just do chat and music playback.

I also don't see why it matters if your MVP is built on a cross-platform abstraction? In my experience, I often find details where I have to fight the abstraction to access something exposed in the native API.


> I also don't see why it matters if your MVP is built on a cross-platform abstraction

To reach a larger audience with less dev time/fewer devs?


Reaching a larger audience isn't a minimum viable product. Especially, like I said, if you're fighting with the abstraction to achieve your minimum viable feature set.

Sure, use a library if it papers over deficiencies or adds features your app needs to be viable. That's always a technical debt : developer time call. But, especially with the amount of iteration on the native mobile platforms, I haven't heard of that very often.


As a user, if good native is 10/10 non-native is at best 5/10. Usually though a native app isn't good so it's only 6-7/10. Non-native though are usually in the 2-4 range...

That Spotify, Whatsapp and Slack don't have native apps is a disgrace beyond comprehension. Those are probably the easiest type of apps anyone can come up with.


> That Spotify, Whatsapp and Slack don't have native apps a disgrace beyond comprehension

Pretty easy to comprehend why you wouldn't burn more developer resources than necessary actually.

Try to set aside your own dev bias towards 'non-native' and consider what the average users of those apps think. They don't care the apps are non-native, they don't even know what that means.


> Pretty easy to comprehend why you wouldn't burn more developer resources than necessary actually.

No, it is incredibly short sighted and in the long run Spotify in particular must have spent a ridiculous amount of effort ironing out bugs and issues (this often takes many many months) that are a consequence of unnecessary cross-platform efforts.

The average user don't care about native and non-native. But they do absolutely care about performance, look and feel.


Why is it short-sighted?

It's easier to transition from the (presumably) single code-base they have now to build specialised native apps later, if there's some expected pay-off, no?

But if they'd had separate code-bases all this time the maintenance effort to date would have been an order of magnitude higher. And consolidating to a single codebase from that would be a nightmare (should some new cross-platform toolkit mature).

> The average user don't care about native and non-native. But they do absolutely care about performance, look and feel.

And I've never heard anyone in my office (which has lots of non-devs) complain about Spotify's UI when they're changing the office music. Search for a song or playlist, play ... works fine as far as they're concerned.

Show me the evidence average users think there's a problem.


> consider what the average users of those apps think. They don't care the apps are non-native, they don't even know what that means.

Just because the average user is unaware the shitty UX, performance or battery-draining is your app's fault, doesn't make it a good or professional choice. It means you can get away with it, because the user is unaware there was a choice, who's making it, and based on what criteria.


Cross platform apps don't need to have separate codebases. Cross platform libraries and toolkits do exist.


Existing is not sufficient.

Convince us one of those tools is any good, because it doesn't seem like it, from the traction they've had so far.


I want the same thing you want, but I recognize that such a thing is very, very hard to do.


What toolkit is going to give you an app that feels completely native?


> it's still a pig in the end.

Why would you say that? I'm not convinced you even looked at it longer than to arrive at the conclusion that it has some JavaScript in it so it must be like Electron.

The whole point of Fuse is that all the heavy loading is not JavaScript. Basically your business logic is JS, but the UI is declarative and both the UI and the animations are all hardware accelerated, compiled down to machine code. This makes it very much not like Electron, and more in spirit like, say, PyQt or something like that.

It's a bit more like React Native, in that the UI controls are native. But unlike React Native your UI composition (the "components" in React lingo) plus the animations are compiled down to machine code too, and always hardware accelerated.

And to answer your question - people don't hate native languages, they hate making the same app twice.


That's my problem, the business logic is in JS. I hate JS to begin with but I would have tolerated it if the only place it's used is for UI - but come on there are much better languages to write business logic in.



"iOS and Android from day one, with one shared codebase in UX Markup and JavaScript. You can also access all native features when needed by adding Objective-C, Swift or Java code directly to your project." (from their official site)

I guess their actual compiler for "UX Markup" could be written in .NET but Javascript is definitely and unfortunately invited.


Bent from Fuse here — The UX Markup compiler is actually written in Uno, a lightweight C# dialect that compiles to native C++ for iOS and Android. JavaScript is just used for business logic and runs on a separate thread from the UI engine.


Will Uno ever be open sourced?


Markup looks a lot like XAML


>Why do you want to replace everything with Javascript? Because a huge number of devs already know it, so you can have your web devs work on your mobile application.

That said, my company tried Fuse out around a year ago and went with Ionic instead. Partially because adapting Angular to Fuse was a lot of effort, and partially because at that time Fuse was not nearly release-ready.


there was a team at my work evaluating Fuse, some very vocal fans, but they ended up going with React Native

has anybody actually used Fuse for a real product? we could not find anyone to talk with about it and that was a deal breaker


There is a bunch of people on the community slack who are using Fuse to make things. Generally, any question you may have will be answered in there. The dev team sit in there too, so it's first hand help


@bent or whoever from fuse team ; THIS is a great thing. Having a active slack channel with people that work on and with the tool is was a great deal for me learning other stuff. I will join you guys here :D


Why choose this over native apps?


In general, it's a matter of rapid prototyping for POCs or MVPs that don't need much. As an example, I'm currently working on a system that needs a minimal iPhone/Android app. Just a login view and a couple buttons. I'm the only engineer working on this, and I have way more important stuff to do than manage two completely different codebases right now.

So for my MVP, I'm planning to use React Native to build the minimal interface, and then (once funding clears and we can figure out the hiring situation) I'll get one or two engineers to work on building a native app for each system.


> and I have way more important stuff to do than manage two completely different codebases right now.

But why are they completely different? Surely the UI parts are different, but the meat of the work done internally is exposed by a common API?


iOS and Android projects look nothing alike. Sure, on the grand scheme of things, comparing the complexity of the backend to an application that is basically two views, the application with two views is a tiny percentage of the whole thing. But duplicating that percentage right now doesn't buy me anything.


To help fusetools make money.


How is this different to React Native?


Hi, Remi from Fuse here. This blog post (by yours truly) is over a year old now so some details are bound to have changed, but from a tech-philosophy standpoint I think it's still valid: https://medium.com/fuseblog/how-fuse-differs-from-react-nati...


My understanding is that it is designed primarily to facilitate the interaction between designers and devs and shorten cycle times.


Bent from Fuse here — that's indeed our primary design goal. We believe designers shouldn't necessarily learn to code, and coders shouldn't be fluent in design, but getting each role to come close together and to give them a common language and similar semantics, as well as a platform that enables quick iterations, is important to us.

Our CEO (and primary engine coder) was interviewed by Forbes earlier this year, and in the interview he touches on A LOT of these points: https://www.forbes.com/sites/julianmitchell/2017/06/29/this-...

Quick quote:

"Our (former) jobs as programmers at ARM gave us a front-row view of all the capabilities of modern mobile devices, and it became apparent that most developers underutilized a lot of these devices. As a consequence, much of the raw power didn't benefit the end users who bought these pocket-sized supercomputers. Secondly, the way apps are developed hasn't changed much in the last 20-30 years. New tools and computer languages have come and gone, but the process remains largely the same, with developers and designers operating in separate worlds, using a different set of tools.

This is partly because collaboration across these boundaries requires a huge amount of additional work just to translate and re-implement the vision of stakeholders and designers into production code. In turn, this resulted in unsustainable processes of slow iterations for testing and validating ideas. Consequently, you end up with products and user experiences that are less thought-through or polished, even though you've spent an unacceptable amount of time, resources and risk to produce them.

These two takeaways lead us to realize that what was needed wasn’t another micro-optimization tool. We had to take a step back and consider the entire development process from through the lens of product owners and designers, as well as developers. Fuse is the byproduct of that process."


So it's like Xamarin with less performs??


Bent from Fuse here: I wouldn't say so. Xamarin strikes us as something meant for people who want to code C# and work within the .NET ecosystem, while Fuse takes a completely different approach (to both how you develop your apps, and what you spend your time on while doing it). The choice of JS for business logic was also made to enable more people to find an easier path into app development. Our UX Markup (that compiles to native C++ code) is one thing that makes Fuse differ quite a lot from many other frameworks.


$125/month bye Looking for alternative React Native


I totally get that — thankfully Fuse itself is free (it has the same real-time desktop preview engine for both Windows and macOS, uses the same descriptive UX Markup language, and lets you deploy without cost to both iOS and Android like you're used to).

Fuse Studio is meant for people who want or need extra tooling on top, and is indeed our premium offering (the Fuse Professional plan doesn't just include Fuse Studio, but also premium components, Xcode and Android Studio library export support, multiple viewports and more). It's definitely not just for teams either, it's just _more suited_ if you work together with others.

There's a 30-day free trial of Fuse Studio too, so check it out and see if you'll do more than well enough with regular Fuse.


Javascript is already cross platform


That's... not what Fuse solves.


then what does fuse solve?


You run UI components written in C++ instead of embedding an entire browser on a mobile phone.


You didn't read the link, did you? It's a cross-platform app development tool. The fact that it allows devs to use JavaScript is simply due to interpreters (afaik).


Scrolled down to the first code sample and had terrifying flashbacks to ColdFusion.


This looks like Electron for mobile. If so; kill it with fire.


It fills the same space as Electron, but does not function like Electron. The majority of code is written with UX, which is then compiled to Native components. It is also possible to have trivial FFI to native code with objc and Java. JavaScript is only used for _some_ business logic.


Initially the title make me think this was about libfuse / Filesystem in Userspace


Indeed, please could the title be named properly to reflect the site?


I clicked wondering what happened with fuse to make HN front page, turns out it's not fuse but some useless (to me) dev crap for the two largest compuphones makers.


Since the submission has no legit title either, I'll just respond with:

https://en.wikipedia.org/wiki/Filesystem_in_Userspace


I don't really get the trend of name collisions. First React, now Fuse... what's next, a Linux brand of detergent?




What's not to get? Pretty much all words are used as names already and roughly in proportion to how simple they are.

This same comment chain can waste space in pretty much any thread on any product. What's the point in having it in every thread?


If the name is already taken, you can at least go for some qualification (capitlization doesn't count).

For example, "Fuse Tools" (or "Fuse Apps"). As a bonus, the domain name is already fusetools.com.


Yeah, except "Fuse Tools" still sounds like tools that you'd use for the fuse filesystem. I'm pretty sure there's at least one fuse-util or fuse-tools package for the major linux distros out there that has nothing to do with this Cordova equivalent.


They don't care, they win in any case. Their user base don't know about fuse, and:

- if they are not successful it will not matter;

- if they are successful they will out google the original FUSE and win.

So their strategy will work for them whatever happens.

It's now just a question of moral stand.


They could have pulled up a thesaurus and found a better name.





[flagged]


Please keep programming flamewars off HN. Other flamewars too.

We detached this subthread from https://news.ycombinator.com/item?id=14801059 and marked it off-topic.


You can write Javascript without knowing how to program?


You don't know how much I did with the magic of copy-and-paste


So, how many multiplatform releases do you have under your belt romanovcode?


I did some mobile application releases for some big companies which products you are using, actually.


[flagged]


Would you please not do this here?


There is very little JS in Fuse -- only some business logic. It's entirely possible to only have your business logic written in Uno, which compiles down to native code on each platform. All UI code is written in UX, which already does this.


$125 / month bye


The free version is _free_. The only thing you would have to pay for is the "studio", aka the dev tools.


Everything about this is stupid.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: