Google launches Flutter 1.2 and Dart DevTools, a web-based suite of programming tools
Flutter is one of the newest additions to the arsenal for app developers. It’s a UI framework for building beautiful, fluid, and interactive cross-platform native apps on iOS and Android using the Dart language. The first stable release of the cross-platform development toolkit was released just three months ago. Today, Google announced the first feature updated for Flutter, Flutter 1.2, at Mobile World Congress, along with a new web-based suite of programming tools called Dart DevTools.
One of the biggest advantages of Flutter compared to its alternatives is the development community. Flutter is open source so you can see how it’s built and make suggestions to contribute to its development. Google is constantly working on improving the stability and performance of the framework, while also adding a handful of interesting development tools.
Updated widget sets
The Flutter team has worked hard to pixel-perfect the components of the design. They update both Material and Cupertino widget sets. On the iOS side, they added floating cursor support while editing the text. The team explains that they made sure to take into account all the minor details of how animation and painting components should be rendered on the system. A Robert Penner-inspired set of motion and animation functions are also present in Flutter 1.2. Apparently, the team has also worked on prepping the upcoming desktop support of keyboard events and mouse hover support.
The Flutter team have also been hard at work on adding new plug-ins to make the framework more complete. The biggest addition is the support of in-app purchases. Starting with Flutter 1.2, all developers will be able to integrate IAP purchases into their applications. Bug fixes for the video player, WebView, and maps are also present. Android App Bundles have also been introduced, thanks to the pull request from the developer at Intuit. All of these additional features will help you build perfect Flutter apps without depending on other frameworks and SDKs.
Dart 2.2 SDK
Dart 2.2 has also been introduced in Flutter 1.2. The newest version of the programming language has brought in tons of performance improvements and new language support.
The details of the updated version of Dart aren’t available just yet. We’ll make sure to let you know when there are more details available. The Dart 2.2 SDK has now been officially announced. It includes improved AOT compiler performance and a couple of new features.
According to the release blog post, while Dart 2.1 introduced performance optimizations for both JIT (just-in-time) and AOT (ahead-of-time) compiled code, Dart 2.2 mainly focuses on the AOT. They promise 11-16% more performance at the cost of a 1% increase in the code size. Reducing the overhead of static calls also helps make Flutter apps more intuitive. Dart 2.2 also includes updated literal language support for Maps, Lists, and Sets. This addition should help you write a more attractive code. Dart Language Specification has also been updated to accompany the Dart 2.2 release.
There are more to the update. You can see all the relevant details in the Medium blog post. Dart 2.2 is included in Flutter 1.2 as Dart 2.1.2, so don’t be confused if you stumble upon a slightly different version number.
There are many ways of writing in Flutter. You can use officially supported Android Studio and Visual Studio Code, or really any other IDE if you’re comfortable with installing a few plugins here and there. The development team over at Google have been working on bringing yet another official solution for working with Flutter. Dart DevTools is a web-based programming suite. It aims to ease the pain of debugging and analyzing the application code. As you may already know, Flutter apps are written in Dart programming language, so Dart DevTools supports both platforms. The suite will also be heavily integrated with both Android Studio and Visual Studio Code for all your writing needs.
Dart DevTools has a couple of interesting new features. None of them are exactly groundbreaking or innovative, but they help you get the job done much more easily. For starters, the suite gives you an ability to inspect the widgets to explore the hierarchy of all the elements in your application. Think of something like ‘inspect element’ browser tool for an IDE. This feature was first revealed in DartConf 2018. Here’s the reference GIF of the widget inspector running in Android Studio. The web version of this feature will look slightly different.
The next feature of the web-based programming suite is the timeline view. It will help developers analyze and diagnose their applications frame-by-frame. This will give them a benefit of identifying nasty bugs and graphical glitches. Then comes the source-level debugger. It has all the required features like breakpoints and timestamps to help you track down the issues in your code in a timely, efficient way. There is also a logging view, which logs every activity from your application, whether it be a network/framework-level or just a garbage collection event.
These are just the current features of Dart DevTools. Flutter’s development team promises that they’ll regularly update the suite with more features to make it a “first-class unified tool for Flutter developers.” The team clearly documents their 2019 roadmap in the wiki, which gives all of us a glimpse of what is ahead. They also disclosed that they’re going to focus more on “Hummingbird,” which is a project that promises to run Flutter on the web. The first technical preview of the platform should be available in the coming months.
Google also announced an online contest called Flutter Create, which gives developers a chance to win a top-specced 14-core iMac Pro with 128 GB of RAM. All you have to do is make a Flutter app with the code size of less than 5KB, go to the Flutter Create website, and submit your app. What I think is cooler than an iMac Pro, is that Google will announce the winner at the Google I/O event in May. I wish every one of you good luck.