Flutter, Google’s UI toolkit for building mobile Android and iOS applications, hit its version 1.0 release today. In addition, Google also today announced a set of new third-party integrations with the likes of Square and others, as well as a couple of new features that make it easier to integrate Flutter with existing applications.
The missing part of the story for Flutter if you want ‘cross-platform’ development is the web…
This is why this post is very interesting:
https://medium.com/flutter-io/hummingbird-building-flutter-for-the-w…
Bleh. More bloated,slow and internet-dependent apps. Just what the world needs.
Not.
I’d agree a lot of ‘modern’ web apps aren’t that good end user experience.
And the desktop has actually become secondary[1]
However if it’s a choice between a web app or no app for desktop then at least it’s an option ( suppose you could just ship an iPhone/Android emulator for desktop …. ).
[1] Recently our IT department launched a new app – there is a native phone app and a ‘desktop’ app – where the desktop app is web.
Sad reality is it’s switch from the initial iPhone launch of Job’s saying – just write a web app in response to their being no API, to the desktop now being ‘just write a webapp’ and the phone being native….
Trends are moving away from native apps as hardware gets faster and cross platform tools become more accessible – and good. Many “native” apps are actually React Native (or another cross platform tool-kit), which is mostly Javascript and a completely custom UI surface which is native only in the sense that it draws to the screen using lower level APIs than going through the browser’s DOM does. Contrary to popular belief, it does not cross compile JS, and rarely actually uses the platform’s native toolkit (it’s mostly duplicated/re-implemented). It’s still an abstraction.
Almost every game is built on a cross platform engine of some kind – Unity, Unreal, Game Maker Studio, dozens of other – even Flash. Adobe AIR is just Flash in a native app wrapper, and it’s still pretty popular for certain types of apps, and will be supported and developed even after Flash Plugin is EOLed in 2020. It’s ironic really that the only place Flash will still be viable is in “native” app stores – especially on iOS.
You know what? Almost no one can tell the difference between a cross platform app built on JS or Dart, or Unity or Unreal or Flash or even Shockwave (yep, still around!) and even far fewer people care, even a little.
PWAs are also becoming more popular (though Apple is hamstringing them pretty well by limiting certain APIs, but even there they will probably eventually have most of the same stuff that Android and Windows have).
Edited 2018-12-05 21:15 UTC
I beg to differ – I think there is a big difference between something in javascript *running on a VM* and something in Dart *but compiled to native*.
That’s one of flutters selling points.
In terms of proper web apps – even on powerful desktops, in my experience a lot of single page web apps have annoying performance blips – a lot of it is not such much javascript etc but the web platform not yet having the right lowlevel API’s.
For example – let’s take something as simple as detecting the window you are in has been resized – most sane UI dev kits would have an event you can listen to – the web has it as well but – it’s new and not yet supported on anything but chrome.
https://caniuse.com/#feat=resizeobserver
Solution – poll the windowsize every x. So you are either running lows of code pointlessly very often, or letting x be long and then you app could wait up to X before noticing the change.
Rubbish.
Google are doing their best to push things forward, but there are still lots of stuff missing.
Do you have some data to back up that Flutter is bloated and slow?
I was wondering myself and found this example: http://bizz84.github.io/2018/03/18/How-Fast-Is-Flutter.html
This part especially stood out to me:
While “being good at short-lived allocations” doesn’t have to mean “being bad at long-lived allocations” my first 10 minute analysis would be that Flutter is indeed “bloated and slow”
I am not sure I would go that far, yet. In what amounts to a trivial example it uses more CPU and memory than you would expect, but high CPU usage isn’t quite the same thing as slow.
Memory use is higher than I would have thought, I will give you that.
I would love to see a comparison from someone who ported a non-trivial application to Flutter and then did a comparison. I am not saying Flutter would win, just that it would be a better test.
I personally am not ready to call Flutter bloated and slow yet
TLDR: When reading this thread be careful if the topic is Hummingbird or Flutter!
Nobody* called Flutter bloated and slow. Yoko_T’s comment was related to Hummingbird (“Flutter on the web”) and said nothing about Flutter.
Someone replied asking for proof that Flutter was slow and bloated and since I find Flutter interesting** I did a quick “dipping my toe in the water”. I specifically mentioned that it was only a first impression. I have since read a few more impressions and the result is mostly “Native is about twice as efficient. Flutter is similar to React Native” and getting to that level requires “that you should be careful to split your widgets”
Flutter has just become v1, but the general trend for its resource use seems set. 1 persons “good enough” can be another persons “slow and bloated”
* Well, I did, with the mentioned caveats
** I have experimented but never professionaly worked with Xamarin and PhoneGap in the past.
One day, you’ll manage to contribute meaningfully to the comment section, and there will be much rejoicing.
For now, I guess we’ll have to take solace in the fact that MS wants to use an open source web browser engine.