What is New in Flutter 3.3?

flutter 3.3, Flutter update
Flutter App Development, Flutter Flow

What is New in Flutter 3.3?

Flutter, as always, releases great new updates. It’s always an excellent time for a Flutter app development company to improve and speed up its development process with such a significant update. It’s also a great time to take advantage of the new updates, features, and framework updates by hiring a Flutter developer. 

We also have a video about Flutter 3.3 if you want to get quick information about Flutter’s new updates. You can watch it here: Flutter 3.3: What’s new? 

Let’s see what Flutter 3.3 got in the new release. 

What’s New in Flutter 3.3?

This section will cover all the necessary updates related to features and frameworks. 

The Global Selection Update

The critical feature that Flutter app development companies should have noticed is the flexibility to choose elements on a web app with a single selection or sweeping gesture. But now it’s possible with Flutter 3.3 with a new widget called SelectionArea

Global Selection

Now Flutter developers can wrap the Scaffold (your route body) with the SelectionArea widget. That’s it. 

Text Input

This new update for the framework TextInputPlugin can send granular text updates to improve the support for rich text editing. 

Before this update, the TextInputClient could not reflect any delta between the old and new editing states. Still, this is done by filling a gap between DeltaTextInputClient and TextEditingDeltas

With the help of DeltaTextInputClient and TextEditingDeltas, Flutter developers can now input fields with stylized ranges and change the size they type. 

Scribble Update

It’s a dream come true for Flutter developers, as they wish to have such an update in this release. Now Flutter developers using TextField, EditableText, and CupertinoTextField can get the scribble functionality where they can input from an apple pencil or iPad and convert them to text. 

The Scribble functionality will turn on automatically if you use the above widgets. 

Trackpad Input

The trackpad input also improved, with its smoother and quicker control. Now it can minimize the number of misinterpretations in some cases. It’s good news for the Flutter app development company and developers to improve the overall coding speed.

To access the DartPad instance, scroll to the bottom of the page and take the following actions:

  • Small down the window to see the upper part of a scrollbar
  • Hover your cursor over the top
  • Scroll using a trackpad
  • Scrolling on a trackpad drags the item before installing Flutter 3.3 because Flutter was sending simulated general events.
  • Because Flutter is delivering the “scrolling” gesture, which isn’t recognized by the cards but is by the scroll view, scrolling on a trackpad correctly scrolls the list after installing Flutter 3.3.

Material Design 3

The Android 12 system evolved, and Flutter is not back. Flutter 3.3 got new upgrades related to the theme engine named “material.” 

The material design of widgets like Chip, IconButton, and a variant of AppBar are changed in the latest version of Flutter. Widgets are continuously migrating to the Material Design 3 theme. 

IconButton

Chip

Medium And Large App bar

Changes In Packages: Flutter 3.3

Go_router

Go-router in this release eases the navigation of complex areas. The Flutter team, as always, did a great job as they made it simpler to handle and browse deep links with a declarative and URL-based API. 

Changes to Desktop: Flutter 3.3

Windows

In the previous version of Flutter, the makers of Flutter changed the Flutter Desktop app version only to Windows apps. But with the new update, now Flutter developers can change the app versions by pubspec.yaml and projects build arguments. 

Performance Improvements in Flutter 3.3

Raster Cache Improvements

In this latest update, the performance of loading images from assets is improved by minimizing Dart garbage collection demand and removing duplicates. 

In previous versions, the ImageProvider API needed compressed data to load asset images. But now, if you hire Flutter developers, they can directly put the compressed image into decoding structure, all thanks to ui.ImmutableBuffer.fromAsset 

Also, some processes related to scheduling overhead by the channel-based loader are quicker. As shown in the picture, there are 2-time improvements in image loading times.

Rendering Layer Changes: Flutter 3.3

Impeller

Flutter entirely ran on the Skia Graphics engine, as it gave it the power to function in the previous beta testing phase.

Now the Flutter team has come up with a new rendering layer. The new layer name is Impeller. It maximizes the performance of hardware-accelerated APIs.

This new graphics engine will elevate the standard of expectations, and it doesn’t require runtime shader compilation. In short, it’s terrific news for Flutter developers. 

VS Code Extension Changes: Flutter 3.3

The VS Code extension “Dart: Add Dependency” made it easy to add third-party resources to any Flutter project. It makes it very easy for Flutter developers and a Flutter app development company to speed up the development process. 

DevTools Updates: Flutter 3.3 

DevTools in this release come with several updates from the last Flutter stable release. The new release comes with UX and performance improvements in data display for smoother and faster scrolling. 

You can see a complete list of updates since Flutter 3.0 here:

iOS Pinter Compression Disabled

Dart’s pointer compression on iOS was enabled in the previous stable release. But there was a problem with optimization. The consequence was with the memory. The Dart’s pointer was consuming and reserving more memory. 

The problem was that total memory was less available, and other components could not use more memory. 

Also, disabling the pointer compression can increase memory consumption by dart objects. Still, it makes the total available memory usable for the dart parts of the Flutter app. That is more desirable than enabling it. 

API Updates

PlatformDispatcher.onError

Flutter’s previous releases had a custom configuration facility zone for catching all app’s errors and exceptions. But the zone made slowed down the app’s startup time.

So, in this release, Flutter developers can catch all errors and exceptions instead of using a custom zone by calling the PlatformDispatcher.onError callback. 

FragmentProgram changes

Fragment shaders are created in GLSL and listed in the shaders section of a pubspec.yaml file for an application will now be automatically converted to the engine’s preferred format and packaged with the application as an asset.

This change eliminates the need for third-party tools to compile shaders manually. In the future, you should think of the Engine’s FragmentProgram API as only accepting the output of Flutter’s build tooling. Although it isn’t yet the case, this modification is scheduled for a later release.

Fractional Translation

Because it enhanced rendering performance on earlier (32-bit) model iPhones, the Flutter Engine always aligned composited layers to precise pixel boundaries. Adding desktop support caused observable snapping behavior, as screen device pixel ratios are frequently much lower.

For instance, tooltips could visibly snap when fading in on low DPR screens. After knowing the pixel snapping was no longer necessary for performance, the Flutter team removed it from the Flutter Engine to enhance the desktop fidelity. 

Supported Platform Changes

32-bit iOS Deprecation

This Flutter 3.3 release is the last to support 32-bit iOS devices and iOS 9 and 10. 

Apple iOS devices like iPhone 4S, iPhone 5, iPhone 5C, and iPad 2nd, 3rd, and 4th generation devices are all impacted by this modification. 32-bit iOS gadgets and iOS versions 9 and 10 are no longer supported by the Flutter 3.3 stable release and all subsequent stable releases. Apps created for Flutter 3.3 and later won’t function on such devices as a result.

Closing Support for macOS 10.11 and 10.12

The Flutter team anticipated removing support for macOS systems 10.11 and 10.12 in the Q4 2022 stable release. The minimum macOS version maintained by Flutter will rise to version 10.13 High Sierra, and apps created using stable Flutter SDKs won’t function on these versions after that date.

Bitcode Deprecation

In the upcoming Xcode 14 release, bitcode will no longer be recognized for iOS app submission, and projects with bitcode enabled will issue a build warning. As a result, Flutter will discontinue bitcode support in a subsequent stable release.

The Flutter team doesn’t anticipate that many developers will be impacted by the fact that bitcode is not enabled by default in Flutter apps. However, as Flutter developers upgrade to Xcode 14, turn off any bitcode you manually enabled in your Xcode project.

Flutter developers can follow this: Open iOS/Runner.xcworkspace and change the build setting. Enable Bitcode to No to accomplish this. Developers of add-to-apps should turn it off in the parent Xcode project.

You can get detailed information on this from Apple’s documentation. 

There are more detailed updates about Flutter 3.3; you can find Flutter 3.3 release notes here. 

It’s Not the Final Update!

The Flutter team at Google will continue improving it for Flutter developers, the Flutter app development company, and the community. So far, we are excited about it and have already started benefiting from it in our development process. 

Do you want to take advantage of it, or do you have an idea to make it digital? Hire a Flutter developer to make it possible. 

Keep visiting blogs for the latest updates and comment down which update you liked the most.