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

(disclaimer: I work on the Flutter team.)

You can use Flutter today to write an app that runs on iOS and Android. :)




How is it for writing cross-platform desktop apps? There seems to be a dissapointing trend of UI toolkits only going for IOS and Android, leaving out the still very essential need of toolkits for cross-platform desktop apps in languages other than c++.


Is there any Google apps made using Flutter at the moment?


How is it in turns of speed?

On one hand, the website says that it's compiled to native code (so it can be same speed/faster than Java), but on the other hand, it's based on a soft-type language, which makes optimization difficult (even with V8, JS is still slower than native code).

Side question:

I understand that Dart was soft-typed because it was supposed to replace/compile to JS, but what advantage does soft-types have against "implied-types" (like auto or go's := ) combined with operator overloading (to allow string+int, for example)?


Even the original, untyped, Dart was designed to be easier to optimize that JavaScript (e.g. it's class based, not prototype based, so the runtime doesn't have t work as much to optimize object access).

Recently Dart has added a strong mode (https://github.com/dart-archive/dev_compiler/blob/master/STR..., http://news.dartlang.org/2017/01/sound-dart-and-strong-mode....).

One of the reasons for strong mode is to enable better optimizations (https://www.dartlang.org/guides/language/sound-faq#why-stron...).


I'm going to save these links for the next time I get downvoted for saying that js object system and dynamic typing suck for performance :).

When JS performance threads come up I always mention that JS will never be as fast as Go/Java. Some people have a tantrum when I explain these issues. The sources I usually cite are dense and people just continue to downvote without reading them.


You might want to watch this talk on AOT compiling Dart, I'll link right to the perf benchmarks: https://youtu.be/lqE4u8s8Iik?t=9m28s

I think it's a work in progress, but main benefit at least at the time was faster startup.


AOT compiling was initially all about iOS (where JIT isn't allowed), but you can now do that everywhere with "application snapshots" which were recently added with Dart 1.21.

Unlike the script snapshots, application snapshots also include CPU-specific native code in addition to the serialized token stream of the source code.

So, you don't just skip the parsing stage, you also skip the warmup phase. Your application starts instantly and it runs at full speed from the get-go.

https://github.com/dart-lang/sdk/wiki/Snapshots


I tried out their demo apps on Android and they were pretty fast but there were still some hiccups. It's definitely not as fast as good Java apps but it is pretty close. Also the animations are on the level of iOS apps - far superior to Java Android apps.


Dart has strong mode (this is enabled by default for its Angular2 projects) - Check this talk on sound Dart for more details https://www.youtube.com/watch?v=DKG5CMyol9U


Dart supports strong typing.


read on the flutter site that text input still wasn't implemented, so i'll probably wait some more.

I didn't find a doc on how low level is this framework going. Or to put it differently , where does it plug itself on the iOS stack ? opengl ? calayer ? uiview ? webview ? etc...


I was just looking into this two days later..

It's fairly low level. It uses Skia, which is a 2d rendering engine Google bought 12 years ago that powers Google Chome / ChromeOS, Android, Firefox and Firefox OS. Skia is built on top of OpenGL, but they've been working on a Vulkan backend that is close to feature parity.

This seems to be how they get the high performance animations. It also explains how they are able to do cross compatibility between devices (You really only need C++ and OpenGL).

Here's more info from their FAQ: https://flutter.io/faq/#what-technology-is-flutter-built-wit...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: