Hacker News new | past | comments | ask | show | jobs | submit login

> Flutter is the only realistic option for true cross platform UIs that run everywhere.

I understand that argument but 100% disagree. The web is the cross platform that runs everywhere (as in in a browser or webview). True it has many issues and some forms of it (electron) are not ideal for some use case but I believe it’s a better platform than flutter in almost every way.

You say “true” cross platform and could argue that the web isn’t “true” cross platform. But really is anything?




I have yet to see a world in which local file access, background services, local notifications, timers, alarms, native media controls, etc, works as well on web as in native apps. A lot of it is there "in theory", but web tech has the achilles heel of only allowing stuff that would be safe to have in a random website that some asshat links you on twitter.

Of course this is only relevant if that deeper plumbing into the OS is needed, and of course it's quickly changing. Perhaps the day comes when web apps can truly be first class citizens in all major OSes, but it ain't here yet.


“Everything” working in a web app is unlikely to happen any time soon. The security model is so different, though less different between mobile and web than mobile and desktop. Also the Apple/Safari ecosystem is the new IE and dragging down some of the innovation.

However, I believe it might not matter. 95% apps can be done as web apps today, especially what comes to boring business applications. 5% we can wait for some time.

What comes to Flutter, it can never integrate well within a browser as it sufferes from the same issue as Java applets. It does not use the web browser native rendering engine and widgets will always feel kludgy, have accessibility issues and so on. Not a big deal for some apps like games. And Google Docs is already using Canvas based rendering so seems like Flutter canvas based apps might have hope.


> And Google Docs is already using Canvas based rendering so seems like Flutter canvas based apps might have hope.

Well, isn’t it the Java applets model as you call it as well? But is a colored div that much better of a button?

Though I don’t disagree with you, indeed most apps can be web-based.


That plumbing is there and easily doable, but up to Apple… just like how the proliferation of QR codes in America didn’t happen until Apple decided to include it in the camera app. It (QR codes) was widely used for maybe almost a decade in China due to inclusion in the ubiquitous Wechat app.

However given the app store is a cash cow for Apple I highly doubt they’d want to integrate web more deeply.


Notifications is the main one which is still missing (at least on iOS, not sure about android). If notifications are possible for websites, then it would make web dev so much better for vast majority of apps.

Local storage already does a lot of needed data storage (though apple has recently made this complicated with their auto delete after certain period). Local file access for uploads is also now possible on iOS using the Files app.


You have yet to see a world where people update their beliefs more than once per decades. Hybrid native web apps are trivial, see e.g. Ionic capacitor plugins


I'm well aware of hybrid apps and Ionic. I wouldn't call those solutions properly "web" though. They're basically only using web tech as a presentation layer, and deferring to native plugins to do the heavy lifting when required. Very similar to how Flutter does it.

So if your claim is simply that CSS/HTML/JS is capable of creating good user interfaces, I'm not arguing against it.


> a presentation layer, and deferring to native plugins to do the heavy lifting when required

bruh it's not just UI, the JS/TS code is where the business logic code is. And anyway the UI is the whole point, we are debating UI libraries. But most importantly native plugins are niche, you use them very rarely and for very specific needs, they occupy generally less than 1-5% of the code base. e.g. when you need to access the camera or sensors, which you usually don't need and most apps don't actually benefit from plugins. I'm not even talking about the fact that most of those niche needs are generally covered by equivalent modern web APIs (e.g. web share) but since plugins are trivial to use, people often use them even when a web api already exist.


This 100%. Also, Flutter Web is still pretty much an abomination (right now), IMO. Sure, it "works". So did Flash. (edit: Just wanted to add, I love Flutter for mobile, even think desktop might work. Just don't think it's for web. Maybe for very specific app types.)


>"The web is the cross platform"

Nope, The web is The Platform. And while it offers numerous benefits it has plenty of flaws / inability to do some things as well.


> The web is the cross platform that runs everywhere (as in in a browser or webview).

I understand that argument but 100% disagree. Development is horrible, it's anything but standard, comes with a lot of baggage, the performance is atrocious. It doesn't even run anywhere, it runs in a browser. A huge, bloated, hungry browser.

You say Electron is not ideal, I say it's the worst thing that had happened to desktop computers ever. It's bad for the planet too. Some argue that without "js on desktop" we wouldn't have these amazing apps. I think it's not worth it to have those apps if they are built using those technologies. They make me miserable every single day. It's the only thing that forces me to upgrade my computer. It's so bad. Things that were possible 20 years ago are suddenly an unachievable goal. Stop it.


I may have very different uses for my PC than you (I use it primarily for gaming and my job as a game developer), but I find the notion of having to upgrade your PC to run a browser-based application very strange.

I am not saying that electron-based apps are generally good or efficient. Most of them are frustratingly slow and awkward. But this inefficiency rarely seems to be constrained by local resources: the apps often stand still, consuming barely any resources (CPU time, memory, etc.) and taking ages to load each page. At the same time you can often visit the same page in Chrome and it will load almost instantly.

It is frustrating and I have no idea what is going on, but it doesn't seem like upgrading the PC would solve the issue.


I came here to say this too. Build your app as a website, then just use a simple browser window of an app that loads your site. Then you only develop in one place, and have nothing to compile or build. Hardly ever have to update your "app" builds even. This won't replace every app of course depending on what you're trying to do and if it requires specific hardware features, but I'd say about 99% of apps don't need to be native.


This is also how you lose customers.


Why? Amazon did this, back in the day, not sure how they do it now.


I get the feeling most the Amazon app is still webviews today


If done properly your customers won’t even know.


> The web is the cross platform that runs everywhere (as in in a browser or webview)

Yes, but the web is crappy system for designing UIs in.

As a community we've got good at designing UIs with web technologies (HTML+CSS), because we have no other choice if you want to build web-apps. But the level of experience we've gained with those tools has hidden the fact that they have some real issues - mostly due to the fact that they've developed piecemeal over many years. Getting the layout of your page to behave correctly under all the circumstances it needs to requires a lot of experience with CSS, a lot of simple page behaviour we'd now expect as users require adding JS sprinkled around (and I'm not talking app logic, just UI logic).

I freely admit that I'm not great with CSS - I'm not a web developer although I have done some web development. If I do any at work (e.g. web UI for embedded device) I need a pro to come along and make things look nice. But when I did app development in Flutter it took about 2 days to be able to build screens that looked good, did complicated dynamic behaviour, and behaved reliably regardless of screen size and shape.


Interesting, I've had the opposite experience. I'd love to develop in native with something like Flutter or React Native, but I find CSS to be much easier and more flexible to use. The base components always /seem/ flexible enough until I want to do something visually complicated like add an animation that blurs an image on hover. I know CSS is horrendous in consistency, but it's piecemeal development has led to it having every UI feature I could really want/need now that I've paid the price and met its learning curve.


For what it’s worth CSS is all I knew prior to Flutter so the learning curve was a bit weird initially but once you start matching concepts you already know like Flutter also has “flexbox” for example it was pretty easy from there. Also having a strongly typed language with great docs is a huge help.


I wish this were true, but in my (admittedly limited) research I'm not sure it is.

For one, you mention Electron. That targets all desktop platforms, but not mobile. Mobile development from webapps is absolutely possible, but you need to use something else for that. Meanwhile, on the flutter side of things, if you want to target desktop platforms, you use flutter. If you want to target mobile platforms, you use flutter. There isn't a need to learn a whole new framework to target a new platform.

Aside from that, local file storage and offline use can also be a bit finnicky with Electron. Absolutely possible, but its another thing you have to figure out that Flutter just does by default.

If I'm wrong on any of this, please do let me know, I know web dev far better than I know Flutter so it'd make my life a lot easier, but the above reasons are why flutter hasn't budged from my todo list


Other than what sibling comments said, I have to add that flutter is much more approachable for new developers than web is. Most widgets are built-in, and development workflow is also simpler. This is what I heard from college students.




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

Search: