Live data from Hacker News

Flutter 2

developers.googleblog.com

591–600 of 780 posts

Re: Flutter 2

#591
post #126

Earlier quoted context omitted.

We actually did try that as our first approach, but it really didn't give you the flexibility that Flutter developers expect. As the erstwhile editor of the HTML standard for ~10 years and the now TL of Flutter I must admit that it's weird to be creating a web framework that completely ignores all the HTML stuff I worked on before. :-) That said, Flutter is different from Flash in some important ways. Flash used the…

So this is already a pretty toasty section of comments so let me put this to you. If you've already answered this elsewhere, please let me know. I would be surprised if someone heavily involved in the Web's development process for a long time didn't have some really sore spots about it. That aside: -- What do you think of the loss of opportunities for learning and customization that moving to an opaque system running…

> Was being able to easily inspect and change what was happening in apps you didn't have intentional source access for (web pages/apps) not key to that?

I got into web design/programming in the 90s, and the answer is basically no. Sure you could poke around a bit, but I never found it to be a revelation. I still had to buy books, read blogs, and do a ton of trial and error. Also, it was a never-ending game of trying to testing to see what each new browser release added or broke.

We are in infinitely better position today thanks to open source. The "View Source" of today is GitHub. Want to write a high-performance dynamically typed language VM? Here: https://github.com/v8/v8 Build an operating system? OK: https://github.com/torvalds/linux Build a database? Here you go: https://github.com/postgres/postgres

Re: Flutter 2

#592
post #335

Earlier quoted context omitted.

We're nagging because the apps suck and stick out like a sore thumb. Maybe Flutter will be the one to get there and be the holy grail of cross platform UI development, but the developer community has been burned by this promise so many times, we're going to have to see the final product before getting excited. Just because a project is ambitious doesn't mean we should all jump on board, particularly when similar proj…

On this note, I have 60% fond memories of Appcelerator Titanium and 40% frustrating memories :)

Yup, really they had the right idea in that it was native components that were hoisted by JavaScript binding... it really lost steam because it became easier to just build native Swift (and later kotlin android). It was a solid play at the problem in it’s time. Note: I worked at Appcelerator in the “gogo” years and it was great, and they/we almost made it happen in a real way.

Re: Flutter 2

#593

Earlier quoted context omitted.

I don't understand why more resources aren't being put into Qt and making that easier to use or building a more "web-developer-friendly" abstraction layer on top.

I don't even fully understand why "cross-platform UI development" is such a holy grail. Is it that expensive to separate your business logic from UI and write the small UI layer in whatever the platform's "best practice" native language is? Is it that hard to find developers who know more than one programming language? With a lot of these frameworks and higher level abstractions, if you go off the toy-app happy path,…

It’s not just a “small UI layer” — there’s an entire stack that goes with it. Want to build iOS apps? Can’t do it on Windows or Linux; you have to buy a Mac, run macOS, learn that whole stack, install Xcode, figure that whole thing out, learn how the App Store works, including all of its rules and regulations. But that’s not all—you also have to figure a CI pipeline for that whole thing too.

Rinse and repeat for every platform.

That’s what makes the web beautiful: you write the app once and it mostly runs everywhere. You have to figure out the infrastructure I described above once and you’re done.

Or at least that’s how it use to be before the major platform players realized how lucrative it is to charge developers App Store fees.

Re: Flutter 2

#594
post #515

Earlier quoted context omitted.

Or give Ionic react a try

I would not recommend Ionic. I've been using it in a medium sized app for about 3 years now and I get the feeling it's good for getting started, but once your app grows past a certain size it's starting to create more issues than it solves. Some examples from the top of my head: - various performance issues (e.g.: memory leaks which haven't been fixed for years [1]) - their push/pop router navigation seems like a rea…

Interesting but is this still the case on recent Ionic releases?

Re: Flutter 2

#595

I haven't really looked, apart from glancing, into flutter yet. Now with desktops and mobile, premise seems interesting. How and does it compare to Qt?

I'm not sure, but I think that you have to use Dart language to use Flutter. Incidentally, I was pretty sure that Dart was dead. Turns out it's alive. I'm not sure what it is currently, now that it's statically typed, null safe and all. What are Dart's killer features?

> What are Dart's killer features?

It's not clear to me that killer features are really a thing for most languages. Sure Haskell has laziness/purity and Rust has ownership.

But what is C++'s "killer feature"? C interop? It used to be OOP but it's not that any more and yet C++ is still massively successful. What is Java's killer feature? GC? C#'s?

I think most languages don't have killer features, they have killer platforms and frameworks. For C, it was Unix. For Java, it was servers and the broad set of libraries. For C# it was WinForms and now Unity. For JS, obviously, the web.

Re: Flutter 2

#596
post #536

Earlier quoted context omitted.

I'm not commenting on any other platforms, but I maintain a few C/WebAssembly libraries and they work exactly as expected without being unreasonably large. C-in-JS has been viable for a number of years now.

I realise it works, I just don’t think it’s really useful for what was asked for, a way to write common cross-platform business logic for a platform-specific UI. Unless there are some great new tools I’m not aware of, C on WebAssembly seems about the same as C on Android. You can compile stuff just fine, and run it, but actually connecting it up to any substantial UI written in JS/Java is going to be incredibly tedio…

Fair enough, and I strongly agree with the general point about the need for a solid cross-platform framework either way.

I don't see why you couldn't write your entire business logic, state management, etc. in C or Rust and treat it effectively like a client-side server, but I've never used wasm in that way so I can't speak from experience there. Either way, I can certainly see how that would require some extra effort, and of course it would only really be useful for applications that don't offload most of their work to a server.

Re: Flutter 2

#598

Earlier quoted context omitted.

Are you a native mobile developer? I am (was I'm moving to ML/AI/Data engineering) and I don't think flutter is in any way easier or nicer than the native toolchains for mobile. Both Swift and Kotlin are better languages than Dart IMO, the IDE and tooling is far superior for both also. Flutter is faster but once to deploy a substandard quality of app for sure but matching the quality of a native app? That takes just…

What are your thoughts on the business end of deciding to build two separate versions of the app in two languages (not to mention the web) vs the efficiencies of one code base? We're close to needing to make this decision and I'm real hesitant to introduce two additional languages (we're already React for the web but haven't build apps yet) vs a React Native app where our team can be immediately productive.

We made this choice at Rdio back in like 2012. Our mobile apps were written almost entirely in C#, shipping on iOS, Android, and even Windows Phone 7/8. About 70% of the code was identical on all platforms, even the super-hairy audio bits. Contrary to the prevailing notions at the time, our app had native levels of quality and performance. We could roll out a new feature an all platforms in only a little more time that it would have taken to do it for one.

That agility didn't come for free, however - we gained speed, but also traded routine bugs for exotic ones. In addition to simple null-pointer errors and the like, we got to spend two weeks digging into the Mono runtime to find a locking bug that drained users' batteries. We had our own sqlite wrapper because the built-in ones on Android and iOS had too many incompatibilities. We had our own red-black tree, for some godawful reason. We had a standing weekly call with our Xamarin reps to discuss toolchain bugs.

Ultimately, the pain ended up outweighing the savings of sharing code. At the time Rdio went bankrupt, we had substantially rewritten the apps in Java and Obj-C. RIP.

Re: Flutter 2

#599

Earlier quoted context omitted.

If you had to pick a multiplatform solution (for whatever reason) which one would you pick? I've been exploring this space a bit, and it's really hard to form an opinion on this.

I've been in that situation 3 times, I choose React Native and Flutter each once. I was forced to use Ionic. I would NEVER use Ionic again, terrible experience and very difficult to get decent quality/performance. I like Flutter's technology much more. I like that it is natively compiled. I dislike that it has it's own UI toolkit. React Native with TypeScript is a highly productive environment but I LOATHED the devel…

Out of curiosity, what version of Ionic were you using?

Ionic 4+ is a complete rewrite from the ground up to use web components.

I use it in a non-traditional way, I do vanilla js + lit-html + web components and it works great.

Performance is smooth, mobile first approach makes responsive apps straightforward.

I don't do any of the native things or command line app creation or any of that.

I've been generally pleased with it.

Re: Flutter 2

#600

So does rendering to Canvas imply browser extensions can't work with Flutter apps?

Depends on what the extension is trying to do with your app. If it's scanning your html then no, it won't work.
Post reply on HN