Live data from Hacker News

Why we maintain desktop apps for OS X, Windows, and a web application

medium.com

81–90 of 95 posts

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#81
post #80

Wow, there's a lot of hybrid hating here. Consider this though: • You have an app that doesn't need to perform actions in sub 10-milliseconds. 11 milliseconds is just fine. • You don't require access to a whole host of system processes, but maybe access to the file system, or the clipboard, would be a big help to your users. • Your users are not super technical and won't even know what a hybrid app or native app mean…

> You have an app that doesn't need to perform actions in sub 10-milliseconds. 11 milliseconds is just fine.

Except you're looking at 3 seconds to power up your cell radio, before you can actually download the HTML.

> You don't require access to a whole host of system processes, but maybe access to the file system, or the clipboard, would be a big help to your users.

Until you need more, at which points you're spending all your time extending your hybrid framework.

> Your users are not super technical and won't even know what a hybrid app or native app means.

They do know "it's slow," in the case of Facebook.

> You want to get your app to market on multiple platforms in days/weeks, not months, and without spending a ton of money.

Until you spend six months rewriting all your apps.

Hybrid apps, on mobile, trade short term gains for long term maintenance nightmares. On the desktop, with a high bandwidth connection, and lots of power, they're less bad.

With a well written model layer on an iOS app, maintaining a desktop UI for most apps is the work of one or two developers. Sadly, desktop usage isn't worth it for most consumer facing startups. I've accepted that business reality.

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#82

What I don't like is WebView distributed as a "native app". It's not native app and it's not something I want to install, don't cheat me. Webpages should stay in browser. I expect native app to be written with Objective C (OS X/iOS user here), having very low memory usage, fast startup and offline usage. Also I expect as much integration with the system, as possible, native controls (not that buggy emulation without…

vbehezar what if only the view layer was in HTML/CSS/JS?

How is that different from using gtk or some other gui toolkit?

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#83
post #32

What I don't like is WebView distributed as a "native app". It's not native app and it's not something I want to install, don't cheat me. Webpages should stay in browser. I expect native app to be written with Objective C (OS X/iOS user here), having very low memory usage, fast startup and offline usage. Also I expect as much integration with the system, as possible, native controls (not that buggy emulation without…

I use the Fluid SSB [1] for the latter. It sandboxes websites that I need to use but are not willing to allow access to my primary browser history/cookie store. It's a little clunky, but it gets the job mostly done. [1] http://fluidapp.com

I love fluid because of the thing the article mentions about Alt/Cmd + Tab... it's hard-wired into my brain to mean "task switch", so I have several web apps that I use all the time (GCal, Pivotal Tracker, Asana to name a few) with Fluid apps so I can quickly change to them.

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#84
post #80

Wow, there's a lot of hybrid hating here. Consider this though: • You have an app that doesn't need to perform actions in sub 10-milliseconds. 11 milliseconds is just fine. • You don't require access to a whole host of system processes, but maybe access to the file system, or the clipboard, would be a big help to your users. • Your users are not super technical and won't even know what a hybrid app or native app mean…

> You have an app that doesn't need to perform actions in sub 10-milliseconds. 11 milliseconds is just fine. Except you're looking at 3 seconds to power up your cell radio, before you can actually download the HTML. > You don't require access to a whole host of system processes, but maybe access to the file system, or the clipboard, would be a big help to your users. Until you need more, at which points you're spendi…

Except you're looking at 3 seconds to power up your cell radio, before you can actually download the HTML.

You can cache all files in the app bundle with Cordova so the download happens during the install.

Until you need more, at which points you're spending all your time extending your hybrid framework.

Cordova makes it easy to build bridges through plugins. Moreover this promotes proper separation of concerns which lets you use the SAME view layer on different platforms, changing only the "client api bindings". It lets you truly think through a crossplatform system design AND the business logic of whether you'd like your invited users to start on the web experience and download the app for that + expanded functionality. So it informs your business model as well.

They do know "it's slow," in the case of Facebook.

When Zuck said that HTML5 was a mistake, Sencha made fastbook demo three years ago to show that facebook could have been sped up and was slow for a different reason. Since then it's been three years and two generations of phones. Things are even better now.

https://www.sencha.com/blog/the-making-of-fastbook-an-html5-...

Until you spend six months rewriting all your apps. Hybrid apps, on mobile, trade short term gains for long term maintenance nightmares. On the desktop, with a high bandwidth connection, and lots of power, they're less bad. With a well written model layer on an iOS app, maintaining a desktop UI for most apps is the work of one or two developers. Sadly, desktop usage isn't worth it for most consumer facing startups. I've accepted that business reality.

Business reality you say? Well at least for mobile, it's this:

http://blog.venturepact.com/8-high-performance-apps-you-neve...

Hybrid apps have 20% HIGHER RATINGS in the app store than native.

Many top companies heavily use WebViews.

MacGap is getting better and this will become standard for the desktop, too.

Take our own Calendar app for example. It has over 60,000 active users in any given month (http://qbix.com/calendar) and having WebViews would SIMPLIFY our port to iOS and Android. Here is what we wouldn't have to rewrite and additionally maintain:

1) The view layer incl all reusable components 2) Caching of view models 3) The server side communication, incl websockets and realtime

And we get one more bonus:

4) Invited users can click a link and instantly get an account on the web, after which we can send them transactional notifications until they sign up. As opposed to being taken to an app store with a description, pictures and some ratings. Higher virality for the win!

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#85

What I don't like is WebView distributed as a "native app". It's not native app and it's not something I want to install, don't cheat me. Webpages should stay in browser. I expect native app to be written with Objective C (OS X/iOS user here), having very low memory usage, fast startup and offline usage. Also I expect as much integration with the system, as possible, native controls (not that buggy emulation without…

Windows 10 will allow for installable web apps that behave like native (admittedly not much use to an audience that tends heavily toward OS X)

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#86
post #80

Wow, there's a lot of hybrid hating here. Consider this though: • You have an app that doesn't need to perform actions in sub 10-milliseconds. 11 milliseconds is just fine. • You don't require access to a whole host of system processes, but maybe access to the file system, or the clipboard, would be a big help to your users. • Your users are not super technical and won't even know what a hybrid app or native app mean…

> You have an app that doesn't need to perform actions in sub 10-milliseconds. 11 milliseconds is just fine.

Why? This is cumulative, across everything in your app. Why are you spending the user's resources on yourself?

> You don't require access to a whole host of system processes, but maybe access to the file system, or the clipboard, would be a big help to your users.

Native integration is a lot more than access to the clipboard and file system. Drag and drop. Editing key shortcuts. Consistent components.

> Your users are not super technical and won't even know what a hybrid app or native app means.

You don't need to be a professional chef to tell the difference between home baked cookies and chips-a-hoy, and you don't need to be highly technical to know that an "hybrid" application doesn't work as well as any of your other well-written apps.

> You want to get your app to market on multiple platforms in days/weeks, not months, and without spending a ton of money.

Blah. So we'll ship things that suck because it's a better product for us, the person making it? What if shipping genuinely good applications is actually integral to your success?

Remember: MVP is all about reducing the risk to VCs by decreasing the costs to get a product to market, by increasing the risk of a "false negative" market failure due to your shipping a poor product.

If you're that false negative, MVP hasn't done you any good.

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#87

Earlier quoted context omitted.

Atom's performance problems are not because of Node, they're because they render with HTML, loading your whole text documents into the DOM as hundreds of thousands of separate elements. Using Node JS as the backend to a proper native rendering system would work fine, and in fact if the application was written to properly handle everything asynchronously, it may well be faster than an app written entirely in the nativ…

Honestly, I've never had a problem with Atom's performance. The only time it comes up is when one opens an extremely long file which contains one extremely long line of code.

So "never" isn't actually true.

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#88
post #84

Earlier quoted context omitted.

> You have an app that doesn't need to perform actions in sub 10-milliseconds. 11 milliseconds is just fine. Except you're looking at 3 seconds to power up your cell radio, before you can actually download the HTML. > You don't require access to a whole host of system processes, but maybe access to the file system, or the clipboard, would be a big help to your users. Until you need more, at which points you're spendi…

Except you're looking at 3 seconds to power up your cell radio, before you can actually download the HTML. You can cache all files in the app bundle with Cordova so the download happens during the install. Until you need more, at which points you're spending all your time extending your hybrid framework. Cordova makes it easy to build bridges through plugins. Moreover this promotes proper separation of concerns which…

> You can cache all files in the app bundle with Cordova so the download happens during the install.

Now your apps is resembling a native app, but a whole lot more complicated.

> Cordova makes it easy to build bridges through plugins.

Everyone I've talked to who went down this path regretted it.

> Moreover this promotes proper separation of concerns which lets you use the SAME view layer on different platforms, changing only the "client api bindings".

Except views are ultimately platform dependent. You've created a leaky abstraction.

> Business reality you say? Well at least for mobile, it's this: http://blog.venturepact.com/8-high-performance-apps-you-neve....

That article lists Twitter, which is wrong. I was the tech lead.

(It's also wrong about half the other apps on the list)

Re: Why we maintain desktop apps for OS X, Windows, and a web application

#90
post #84

Earlier quoted context omitted.

Except you're looking at 3 seconds to power up your cell radio, before you can actually download the HTML. You can cache all files in the app bundle with Cordova so the download happens during the install. Until you need more, at which points you're spending all your time extending your hybrid framework. Cordova makes it easy to build bridges through plugins. Moreover this promotes proper separation of concerns which…

> You can cache all files in the app bundle with Cordova so the download happens during the install. Now your apps is resembling a native app, but a whole lot more complicated. > Cordova makes it easy to build bridges through plugins. Everyone I've talked to who went down this path regretted it. > Moreover this promotes proper separation of concerns which lets you use the SAME view layer on different platforms, chang…

> I was the tech lead.

How big is the iOS team at Twitter? This is old picture (https://pbs.twimg.com/media/BYBiL8MCUAAiB7r.jpg)

Post reply on HN