With Flutter, Google Aims Dart to Mobile App Cross-Development

Flutter is a new open-source framework built by Google that aims to enable cross-platform development using a single Dart codebase on iOS and Android. It aims to provide high performance and 60fps, jitter-free experiences on both platforms.

According to the Flutter team, the choice of Dart as a cross-platform language is explained with Dart being a scalable language that can be used for simple scripts as well as full-featured apps, and with its familiarity with JavaScript, Java, and C#. Another reason that led them to choose Dart was the performance of the Dart VM, and Dart tools such as Observatory, a real-time VM profiler, debugger, and introspection tool, and snapshots, a binary form of the app that’s quick to load.

Flutter is built in C and C++ and provides a 2D rendering engine, a React-inspired functional-reactive framework, and a set of Material Design widgets. On Android, the C/C++ code is compiled with Android’s NDK, while the most part of the framework and app code in Dart runs on the Dart VM, which generates JIT-compiled optimized native code. On iOS, on the other hand, Flutter’s C/C++ code is compiled with LLVM, and Dart code is compiled ahead-of-time into native code.

It is worth noting that while Flutter on Android supports updates over-the-network (via HTTP), without going through the Play Store, this is not an option for iOS and the App Store.

An important feature of Flutter is being integrated with Mojo’ IPC system, which enables lightweight access to native services and APIs for sensors and local storage and supports interoperation with the device platform’s default programming language without requiring the availability of bindings or large wrapping class libraries.

Flutter also provides an Atom plugin that is still a work in progress and supports syntax highlighting, code completion, refactoring, app templates, etc.

Flutter apps run on Android 4.1.x or newer, and iOS 8 or newer, but is not ready yet for production. It can be found on GitHub.

This was announced a couple of months ago and wasn't exactly groundbreaking in any way. There are *many* open source cross platform mobile solutions far more functional than Flutter that aren't saddled with an obscure language that no one uses. E.g. Codename One, React Native etc.

The only reason people keep reporting it is the Google brand in the title of the project. The only value that brand really gives is in the likelyhood that this will be spring cleaned as Google has very low commitment threshold and I'm saying this as a former user of App Engine, GWT, Google Code, Reader etc.

Dartlang adoption seems to be huge inside google, but yes, it's small outside, which is sad, given how productive it is. I agree that google earned bad reputation by "abandoning" couple of projects and maybe dart is paying for that.

The problem with running within Google is that you can say the same thing about Android. Android is so fragmented and messy, its tooling even after the migration to studio is still a disaster. E.g. try to CPU profile an app with Java/Android then compare that to the experience on iOS with xcode.

The problem with Dart is that if the tooling for Java/Android aren't there, I can only imagine how bad the dart tooling will be... The approach taken is also over ambitious direct-to-native unlike Codename One where the bytecode is translated to C and thus native tooling on iOS can be used.

I was referring to the profiling tools as a disaster. Android studio is a HUGE improvement over the old Eclipse toolchain. Still buggy and "odd" but a quantum leap no less.

The distance between Java 8 and Dart isn't huge. If we were talking Java 7 pre-lambdas maybe. But Java 8 isn't that far off in terms of syntax. Using a commonly used language that has far more traction, support etc. is HUGELY valuable. The ability to get proper help of stackoverflow, hire thru standard channels etc. is invaluable. Add to that the tooling which is at a different level for Java and still outclasses anything out there... Any minor language differences become mute.

If you were mentioning a ducktyped functional language then that's a bit of a distance to skip but Java 8 vs. Dart shouldn't be judged based on the language alone but based on the entire stack.

Programming language (earlier this software was called more loudly as the web platform) which does not have a roadmap (which means that it does not have any plans on the future) can be called as a well-planned?

If something is not well-planned then how we can call it as perspective?

If something does not have a perspective then how we can use it without the probability of do not harm to yourself?

InfoQ Weekly Newsletter

Join a community of over 250 K senior developers by signing up for our newsletter. If you are based in the EEA, please contact us so we can provide you with the protections afforded to you under EEA protection laws.

Is your profile up-to-date? Please take a moment to review and update.

Email Address

Note: If updating/changing your email, a validation request will be sent

Company name:

Keep current company name

Update Company name to:

Company role:

Keep current company role

Update company role to:

Company size:

Keep current company Size

Update company size to:

Country/Zone:

Keep current country/zone

Update country/zone to:

State/Province/Region:

Keep current state/province/region

Update state/province/region to:

Subscribe to our newsletter?

Subscribe to our architect newsletter?

Subscribe to our industry email notices?

By subscribing to this email, we may send you content based on your previous topic interests. See our privacy notice for details.

You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.

We notice you're using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.