Live data from Hacker News

Flutter Release Preview 2

developers.googleblog.com

71–80 of 123 posts

Re: Flutter Release Preview 2

#71

Why do they want me to learn a new language to make use of a gui runtime+lib? Seriously. What makes that language that revolutionary so that nothing else, no other tried & tested & loathed language, could have been used instead? I don't see it.

We get this a lot. To the point that my colleague wrote this: https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf

It's not easy to explain in a HN comment. Technical decisions like these never are. In this particular case, there is no single "Dart can do X and nothing else can". That's not true for any feature. It's the combination that mattered.

All in all, Dart was a really, really, really good choice. Not from a marketing perspective, obviously, but that's not everything.

Re: Flutter Release Preview 2

#72

Flutter might be a cool project, but what's the status of integrating native controls? Mobile apps are not only CRUD clients and do lots of stuff that needs tight OS integration. The last time I checked, flutter couldn't do Maps, GeoLocations, AR (ArKit/ARCore), Encryption, audio/video, file storage etc activities that are outside the normal purview of a CRUD TableView App. Since flutter team seems to be active here,…

(Disclosure: I'm the Eng. Mgr for the Flutter project at Google.)

In general Flutter takes the position that Flutter should not limit your choices and your apps should be able to do anything the phone can do. Flutter apps are just iOS or Android apps, you can always open up the ios or android sub-folders and write as much Obj-C/Swift or Java/Kotlin code as you like.

Flutter's core engine/framework are all about providing portable UI, and leave everything else up to "plugins" (the opposite of say the Web were everything is baked into the core platform). Lots of plugins exist today, but there are always more to write: https://pub.dartlang.org/flutter https://flutter.io/developing-packages/ https://flutter.io/using-packages/

Responses to your specific asks:

Showing arbitrary native views inline with other Flutter content is actively in progress: https://github.com/flutter/flutter/issues/19030 (already possible to show views to the side of/on-top-of a FlutterView of course).

Full inline Google Maps is similarly in progress: https://github.com/flutter/flutter/issues/73

There are several community authored plugins for geolocation e.g. https://pub.dartlang.org/packages/geolocator.

AR is not something I've seen any work on yet, but it's always possible to throw up a full-screen ARKit/ARCore view using ObjC/Java your otherwise-Flutter-built app.

Flutter includes BoringSSL as part of it's runtime, some encryption APIs are exposed, there is probably more for us to do here. There is also pure-Dart crypto, e.g. https://pub.dartlang.org/packages/crypto and of course always possible to write your own wrappers around iOS/Android APIs (which someone may already have done too).

Audio/Video plugins exist today, e.g. https://pub.dartlang.org/packages/video_player

Some storage plugins exist (e.g. https://pub.dartlang.org/packages/sqflite), definitely more to write here.

Always more to do. If there is something specific you believe my team should help provide, please let us know: flutter.io/support. Hope that helps!

Re: Flutter Release Preview 2

#73
post #58

There is also an effort to bring flutter on the desktop. I dabbled (briefly) in it, got flutter app running on windows + linux, though certain integration factors (smooth window resizing, stability, mouse wheel support, etc.) were not there yet. For some of them (mouse wheel, keyboard, tabbing) there might be more work needed (and maybe not seen as important), but it could bring a real "electron" killer, where my sla…

(Disclosure: I'm the Eng. Mgr for the Flutter project at Google.)

I've seen Flutter run in lots of places, including desktops. Desktop isn't something my team is actively developing at this time (we're very focused on making mobile awesome), but we're definitely not stopping others from doing so. There is even another team at Google experimenting with the idea:

https://github.com/google/flutter-desktop-embedding

Re: Flutter Release Preview 2

#74
post #8

Earlier quoted context omitted.

Google has abandoned products, but has it abandoned technologies?

Was Wave a product or a technology? Both, I guess. That said, Wave doesn't seem comparable. Maybe GWT? If so, I'd be perfectly happy if Flutter has the lifespan of GWT, which is some 12 years old now and still viable (if perhaps a little crusty). 12 years is a phenomenal run for a piece of frontend tech.

UIKit has been pretty much been the same thing for about 10+ years.

There are additions and tweaks here and there, but you can still make table views inside navigation controllers inside tab bar controllers using frame based layout with near identical code you would use in iOS 2.

Re: Flutter Release Preview 2

#75

Is Flutter using native controls here, or are they drawing a copy of them by hand? I didn’t see a scroll bar in that demo, so I’m not sure. The rest of the stuff looked pretty good, though of course I’d need to actually physically try it to give it a final opinion rather than just rely on a GIF of someone interacting with it.

Flutter takes full control of the rendering pipeline directly on both platforms - all the controls your seeing are written in Dart for Flutter, but designed to mimic the best of what the platform offers. In particular, this means that if you're running an Android app on an older device, it can still show the latest Material design widgets (and similarly for iOS, showing the latest Cupertino styled widgets, or Materia…

> Flutter takes full control of the rendering pipeline directly on both platforms - all the controls your seeing are written in Dart for Flutter, but designed to mimic the best of what the platform offers.

You see, this is rarely what I want. I’ve seen time and time again people trying to emulate controls and it just doesn’t work. Apple has a whole team that’s spent years making the iOS UI look just the way it is, and I don’t trust any other team to be able to copy this without serious effort. Sure, it might look pretty similar, but something always doesn’t work: the control behaves differently, isn’t accessible, animates incorrectly, etc.

Re: Flutter Release Preview 2

#76

Why do they want me to learn a new language to make use of a gui runtime+lib? Seriously. What makes that language that revolutionary so that nothing else, no other tried & tested & loathed language, could have been used instead? I don't see it.

Hi there, Dart is a really versatile language for our needs: it's what powers stateful Hot Reload, for instance, because it has a powerful VM and JIT compiler that work really well for debug purposes, but also compiles natively to ARM code that runs on both iOS and Android. That combination is pretty compelling, and also hard to find in other languages. Dart also compiles to JavaScript, so you can use the same business logic for your web apps.

Honestly, the language itself is easy to learn if you come from a managed code background -- as ever, it's the domain knowledge that takes time to build (e.g. the libraries and framework of components and classes that any complex application takes advantage of).

Re: Flutter Release Preview 2

#77

I spent quite a few months comparing this with React Native. Flutter has done cross-platform right. And it's somewhat sad and counter-intuitive but pretending to be native is a lot better than actually being native. iOS and Android are just too dissimilar in areas to provide a common layer on top of. In particular routing which is a mess with React Native. Flutter also has the best development experience period. Noth…

Thanks for the kind comments! I'm one of the product managers on the Flutter team, so you're welcome to apply suitable skepticism to anything I might say in response to your last point, but I will say that Flutter is already being used in many strategic projects here at Google, as well as for many customer apps, some of which already have tens of millions of users. For example, Alibaba are using it to build one of th…

Add null type annotation support to the big missing feature list. At this point every major mobile development language has nullability support, including plain old java.

I think nullability annotations have been the one major feature that have reduced crashes in the mobile apps I've worked on, and I've worked on some huge ones.

Re: Flutter Release Preview 2

#78

Why do they want me to learn a new language to make use of a gui runtime+lib? Seriously. What makes that language that revolutionary so that nothing else, no other tried & tested & loathed language, could have been used instead? I don't see it.

I agree that Flutter would have been better off using a popular language like Swift or Kotlin.

However, it really isn't a difficult language to pick up. I ported a Java app to Flutter and it was mostly just a case of copying the class files and fixing the syntax errors.

Re: Flutter Release Preview 2

#79

I spent quite a few months comparing this with React Native. Flutter has done cross-platform right. And it's somewhat sad and counter-intuitive but pretending to be native is a lot better than actually being native. iOS and Android are just too dissimilar in areas to provide a common layer on top of. In particular routing which is a mess with React Native. Flutter also has the best development experience period. Noth…

I still don't see the selling point over Qt, Xamarin or using C++ with native views.

React Native is not something that I would even consider, for that I would rather do Web apps/PWAs.

Re: Flutter Release Preview 2

#80
post #63

Earlier quoted context omitted.

> Yes, one's entitled to that opinion, but it's slightly misplaced sentiment. How do you figure? How long have you been using/developing with Google products? Microsoft had the same reputation a few years ago. They learned the hard way what happens when you piss off developers. They are now making great strides to right those wrongs. What is Google doing to assuage those fears? The way they have managed Android itsel…

Google Maps: 5 years Android: 3-4 years GCP: gRPC: 2 years (Kotlin, Python, Node, Rust, Scala) From this and your other reply, you seem to have been burnt by something in Android. The mobile market for which I develop products is made up of over 80% Android. Whether Sundar Pichai decides to kill Android tomorrow or now, I'm not going to let that get in the way of me making a living from a platform that currently exis…

Android APIs get partially rebooted at every Google IO, and the NDK is what it is, no need to add extra immature tooling into the mix, which isn't even officially endorsed by the Android team.

In that regard one is safer (CV) using Qt or Xamarin, given JavaScript, C++, C# and F#.

Post reply on HN