Hacker News new | ask | show | jobs
by macspoofing 4594 days ago
Makes sense. HTML/CSS/JS is not a bad way to build UI and if you're going to have an HTML rendering engine and JS VM on your machine, you might as well use it.

When WebView on iOS and Android finally get WebGL support ( what's taking so slong?!!?), native app development with native SDKs will plummet.

4 comments

No, it won't.

As a iOS developer, I write native because I want to deliver the best possible user experience. I've done HTML5 with PhoneGap and it does not deliver the same experience. WebGL on iOS will not change that at all.

You may be surprised to know that most in game interfaces are powered by Flash/ActionScript.

Would you build a website in Flash? I doubt it - you'd probably tell me it was slow and didn't deliver the same experience.

Many in-game interfaces are powered by Flash/ActionScript, running in things like Scaleform or various open source offshoots of gameswf but they aren't running in Adobe's actual Flash virtual machine, so any performance comparisons are pretty moot.

In any case, anyone who didn't build websites in Flash because it was "slow" was misinformed. Flash/AS, especially with AS3/AVM2 was significantly faster than JavaScript (at the time Flash was relevant) if doing anything that required "Web App" style functionality, at least if the ActionScript code was written by an actual programmer and not a designer copy-pasta-ing scripts to make something work. There are/were very valid arguments against Flash (security, un-indexability, etc), but performance compared to JS wasn't really one of them.

Source: used to write ActionScript apps that ran on the 350 mhz i.MX21 ARM chumby device with 64 megabytes of memory that had better performance than a lot of "native" mobile apps have today, let alone web-based mobile apps.

Games frequently have terrible UIs that have clearly had far more effort put into making them look good than being usable, especially for things not part of the actual game play.
Games typically have a very different set of expectations in terms of their UI than "regular" apps. So, that works for games but not in general.
Agreed, not to mention if you want to do _anything_ truly concurrent , as in running non bullshit threads that actually run on available cores, you need native.
Web Workers can use multiple cores, can't they?
See ScaleForm. In game interfaces… Powered by… Flash! ActionScript!

WebGL is a natural progression on this.

nit: you want to deliver the best possible ui experience. UX encompasses more than just the ui.
Agreed. One of the primary annoyances of HTML5/PhoneGap (as of a year ago or so), was that load times were slow and the UI wasn't as responsive as it should be. It never felt awesome to me.

For me, and maybe it's just me, I can build a much better experience using native code. I also can tweak some very small, but important details that HTML5 doesn't let me tweak.

If someone can create the same experience better, cheaper, and faster using HTML5, more power to them, but I can't, so I go native.

I haven't seen anything in the last year to say that a whole lot has changed. If anything, a lot of major projects have tried HTML5 and have "gone native". I realize there are plenty of projects that might prove the opposite, but when you are just one or two guys cranking out an app on iOS or Android, well you make the best decisions you can and move on.

Exactly, and you don't want to use a document mark-up language patched up with scripts for your UX.
If UX encompasses UI, how is saying that he wants 'the best possible user experience' incorrect? UI performance and bugginess has an effect on user experience.
UX is a superset of UI. That native delivers a superior UI doesn't mean it delivers a superior UX.
I'm just counter nitpicking at this point which isn't much better.

> That native delivers a superior UI doesn't mean it delivers a superior UX.

Sure, it doesn't necessitate a superior UX, but it certainly has an effect on UX. Here 'programminggeek' has tried building apps using native and using web technologies and has found that, for him at least, native provides a better UX. Are you saying thats not possible? That the choice between native and web is absolutely not a UX one but a UI one?

I'm saying that the web has UX benefits as well. The implication of the parent's post was that if you value UX native is the only choice.
As a sane developer, I'd like something that can compile to multiple platforms from a single code-base. I can't imagine targeting only iOS.
I understand the sentiment, but as a sane product maker, I can't imagine providing a customer with a subpar user experience.
> When WebView on iOS and Android finally get WebGL support, native app development will plummet.

WebGL just hands you a GLES context. Nobody writing 2D native apps deals directly with GL at all, and nobody wants to. WebGL will do squat to replace native app development as a result, it's completely unrelated.

The only ones dealing with GL directly do so for performance, and they sure as hell aren't going to be tempted by HTML/CSS/JS because that's all anti-performance.

>Nobody writing 2D native apps deals directly with GL at all, and nobody wants to.

Who says you need to work directly with WebGL. There are and will be some wonderful 2D frameworks that wrap WebGL. Exactly what happened with Flash's Stage3D. Starling and the Feathers UI Toolkit are great in creating smooth 60fps animations effects in AS3.

I'm not aware if any production quality UI toolkits for WebGL or even Canvas despite canvas being around for many years now. The problem is that you have to reproduce a lot of what you already get using html elements and css.
You don't even need WebGL, plain HTML + CSS, when coupled with a JS framework like Angular can produce very nice results. I've built Aether[1] that way.

Edit: The product is not the page, Aether is a desktop application. The page crashes devices low on memory because of the retina screenshots, and yes, I'm having a new site up soon.

[1] http://www.getaether.net

This page is an excellent counter-point. Crashes the iPhone 4S browser and grinds Chrome beta on Android to a halt.
The product isn't the page, Aether is an anonymous, peer to peer reddit-like desktop application whose UI is running on Webkit.
Your link crashes the browser on my ipad mini. Not what I would consider a nice result.
Sorry about that. Aether isn't a website, it's a desktop application. It crashes your iPad mini because it's running out of memory caused by retina screenshots. I'm planning a new website soon.
Don't work on latest stable Chrome in windows 7.

Plain HTML (without javascript or CSS) can produce very nice results. No need for fancy animations or generated graphics.

Interesting. I'm scrapping the entire thing and building from scratch, so it's long in the tooth anyway. The only animation I have in it is keyframe animation which changes the screenshot on the computer's desktop in intervals. I believe retina images are the problem rather than the transitions.
Yep, those retina images don't look too hot on Chrome/Macbook Air/OSX 10.9: http://i.imgur.com/bzwF86C.png
Just curious, is that image really what printscreen on a mac produces?
The printscreen doesn't add the laptop, if that's what you're thinking about (that's already there on the webpage). But the font in the screenshot-of-a-screenshot is completely unreadable.
'retina' is a layer at the back of the eyeball that contains cells sensitive to light. What you have are unoptimized high-resolution screenshots.
There will be a whole wave of apps that are not just crappy-looking but glitchy as well.