Your opinion matters! Please fill in the InfoQ Readers’ Survey!

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

| by Sergio De Simone Follow 21 Followers on Dec 21, 2015. Estimated reading time: 1 minute |

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.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Why is this news? by Shai Almog

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.

Google flex sdk by shao junxiong

The architecture reminds me of adobe flex, it is nothing like react native. it cannot offer native look and feel, i cannot image a material designed app runs on my iPhone.

Re: Why is this news? by David Šimonek

Generally agree but not on dartlang. To me, dart language & ecosystem isn't obscure by any mean. Familiar C-family syntax, pure object oriented, optional types, functional, readable but concise, modular, excellent async support. Ecosystem is ok as well - built-in package manager, good VM, broad set of core libraries, transpills to reasonably sized and fast JS for browser apps.

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.

Re: Why is this news? by Shai Almog

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.

Re: Why is this news? by David Šimonek

I can't comment on iOS / xcode, Android tools worked more or less ok for me for writing relatively simple app. Sure there are problems, but definitely I wouldn't call it "disaster".

Anyway, it's good for developers to have multiple choices of cross platform mobile tools and is still in early phase, so we will see.

Personally I'm interested in flutter because of dart, which I consider better then java for the job (not even mentioning js).

Re: Why is this news? by Shai Almog

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.

Re: Why is this news? by Andrew Mezoni

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?

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

7 Discuss