Skip to content

v1 Alpha Release Notes #427

Open
Open
@FeodorFitsner

Description

@FeodorFitsner

Why re-rewrite?

  • Technical debt. Wrong architecture. The first version of Flet was born from Pglet which was web-based framework and with a promise to support any language. That influenced the design of Flet. Flet, on other hand, is a Python-only framework targeting all platforms, not just web.
  • Improve experience for both Flet app developers and Flet extension developers.
  • Simplify maintenance of a rapidly growing code base.
  • It is easier to rewrite and break now, pre 1.0, when user base is relatively small.

How?

  • Simplify controls implementation on Python side: dataclasses with automatic constructors and properties, no more unnecessary conversions to/from strings or JSON, built-in support for properties of complex types (dataclasses), enums. Strongly-typed event handlers. Easier to add new controls and zero maintenance of existing.
  • Docstrings for all Flet controls with auto-generated Docusaurus docs.
  • New diffing algorithm optimized for imperative and declarative Flet app styles.
  • Replace Redux library on Dart side with InheritedWidget and Provider. Hierarchical data structure reflecting Python control tree.
  • Binary serialization protocol between Python and Dart. Less traffic for tree update operations and no base64 for passing binary data. On Dart side control properties have the same name as Python class properties.

New features

Breaking changes

Other changes and improvements

  • Migrated from Poetry to uv.

Fixes

  • LineChart animation for beautiful dashboards. [Sample]

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions