Two Months of #FlutterGoodNewsWednesday
New apps and plugins, free training and tooling: oh my!
When we realized that this was going to be a very different spring without the usual events and connection points, we decided to find a new way to share our various announcements with you. A few of us put our heads together, and #FlutterGoodNewsWednesday was born. Each week for the last two months, we’ve shared something new that we hope made you smile. This week, we thought we’d follow up on some of the announcements we’ve made so far and share some further updates.
Free introductory training for Flutter developers
We kicked things off with an announcement of a free 10+ hour introductory course covering the basics of Flutter development, created in partnership with Angela Yu of the App Brewery. We’re delighted to see that over 75,000 of you have signed up for the course, with nearly 5,000 completions already (my thirteen year-old son is one of them!) For those of you on the course, hopefully you’ve discovered the Discord group where Very Good Ventures and a team of volunteers have been providing concierge support. We’ve been learning from you too — in particular, understanding where some of the early pitfalls are to getting started; we’ll use this knowledge to improve the documentation and the product itself.
If you’ve almost completed this course, you might be wondering “what next”? We have a few recommendations for you that cover intermediate topics:
- Part 2 of Angela’s course covers calling web services and Firebase integration, more advanced widgets, state management, and animation.
- Nick Manning’s Tourism & Co course puts what you learn in Angela’s course into action with a real, working app example, including unit and integration testing, asynchronous web service invocation, JSON APIs and custom views.
- Similarly, Andrea Bizotto’s REST API crash course builds on a popular API, showing how to call REST-based web services, cache returned data, and handle service degradation issues.
CodePen Flutter support
We also shared about CodePen’s adoption of Flutter. To date we’ve seen nearly 5,000 Flutter pens created by designers and developers from around the world. Some of you have boggled our minds with what you’ve created. Here are a few favorites that crossed our radar in the last weeks:
- Retro Boy Color (by Mariano Zorrilla)
- Netflix Logo in Flutter (by Dominik Roszkowski)
- Flutter Space Program (by Dominik Roszkowski)
- Draggable C curve (by Paul Thomas)
- Liquid Polygon (by Robert Felker)
- Long shadow animations (by Jonathan Monga)
- Trigonometric Flutter (by Deven Joshi)
- Color Test (by Chiziaruhoma Ogbonda)
Keep exploring with CodePen: we have a challenge coming up for you!
For our third #FlutterGoodNewsWednesday blog post, we shared some statistics about Flutter adoption, with two million developers now using Flutter. There are now more developers using Flutter on a typical day than over the course of an entire week this time last year.
At the time we shared that we’d seen about 50,000 apps uploaded to the Play Store. The pace of growth continues to accelerate, and we’re delighted to share that a further 10,000 Flutter apps have been uploaded in the month since that post. This level of momentum inspires us: thank you for your support!
A great example of one of those new apps is from the New York Times games team, who shared some of their experiences with Flutter at the Google I/O ’19 event. Their Spelling Bee game is now rolling out to the iOS and Android stores as part of their crossword app: built entirely with Flutter, this addictive word game challenges you to make words out of a honeycomb of letters.
Since this blog post came out, we’ve also released the results of our Q1 developer survey, which over 6,000 of you responded to. 94.5% of you say that you’re satisfied or very satisfied with Flutter, but we’re also learning more about areas of difficulty. One challenge reported in a previous survey was animation, and we’ve subsequently added a series of videos and more detailed documentation targeting that subsystem in greater detail.
Web Progress Update
One area we’ve been working hard on over the last few months has been Flutter support for targeting web output. As we reported in our web update, we are particularly focused on improving both performance and conformance. In the post we announced that Flutter now supports Progressive Web Applications, and in the intervening weeks we’ve been refining this feature substantially with more sophisticated service worker caching to improve first-load performance.
In the last week, we’ve also begun a series of articles talking about tips and tricks for maximizing performance of Flutter apps that run on the web, based on learnings from optimizing the Flutter Gallery. Keep following this blog channel for more articles on this subject in the coming weeks!
Flutter 1.17 and Dart 2.8
Perhaps the biggest news so far with this slew of announcements was the release of Flutter 1.17, including Dart 2.8. Flutter 1.17 offers performance and memory improvements on all platforms, but you’ll see the biggest boosts on iOS, with the adoption of Apple’s Metal subsystem for graphics rendering. For Android too, you’ll see improvements, particularly with the new optional fast start debugging mode, which offers a 3x speed boost with no changes to your code.
Beyond the new features mentioned in the blog post, one feature that some of you have discovered is the updated error display on release mode builds. For release mode builds only, we’ve disabled the “red screen of death” that appears when one of your widgets is incorrectly configured. Many of you told us you’d like to see a less… prominent message in the rare situation that you ship an application with a bug, and hopefully this changed default behavior is a better alternative. (For those of you who want something else, you can use the ErrorWidget.builder property to further customize this.)
It’s exciting to see that, as of the time of writing, two-thirds of you have already upgraded to 1.17. We’d encourage the rest of you to upgrade at your earliest convenience to take advantage of all that we’ve got to offer in this release!
In the intervening period, we’ve shipped one hotfix release for Flutter 1.17, and we plan further updates as required to improve stability and quality. You can find out which bug fixes are included in each hotfix release as well as learn how to ensure that you’re running the latest stable version by going to the relevant wiki page.
Adobe XD Plugin Preview Availability
Another major piece of news for designers is the first public preview of Adobe XD support for Flutter, published by Adobe themselves.
This week, Adobe released an update to the plugin that fixes a few opacity-related export bugs and aggressively combines shapes for cleaner Dart code. In addition, Adobe shipped an XD update last week that includes new APIs for access to responsive layout. Once this is rolled out more broadly, stay tuned for a further update to the XD to Flutter plugin in the next few weeks that will improve flexibility of the generated Dart code.
Plugins and Flutter Favorites
Most recently, last week we announced our plans to take many of the Flutter team’s plugins to 1.0, in addition to a new set of Flutter Favorites that includes Sign in with Apple.
But it’s always worth calling out some of the unsung heroes. With over 10,000 packages, it’s tough to recognize them all, but this week we’re going to highlight an informal top ten list of cool packages that aren’t (yet) Flutter Favorites but are nevertheless worthy of attention:
- fl_chart offers beautiful business charts, including line and bar charts, scatter plots, and pie charts.
- flutter_blurhash provides quick placeholders for images that may take time to download.
- font_awesome_flutter offers thousands of icons for easy inclusion in your Flutter app.
- fab_circular_menu provides an attractive popup menu.
- flutter_staggered_animations offers beautiful load animations for listviews, gridviews and columns.
- device_preview constrains your app to a custom device shell, allowing you, for example, to preview an iPhone output from macOS.
- smooth_page_indicator allows you to transition through a carousel of infocards.
- flame provides a small Flutter game engine with a large set of tutorials.
- flutter_launcher_icons is a popular CLI tool which greatly simplifies the task of updating your Flutter app’s launcher icon.
- smooth_star_rating offers a compact control for selecting a star rating.
By the way, if you’re writing a package, make sure you haven’t missed our article on tips and tricks for developing modern plugins. And please fill out our quarterly survey, which has a module focused on plugin development.
And last, but not least — we recently announced Flutter Day, which will take place in just a few weeks time on June 25th. We’ll have three technical sessions, #AskFlutter, and a set of new and updated codelabs to work through, getting you ready for the community-led #Hack20 hackathon event that kicks off in the weekend that follows.
More Good News To Come
We’re not done: we have a number of announcements still in the pipeline as part of #FlutterGoodNewsWednesday. So keep tuning in, and if you have some good news of your own to share with us, please don’t hesitate to do so.
You can reach us at any time on Twitter at @flutterdev. We’d love to hear from you!