Google engineers have built a UI framework to help developers build cross-platform 2D mobile apps.

Called Flutter, the open source project is not an official Google technology at this time. Described as being in its early stages on one GitHub page, the project supports development of both iOS or Android apps, according to an online FAQ.

"Flutter is different than most other options for building cross-platform mobile apps because Flutter uses neither WebView nor the OEM widgets that shipped with the device," the site says. "Instead, Flutter uses its own high-performance rendering engine to draw widgets."

Previously codenamed Sky, the project features a mobile-first 2D rendering engine that supports text; a functional-reactive framework; a set of Material Design widgets, libraries, and tools; and a plug-in for the Atom text editor. Developers also can use their own widgets. Flutter is not part of the gesture recognition startup of the same name that Google acquired in 2013.

Flutter is built with the C, C++, and Dart programming languages, the Skia 2D rendering engine, and Blink's text rendering system. Dart, Google's JavaScript rival, was selected for the project because it supports simple scripts, scales to full-featured apps, and offers familiarity.

For Android, C/C++ code is compiled with the Android NDK (Native Development Kit); the majority of the framework and application code runs on the Dart VM, which generates JIT-compiled optimized native code on the device. On iOS, C/C++ code is compiled with LLVM; Dart code is AOT-compiled into native code. Apps use a native instruction set. There's no Web version of Flutter, though, and there's no dependency injection framework for it now, either.