Are you writing code for ambient computing? No? Don't even know? Ch-uh. Google's 'write once, run anywhere' Flutter is all over it
Techies lay out modest ambition to provide development framework for everything. Where have we heard that before?
Google has translated Java's "write once, run anywhere" promise into the words "ambient computing," which it has begun using to explain Flutter's reason for being.
On Wednesday, the Flutter development team, in conjunction with a Brooklyn, New York-based gathering dubbed Flutter Interact, pitched the programming toolkit as the solution for creating a particular sort of app that runs on any platform. Ambient computing, the devs said, is the core of the company's vision for Flutter.
Think smart homes and office buildings, display screens with voice assistants, anything powered by a microprocessor and typically internet connected that's just around you in your environment: technology that you use without realizing you're using it, that's ambient computing. We used to call it embedded electronics.
"With Flutter, instead of being forced to start your app development by asking 'which device am I targeting?', we want you to be able to begin by focusing on what you want to build," the unnamed collective said in a blog post. "In this multi-device, multi-platform world, Flutter aims to provide a framework and tooling for creating user experiences without compromise on any device or form factor."
One SDK to serve them all then. That's the modest aim, though those developing with Flutter at this point still have to make compromises, like accepting that it isn't the best choice for game development at the moment and that it doesn't yet have a way to push code updates to its apps directly.
Flutter is the Chocolate Factory's open-source, post-platform, interface development framework for creating applications that run on the web, mobile devices, desktop computers, and other chip-bearing kit with graphic interfaces like so-called smart televisions. And it's this last segment, the appliance and IoT market, that's a new addition to the Flutter conquest plan, at least in terms of public messaging.
Work has been underway for a while on Wear OS and the Bitcode support necessary to write for Apple's watchOS and tvOS. But it's not there yet.
You could call Flutter cross-platform, but its less about bridging platform gaps than building something that replicates platform-specific interface elements. Rather than hooking into native platform plumbing to invoke native UI components on the device where it's running, it handles the graphics itself using the Skia graphics library, which also powers Google's nascent Fuchsia operating system.
Google throws new version of Dart at the desktop, will be hoping it sticks with app devsREAD MORE
To fulfill Flutter's growing ambition, Google announced Flutter 1.12, which along with many bug fixes adds support for iOS 13, including dark mode, and introduces a feature in Android Studio to make embedding Flutter modules in Android or iOS apps easier.
Flutter for the web, previously called Hummingbird, has graduated from technical preview to beta, while macOS desktop support has achieved alpha status.
The Dart programming language meanwhile reached v2.7, which includes a new language feature called extension methods and support for null safety, among other things.
Extension methods let you do things like parse integers in a string, something that otherwise wouldn't be allowed in Dart because you'd be mixing different data types. Null safety is a way to prevent errors when variables have a null value.
A related improvement is the revised DartPad, an online workspace that can now run Flutter code and display UI elements, in addition to its previous code editing capabilities.
Flutter has a lot to recommend it, though it's very much tool-dependent. Writing Flutter/Dart code without autocompletion and extension support from Android Studio or Visual Studio Code is a painful exercise. But for those already comfortable with React, Flutter's widget-centric app architecture should at least feel familiar. ®