← Back to blog

Zapp! December 22 Update

Elliot Hesp


Mike Diarmid


5th December, 2022

Need a custom tool? Invertase can help

Tired of investing in off-the-shelf software that doesn't quite fit your business? Invertase can build solutions tailored to your exact needs. Tell us what you're looking for here and we'll be in touch.

It’s been just over 3 months since we announced the Zapp! public beta, and since then Zapp! has been a great success; being used for live coding competitions during Flutter Vikings, running online competitions, workshops and even embedded in popular blog posts. We’ve had some great feedback and bug reporting too!

What’s new?

So, what’s new with Zapp!?

Flutter 3.3.9

Whilst Zapp! is still in beta, we’re still figuring out some of the complexities which come with running everything-Dart in a browser. One of those complexities is handling Flutter updates – things change, meaning we need to adapt how Zapp! works internally alongside the Flutter releases. With the December update, Zapp! is now running on Flutter 3.3.9.

In the future, we’ll aim for more regular releases, however initially we want to keep pressing forwards with features and bug fixes, with Flutter releases being a secondary priority.

Compile time improvements

Ensuring Zapp! is fast is a top priority for us. With Zapp! running Dart compiler and analyzer completely in your browser we’re always looking for ways to improve the performance of these tools. In this release, we’ve made some drastic improvements to our browser based Dart compiler:

ChipFirst run (old)First Run (new)Secondary run (old) Secondary run (new)
Apple Sillicon2.9s1.2s1047ms116ms
All values are averages taken across a number of machines and runs. A secondary run is after the compiler has already been used once in the current browser session, thereby in a warmed up state.

Further improvements to the speed of running your Zapp! project are planned.

Canvaskit Renderer

Zapp! originally only supported the HTML renderer due to pending work for assets support. With this release Zapp! now uses the ‘auto’ renderer option (the same as default Flutter apps). This option chooses the HTML renderer when your app is running in a mobile browser, and CanvasKit renderer when your app is running in a desktop browser. You can specify the runtime configuration to override the web renderer at runtime.

Dart-only mode

Zapp! now comes with an ultra-fast Dart-only mode. This allows you to quickly try out some Dart code or Dart packages with near instant compilation & code analysis. Check it out here.

Note: Dart-only mode not support dart:io/server things currently, though this is something we’re experimenting with to support in future.

Profile page

We’ve added a basic profile page for users who are logged in, allowing you see your projects and quickly navigate to them.

This is a basic implementation for now – we’ll soon start adding more features, improving the UI and more.

Editing project info

We noticed a lot of users don’t edit the project title & description when sharing. We’ve moved the project info area to be more visible in the editor:

Asset corruption fix

When forking a project with assets, the assets were often being corrupted and thus unusable in your application. We finally managed to track this bug down and fix it – unfortunately projects with assets which are already corrupt are not salvageable. You’ll need to re-upload them and rebuild your project (sorry about that!).

Analyzer fixes

We’ve fixed a couple of nasty bugs which have been causing users some annoyances:

  • “Argument type ‘Material Color’ can’t be assigned to the parameter type ‘Color'” #78
  • “The method ‘X’ isn’t defined…” #92

Viewable Assets

When viewing image assets in the editor, you’ll now see the actual image rather than an asset icon. In the future we’ll add support for different asset types.

Dependency List

We’ve added a basic dependency list to projects, allowing you to quickly view what dependencies and versions are installed:

In the future, we’ll expand this area to support features such as searching pub.dev and installing packages and upgrading dependencies automatically.

View stats

The total number of project views can now be seen from your profile page or the editor. We’re working on adding more statistics in future updates.

Elliot Hesp


Mike Diarmid