This is flash. You can't do anything in it that fills like the web - no copy paste, right clicking causes things to happen. I don't expect games like this to have links and proper bookmarkable urls, but I doubt it'll work as expected if it did.
This is the epitome of the problem with flutter - it re-implements the UI, creating an experience that is just close enough but not good enough. And no matter how many smart people and an insane amount of resources they put into it, it'll never be good enough.
There's a reason why flash died out, and it's not only apple. It was dropped for making interactive website long before apple killed it - it doesn't work well with the web.
>Google today announced the first preview of Jetpack Compose, a new open-source UI toolkit for Kotlin developers who want to use a reactive programming model similar to React Native and Vue.js.
This is massively confusing. Do we invest in Kotlin ...or do we invest in Dart ? Remember I'm talking about developing nations like India - where startups like ours invest in training college graduates . These guys can't afford 10$ courses on udacity and Coursera.
But even if it was not India, having this parallel signalling for Android based startups is very confusing. Atleast Apple was very clear about Swift .
Where will Android be in 2 years : Dart or Kotlin ?
Internal politic wars at Google, with management having popcorns to see who wins at the end.
If you are confortable with Qt, JavaFX, Xamarin, there is hardly anything to see with Flutter, plus they are based on programming languages that you actually want to have on your CV, instead of one that was dropped from Chrome and rescued at last minute by AdWords team.
Plus, even Fuchsia is not so focused on Flutter anylonger. Android userspace is being ported to Fuchsia, and now they have a UI Framework agnostic layer, Scenic, with examples in C++ and Rust.
If you want to do multi platform development, flutter.
I think flutter will be an amazing tool for smaller teams, especially in non-tech-primary organisations. I work in the public sector of Denmark, we do in-house development, our main focus is the public services we provide though. So there is just no way we can do mobile, desktop and web without something like Flutter, or severely increased funding. The latter won’t happen, but flutter might.
I don't think anyone has a definite answer, not even Google itself. Google placed several bets on different technologies and community will ultimately decide which of them is the winning one. Personally I think native Android (Kotlin) and iOS (Swift) development is here to stay. I have tried many cross-platform frameworks and on any non-trivial mobile app, all of them cause more problem than they solve.
You can't avoid learning Kotlin & Java, that's the native language for Android platform. Even if you use Flutter, leaky abstraction mean you will probably have to dig down to the native layer as your apps get more complicated.
>This is massively confusing. Do we invest in Kotlin ...or do we invest in Dart ?
Oh come on. Pick one. That's what you do for every other platform. Hell, even for web development, you'll have to make framework and transpilation decisions. This is no different.
>These guys can't afford 10$ courses on udacity and Coursera.
Yeah, too bad there are no free ways to learn programming languages on the internet.
But there is something arrogant about stating that programmers in developing nations somehow aren't capable of reasoning about tool choices for Android development.
edit : I am not a Googler, but that's what I gathered from talking with them
Here is what is happening :
A couple of years ago, when the dart team failed at getting their runtime embedded into the browsers, they started searching for a problem to solve. They thought they had hit jackpot with multiplatform development. So they started working on Flutter. This is all entirely independent from the Android team at Google.
The Android Team at Google continuously improves their own framework, hence the jetpack set of libraries. One of the new libraries they have been working on and that is now public in pre-alpha stage is JetPack Compose. They have hired one of the engineers behind React and had them work inside of the Android Team on a "React like UI framework for Android".
The official direction of the platform is what the Android Team is doing.
Flutter is interesting, with all the advantages and caveats shared with other multiplatform tools like ReactNative.
Invest in Kotlin. It's been created by Jetbrain and they are showing clear support for it. I can't say the same about Dart. Google won't support Dart, GWT, Angular, Polymer ... eternally. Yes different purpose, tech and ambitions but too much overlapping. In case of a "more wood behind a fewer arrows" situation, you'll have to pray that the Google gods didn't choose to sunset the stack you bet on.
I don't mean to be cynical, but the answer may be 'whichever language wins'.
Maybe Google wants to support Dart because its built in-house, while simultaneously supporting Kotlin because it is so well loved by developers. Just a guess.
And you think that anybody can answer that from Google? There are different factions in every company, they are fighting over things constantly. This is why Google has many similar products.
There's been activity porting the Android Java components to Fuschia.
I have no inside information (not a Googler) but that leads me to believe that if Fuschia becomes the next mobile OS from Google it will support both.
So same goes for Android I would assume. Why does an OS need to have a single stack? You can write desktop apps in a zillion different languages and Frameworks after all.
The internet is littered with reports of 10-100MB+ .ipa and .apk binaries coming out of simple Flutter apps for iOS + Android. Google states they can't imagine the footprint ever dropping as low as 1MB. [1]
On Web, 1MB of base runtime is a complete showstopper. Embedded applications may suffer similarly.
Does today's announcement mean Google has figured out how to fix this for Web, or are just ignoring it? Or worse — are they planning to 'boil the frog' with a sneaky transition into a world of a New Flash Player?
> 1MB of Flutter runtime got you down? Don't worry, Flutter Player now ships with Chrome.
This is possibly a very dark direction for the Web, of which Google is a powerful steward.
Flutter for Web is heavily reminiscent of Famous with its custom layout system and off-DOM rendering (or guessing DOM rendering support w/ CSS transforms of divs). To see, just view-source on the NYT demo.
I’ve given Flutter a try with one of my client’s apps, and in some cases, it’s obviously better than native development. Mainly because you can develop for both platforms. I’d be curious to hear where other developers think Flutter is a good framework to use instead of developing native code.
I simply love Flutter for Android and iOS development and have been using it since alpha. I haven't tried the web application part; I'm pretty sure I never will. Here's my opinion. I've created several apps with Flutter and every time I enjoy it. The UI is easy to make beautiful and the resulting code easy to read. It feels like all what the current Android SDK is missing. The current Android SDK is old and quite frankly painfull to work with. You just can't create beautiful apps with ease; it's always a hassle. It's also messy and not easy to read the resulting code. The way the whole way the framework is structured entails ugly code in my opinion. This all becomes evident when you use different apps on Google Play. You get the sense that every app reinvented their UI; there is no real UI continuity. Google became a freeloader after JetBrains created Kotlin and marketed it will. The thing is Kotlin made just a little better; in terms of boilerplate stuff; the framework I still hate compared to Flutter.
What I really like about flutter is the framework and “it’s all a widget” idea. You can basically do crazy things in UI with ease and on the other hand just use the standard UI components with a great result.
I cannot wait to switch from having to use a compile-to-JS toolchain to a compile-to-Dart-to-JS toolchain in order to get a language with a good type system.
I'm hopeful Dart will get better given what I've seen and what a member of the Dart team mentioned in a thread a few weeks ago, but right now it's still nothing that gets close to the ancient ML. Would be nice if they learnt a few things from Facebook or Microsoft.
Dart could very well end up being the secret weapon behind Flutter. Not only does Dart compile to JavaScript -- it's done this from day 1 -- but it also compiles to ARM binary via LLVM for iOS applications... meaning that compiling to WASM should be a trivial option to enable bringing near-native computational speeds to any targeted platform.
It feels wrong architecturally for Google to be pushing this right now:
1) Dart was intended as a Java like language and is inferior to Kotlin, a language they just endorsed on Android yesterday. Dart feels like a step back, not forward. The message is confusing from Google on this front. They have a huge Kotlin developer community already. Why push Dart at all?
2) World + dog is moving towards compiling Kotlin and many other languages to web assembly as well as native. Cross compiling Dart to javascript was maybe a valid choice a few years ago but not in 2019. See e.g. Rust roadmap for this year, .Net 5.0 agenda for MS, Kotlin Native, etc.
3) LLVM seems to be the toolchain of choice for this type of stuff to happen. Go and Kotlin + WASM would be very valid choices for Google to prioritize on this platform.
4) In a browser you need to be driving the DOM to look and feel like a proper web application. If you abandon that notion, you might as well grab something like QT or some other UI toolkit and use that.
My recommendation would be for Google to untangle flutter from Dart and just retire that and focus on WASM and native based runtimes only. That's going to take time and in my view it's inevitable that whatever they are pushing right now is ultimately going to be deprecated in favor of something like that.
Does anyone know how the server-side story is? Is there a CRUD-heaven like Django or Rails for Dart which can share the types with a Flutter client? IMHO Google should focus on that too, if not. I passionately hate re-typing same REST-entities over and over again, and that's one of the reasons why I love TypeScript.
No one has (yet) mentioned the main reason I ignored Flutter when it initially came out and why I continue to have reluctance - It's google. They have a terrible track record with products AND with libraries. GWT? Dart (pre flutter)? NaCl? How about all those initial Angular devs?
That's not a statement on the quality of the result (though some of those examples do indicate concerns), but if I'm not alone in avoiding a product that tackles a real industry need because of the source, that's a bad sign.
GWT lived for over a decade (how many web libraries do you know that have survived for for that long?), AngularJS is still in maintenance mode, Dart died when it didn't get browser support and Typescript was obviously the better alternative.
At the end of day though, I look at if Google itself is using it extensively, because that's when a library will have the best support/longevity.
What source would you prefer an open source UI library come from, that would avoid this concern?
Open source software lives and dies with adoption. Starting off with a (paid) development team, marketing team, and large initial user base (google internal) puts a piece of software in a good starting position, but doesn’t guarantee success.
Disclaimer: I work at Google, though not in a Flutter-related role.
You didn't even mention the Closure library which was released and then practically abandoned. We invested so much into Closure where I worked, with the promise that this is what Google used internally, when suddenly Angular dropped out of Google and that sucked up all the oxygen in the room.
Not to mention the maintenance required for a project of this size. You have to maintain emulation of the UI for multiple environments. When those update, you have to update. Imagine a new iOS release coming out and all other native apps on the market look new and everyone sees your outdated app trying to look native. Now imagine Google putting that on the backlog, never updating the iOS controls in favor of Material. The team has to maintain this emulation for iOS, Android, Windows, and MacOS. This is unreasonable for any company, let alone one with a track record of abandoning projects.
For the record I believe Flutter is here to stay, but I don't believe for a second they'll keep the "native look" around for anything other than Material design. It's a marketing gimmick to get their foot in the door and then transition everyone over to their own design.
I'm confused about the mentions of Chrome OS here. In particular:
> You can also publish Flutter apps for Chrome OS to the Play Store
Do they mean, you can publish an Android app and then run it with Chrome OS's support for that? How else are you supposed to run Flutter apps on Chrome OS? The only other way I see is "web" unless I'm missing something.
Flutter apps can now target the chrome browser (preview at this point). So a chromebook can run Flutter apps via the browser OR via an Android Flutter app.
Yeah, that's one of the 2 major concerns I have with flutter:
- new lang, platform, libs, tools, everything, it's like let's just dump 20ys of what we already have (either javascript or java/kotlin)
- excessive nesting (border, center, etc. it's much worse than html and I'd consider even that to be over what I'd like to have)
Flutter looks great, except for the fact that is yet-another-language, why???
otherwise I might put some time into it, the Dart decision is unwise to me. Life is too short to get good of so many languages(esp the eco-systems behind each)
Because some people asked when to use Flutter instead of something like React-Native.
Complex UI.
If you got a system with complex UI, like Photoshop, Maya or Logic, you want it to look the same on all platforms. Sure, it won't adhere 100% to the platforms idiosyncracies, but re-designing it forever platform isn't an option. It's too expensive and people already poured time into learning the UI and just want it to work the same when they changed platforms.
I found it very easy to get it up and running with Android, although to be fair I already had the Android emulators running from my foray into React Native. I expect getting iOS emulators running would be very hard on a non Apple platform though.
[+] [-] Illniyar|6 years ago|reply
This is flash. You can't do anything in it that fills like the web - no copy paste, right clicking causes things to happen. I don't expect games like this to have links and proper bookmarkable urls, but I doubt it'll work as expected if it did.
This is the epitome of the problem with flutter - it re-implements the UI, creating an experience that is just close enough but not good enough. And no matter how many smart people and an insane amount of resources they put into it, it'll never be good enough.
There's a reason why flash died out, and it's not only apple. It was dropped for making interactive website long before apple killed it - it doesn't work well with the web.
[+] [-] sandGorgon|6 years ago|reply
>Android development will become increasingly Kotlin-first,” Google writes in today’s announcement
https://techcrunch.com/2019/05/07/google-launches-jetpack-co...
>Google today announced the first preview of Jetpack Compose, a new open-source UI toolkit for Kotlin developers who want to use a reactive programming model similar to React Native and Vue.js.
This is massively confusing. Do we invest in Kotlin ...or do we invest in Dart ? Remember I'm talking about developing nations like India - where startups like ours invest in training college graduates . These guys can't afford 10$ courses on udacity and Coursera.
But even if it was not India, having this parallel signalling for Android based startups is very confusing. Atleast Apple was very clear about Swift .
Where will Android be in 2 years : Dart or Kotlin ?
[+] [-] pjmlp|6 years ago|reply
If you are confortable with Qt, JavaFX, Xamarin, there is hardly anything to see with Flutter, plus they are based on programming languages that you actually want to have on your CV, instead of one that was dropped from Chrome and rescued at last minute by AdWords team.
Plus, even Fuchsia is not so focused on Flutter anylonger. Android userspace is being ported to Fuchsia, and now they have a UI Framework agnostic layer, Scenic, with examples in C++ and Rust.
[+] [-] jaabe|6 years ago|reply
If you want to do multi platform development, flutter.
I think flutter will be an amazing tool for smaller teams, especially in non-tech-primary organisations. I work in the public sector of Denmark, we do in-house development, our main focus is the public services we provide though. So there is just no way we can do mobile, desktop and web without something like Flutter, or severely increased funding. The latter won’t happen, but flutter might.
[+] [-] tananaev|6 years ago|reply
[+] [-] dikei|6 years ago|reply
[+] [-] macspoofing|6 years ago|reply
Oh come on. Pick one. That's what you do for every other platform. Hell, even for web development, you'll have to make framework and transpilation decisions. This is no different.
>These guys can't afford 10$ courses on udacity and Coursera.
Yeah, too bad there are no free ways to learn programming languages on the internet.
But there is something arrogant about stating that programmers in developing nations somehow aren't capable of reasoning about tool choices for Android development.
[+] [-] skavi|6 years ago|reply
[+] [-] on_and_off|6 years ago|reply
Here is what is happening :
A couple of years ago, when the dart team failed at getting their runtime embedded into the browsers, they started searching for a problem to solve. They thought they had hit jackpot with multiplatform development. So they started working on Flutter. This is all entirely independent from the Android team at Google.
The Android Team at Google continuously improves their own framework, hence the jetpack set of libraries. One of the new libraries they have been working on and that is now public in pre-alpha stage is JetPack Compose. They have hired one of the engineers behind React and had them work inside of the Android Team on a "React like UI framework for Android".
The official direction of the platform is what the Android Team is doing.
Flutter is interesting, with all the advantages and caveats shared with other multiplatform tools like ReactNative.
[+] [-] elliotec|6 years ago|reply
[+] [-] dethac|6 years ago|reply
[+] [-] tangue|6 years ago|reply
[+] [-] zengid|6 years ago|reply
Maybe Google wants to support Dart because its built in-house, while simultaneously supporting Kotlin because it is so well loved by developers. Just a guess.
[+] [-] StreamBright|6 years ago|reply
[+] [-] seabrookmx|6 years ago|reply
I have no inside information (not a Googler) but that leads me to believe that if Fuschia becomes the next mobile OS from Google it will support both.
So same goes for Android I would assume. Why does an OS need to have a single stack? You can write desktop apps in a zillion different languages and Frameworks after all.
[+] [-] theWheez|6 years ago|reply
https://youtu.be/FV3iN4PIB5U?t=902
[+] [-] douglaswlance|6 years ago|reply
Android will be Kotlin
Flutter will be Dart.
[+] [-] fopen64|6 years ago|reply
[+] [-] vinothvino42|6 years ago|reply
[+] [-] RegicidalManiac|6 years ago|reply
[deleted]
[+] [-] zackbrown|6 years ago|reply
The internet is littered with reports of 10-100MB+ .ipa and .apk binaries coming out of simple Flutter apps for iOS + Android. Google states they can't imagine the footprint ever dropping as low as 1MB. [1]
On Web, 1MB of base runtime is a complete showstopper. Embedded applications may suffer similarly.
Does today's announcement mean Google has figured out how to fix this for Web, or are just ignoring it? Or worse — are they planning to 'boil the frog' with a sneaky transition into a world of a New Flash Player?
> 1MB of Flutter runtime got you down? Don't worry, Flutter Player now ships with Chrome.
This is possibly a very dark direction for the Web, of which Google is a powerful steward.
[1] https://github.com/flutter/flutter/issues/12456#issuecomment...
[+] [-] yesimahuman|6 years ago|reply
Quite divergent from the web platform in my opinion. The fact that they have to re-implement copy and paste (and, accessibility features!) further adds to that: https://medium.com/flutter-io/bringing-flutter-to-the-web-90...
Quite bizarre compared to the Chrome team "Use the Platform" messaging.
[+] [-] bradhoffman|6 years ago|reply
[+] [-] thijser|6 years ago|reply
[+] [-] tobiaswk|6 years ago|reply
As an example I've created an alternative to Nissan's Connect EV app. It's basically a way to control and monitor your electric vehicle from Nissan. The official app is I’m very disappointed by; it’s slow and full of wrong decisions. My alternative is called "My Leaf" and its available on Google Play and the App Store; https://play.google.com/store/apps/details?id=dk.kjeldsen.ca... https://itunes.apple.com/us/app/my-leaf-for-nissan-ev/id1436...
It's completely open source.
[+] [-] mixedCase|6 years ago|reply
I'm hopeful Dart will get better given what I've seen and what a member of the Dart team mentioned in a thread a few weeks ago, but right now it's still nothing that gets close to the ancient ML. Would be nice if they learnt a few things from Facebook or Microsoft.
[+] [-] networkimprov|6 years ago|reply
and docs: https://flutter.dev/docs
[+] [-] stefan_|6 years ago|reply
Because they make this impossible to find. I literally pieced this link together from the fricking browser screenshot.
[+] [-] mikece|6 years ago|reply
[+] [-] jillesvangurp|6 years ago|reply
1) Dart was intended as a Java like language and is inferior to Kotlin, a language they just endorsed on Android yesterday. Dart feels like a step back, not forward. The message is confusing from Google on this front. They have a huge Kotlin developer community already. Why push Dart at all?
2) World + dog is moving towards compiling Kotlin and many other languages to web assembly as well as native. Cross compiling Dart to javascript was maybe a valid choice a few years ago but not in 2019. See e.g. Rust roadmap for this year, .Net 5.0 agenda for MS, Kotlin Native, etc.
3) LLVM seems to be the toolchain of choice for this type of stuff to happen. Go and Kotlin + WASM would be very valid choices for Google to prioritize on this platform.
4) In a browser you need to be driving the DOM to look and feel like a proper web application. If you abandon that notion, you might as well grab something like QT or some other UI toolkit and use that.
My recommendation would be for Google to untangle flutter from Dart and just retire that and focus on WASM and native based runtimes only. That's going to take time and in my view it's inevitable that whatever they are pushing right now is ultimately going to be deprecated in favor of something like that.
[+] [-] andrewstuart|6 years ago|reply
I've been playing around with devices like this https://www.ebay.com.au/itm/WiFi-Display-Dongle-1080P-Wirele... and it would be fun to run Flutter engine on them.
edit - would also be fun on the 4GB RAM rk3399 http://rockchip.wikidot.com/rk3399 tv box:
https://www.ebay.com.au/itm/X99-TV-BOX-4K-UHD-RK3399-4GB-32G...
open source LInux support is here: https://github.com/rockchip-linux
[+] [-] otobrglez|6 years ago|reply
Why o why is this thing not written with/for TypeScript?
[+] [-] egeozcan|6 years ago|reply
[+] [-] ergothus|6 years ago|reply
That's not a statement on the quality of the result (though some of those examples do indicate concerns), but if I'm not alone in avoiding a product that tackles a real industry need because of the source, that's a bad sign.
[+] [-] ehsankia|6 years ago|reply
At the end of day though, I look at if Google itself is using it extensively, because that's when a library will have the best support/longevity.
[+] [-] mful|6 years ago|reply
Open source software lives and dies with adoption. Starting off with a (paid) development team, marketing team, and large initial user base (google internal) puts a piece of software in a good starting position, but doesn’t guarantee success.
Disclaimer: I work at Google, though not in a Flutter-related role.
[+] [-] mevile|6 years ago|reply
[+] [-] s_y_n_t_a_x|6 years ago|reply
For the record I believe Flutter is here to stay, but I don't believe for a second they'll keep the "native look" around for anything other than Material design. It's a marketing gimmick to get their foot in the door and then transition everyone over to their own design.
[+] [-] pier25|6 years ago|reply
They will need to reimplement tons of stuff that are already included in the browsers and ship all that code with the application.
[+] [-] xkapastel|6 years ago|reply
> You can also publish Flutter apps for Chrome OS to the Play Store
Do they mean, you can publish an Android app and then run it with Chrome OS's support for that? How else are you supposed to run Flutter apps on Chrome OS? The only other way I see is "web" unless I'm missing something.
[+] [-] wstrange|6 years ago|reply
[+] [-] gjmacd|6 years ago|reply
[+] [-] michaelchisari|6 years ago|reply
You can honestly pick it up in a weekend, there's nothing particularly new or groundbreaking.
[+] [-] cztomsik|6 years ago|reply
BTW: I'm working on subset of react-native for desktop (not yet ready) https://github.com/cztomsik/stain/tree/master/src
[+] [-] ausjke|6 years ago|reply
otherwise I might put some time into it, the Dart decision is unwise to me. Life is too short to get good of so many languages(esp the eco-systems behind each)
[+] [-] otobrglez|6 years ago|reply
Why o why is this not written in a way to support TypeScript?
[+] [-] k__|6 years ago|reply
Complex UI.
If you got a system with complex UI, like Photoshop, Maya or Logic, you want it to look the same on all platforms. Sure, it won't adhere 100% to the platforms idiosyncracies, but re-designing it forever platform isn't an option. It's too expensive and people already poured time into learning the UI and just want it to work the same when they changed platforms.
[+] [-] _eric|6 years ago|reply
[+] [-] JohnTHaller|6 years ago|reply
[+] [-] ericathegreat|6 years ago|reply