Flutter 3.38 Released — See What’s New from the November 13 FlutterFlightPlans Live Event

Flutter 3.38 Released — See What’s New from the November 13 FlutterFlightPlans Live Event
# Flutter 3.38 Release — November 13 FlutterFlightPlans Livestream

On **November 13**, during the FlutterFlightPlans livestream, **Flutter 3.38** was released as scheduled.  
This update introduces **dot shorthands, enhanced web support, performance improvements, bug fixes, and widget previews**.

![image](https://blog.aitoearn.ai/content/images/2025/11/img_001-330.jpg)

---

## 1. Language & Syntax Improvements

### Dot Shorthands

Starting with **Dart 3.10** + **Flutter 3.38**, **dot shorthands** are enabled by default.  
This allows omitting type prefixes for constants — resulting in cleaner code:

// With shorthands

Column(

mainAxisAlignment: .start,

crossAxisAlignment: .center,

children: [ / ... / ],

),

// Without shorthands

Column(

mainAxisAlignment: MainAxisAlignment.start,

crossAxisAlignment: CrossAxisAlignment.center,

children: [ // ],

)


Example with `EdgeInsets`:

Padding(

padding: .all(8.0),

child: Text('Hello world'),

)


> 📖 [Flutter merges ‘dot-shorthands’ syntax sugar](https://juejin.cn/post/7500234308432445451)

---

## 2. Web Enhancements

### Web Configuration File

`flutter run` now supports a `web_dev_config.yaml` configuration file in your project root:

server:

host: "0.0.0.0"

port: 8080

https:

cert-path: "/path/to/cert.pem"

cert-key-path: "/path/to/key.pem"


### Proxy Support

server:

proxy:

  • target: "http://localhost:5000/"
  • prefix: "/users/"
  • target: "http://localhost:3000/"
  • prefix: "/data/"
  • replace: "/report/"
  • target: "http://localhost:4000/"
  • prefix: "/products/"
  • replace: ""
  • // Example usage of OverlayPortal
  • flutter config --enable-uiscene-migration
- Plugin dual-lifecycle handling adaptation

### Android

- Prepared for **Google Play’s 16 KB page size requirement**
- Default **NDK r28**
- Fixed severe Android memory leak
- Recommended environment:
  - Java 17  
  - Kotlin Gradle Plugin 2.2.20  
  - AGP 8.11.1  
  - Gradle 8.14  
- Use Flutter-provided SDK-level variables in build scripts

---

## 7. Engine Improvements

- Performance overlay refactored for Skia & Impeller
- Vulkan & OpenGL ES backend stability improvements
- Unified CanvasKit and Skwasm renderer refactor
- Removed thread merge opt-out option on iOS/Android

---

## 8. DevTools & IDE

- Widget Previews in VS Code / IntelliJ / Android Studio
- Light/Dark mode support
- Grouped previews with `group` parameter
- MultiPreview and custom annotation flexibility
- Known Issues: [#178317](https://github.com/flutter/flutter/issues/178317)

---

## 9. Deprecations & Breaking Changes

- Removed `version` file → replaced with `flutter.version.json`
- AssetManifest.json no longer generated by default
- SnackBars with actions won’t auto-close
- Deprecated `OverlayPortal.targetsRootOverlay`
- `CupertinoDynamicColor` methods deprecated
- Java 17 minimum for Android builds

---

## 10. Final Notes

Flutter 3.38 is a **must-upgrade** for:

- iOS 26 compatibility  
- Stable 16KB Android runtime compliance

**Decision:** Upgrade to `3.38.0` now or wait for `3.38.6`?

---

> 💡 **Workflow Tip**: Platforms like [AiToEarn官网](https://aitoearn.ai/) can automate updates & announcements.  
> AiToEarn is an open-source global AI content monetization toolkit that:
> - Generates content with AI
> - Publishes to Douyin, Kwai, WeChat, Bilibili, Xiaohongshu, Facebook, Instagram, LinkedIn, Threads, YouTube, Pinterest, X/Twitter
> - Tracks analytics
> - Ranks AI models ([AI模型排名](https://rank.aitoearn.ai))  
> Ideal for syncing technical blog posts, release notes, and tutorials alongside framework upgrades.

---
*(Code unchanged from original)*

### Android Navigation

- Predictive back route transitions enabled by default
- Default page transition changed to `FadeForwardsPageTransitionsBuilder`

### Desktop Enhancements (Windows)

- Access connected display list
- Query resolution, refresh rate, physical size  
  Example: `PlatformDispatcher.displays`

---

### Error Handling in Lifecycle Callbacks

Lifecycle methods like `didUpdateWidget` now safely catch exceptions to avoid **cascade failures** in the element tree.

---

### Bug Fixes

- **ResizeImage** equality/hashCode
- **RSuperellipse** rendering fix in web
- **Intl.Locale** Web API for locale parsing
- **Samsung Android hardware keyboard** interaction bug fixed

---

## 4. Material & Cupertino Updates

- Migration from **MaterialState** → **WidgetState**
- **IconButton**: new `statesController` property
- **Badge.count**: adds `maxCount`
- **InkWell**: new `onLongPressUp` callback
- **Cupertino** fidelity improvements (SlidingSegmentedControl, CupertinoSheet stretch effect)
- Multiple sliver / scrolling fixes
- Decoupling Material & Cupertino from the core framework

---

## 5. Accessibility

- iOS accessibility enabled by default via `WidgetsFlutterBinding.instance.ensureSemantics`
- **SliverSemantics** for annotated scroll view structures
- Default accessibility for CupertinoExpansionTile, AutoComplete result announcements, larger touch targets in TimePicker

---

## 6. Platform-Specific Changes

### iOS

- Full support for **iOS 26**, **Xcode 26**, **macOS 26**
- `devicectl` CLI deployments without opening Xcode GUI
- UIScene lifecycle support + migration tooling:

### Hot Reload Improvements

- **Web hot reload is now enabled by default**
- Multiple browsers can join the same hot reload session (`-d web-server` mode)

---

## 3. Framework Enhancements

### OverlayPortal

New **OverlayPortal** widget enables flexible popups/dialogs anywhere in the app:

Read more

How to Use Umami to Build Your Own Google Analytics Alternative

How to Use Umami to Build Your Own Google Analytics Alternative

# **Umami: A Privacy-Friendly, Open-Source Analytics Alternative to Google Analytics** Website analytics are **crucial** for understanding how visitors engage with your content. While **Google Analytics** dominates, it can be **complex** for small projects and raises **privacy concerns**. If you want something **simpler**, **open-source**, and **privacy-friendly**, [**Umami**](https://github.com/umami-software/umami)

By Honghao Wang