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.