Flet 1.0 正式发布

💡 原文英文,约1700词,阅读约需7分钟。
📝

内容提要

Flet 1.0 正式发布,可用于生产环境。该框架支持用 Python 构建跨平台应用,已获超 16700 星标和 900 万次下载。1.0 版强化了测试、文档与打包,支持 Python 3.12 至 3.14,并引入声明式 UI。未来将扩展框架、Studio 及后端服务。

🔎

延伸解读

升级前需注意的兼容性变化

Flet 1.0 并非 0.28.x 的直接替代品,升级前需仔细阅读迁移指南。主要变化包括移除已弃用 API、修改 InputBorder 等。尤其要注意单线程模型:0.28 中每个同步事件处理器在独立线程运行,阻塞代码不会冻结 UI;而 1.0 中处理器运行在应用事件循环上,原有阻塞代码会导致界面无响应,需将其移出事件循环。

测试与文档如何支撑生产就绪

Flet 1.0 通过多层测试确保稳定性:框架单元测试覆盖 Python 3.10 至 3.14,控件与示例集成测试对比截图以捕捉视觉回归,二进制包集成测试在 Android 和 iOS 模拟器上运行,构建集成测试覆盖多平台多 Python 版本。文档方面,API 文档从 Python 源码生成,示例截图和 GIF 来自集成测试,CI 会校验渲染 UI 与参考图像,保证文档与代码同步。

声明式 UI 与性能改进

1.0 引入声明式 UI,将界面描述为应用状态的函数,并组织为可复用组件,适合大型应用。Flet 自身产品如 Flet Studio 和移动应用均采用声明式。性能上,UI 协调优化使控件差异比较速度提升最高 6.7 倍;打包原生应用通过 dart-bridge 实现 Python 与 Dart 同进程直接通信,无需套接字,并支持高效流式传输图像等二进制数据。

未来路线图与工具生态

Flet 1.0 是里程碑而非终点。2026 至 2027 年路线图涵盖三方面:框架将支持更新的 Flutter 和 Python 版本,增加 shadcn、Fluent、macOS、Yaru 等 UI 控件,以及 BLE、NFC 和传感器示例;Flet Studio 将加入 GitHub 集成、桌面版、更丰富的 Gallery 和 MCP 支持;Fletbase 将提供云打包、应用商店发布、静态托管、数据库、文件存储和认证等后端服务。

❓

Q&A

Flet 1.0 正式发布了吗?它适合用于生产环境吗?

是的,Flet 1.0 已正式发布,并且已准备好用于构建生产应用。

Flet 1.0 支持哪些 Python 版本?

Flet 1.0 支持 Python 3.12、3.13 和 3.14。

Flet 1.0 在测试方面做了哪些工作来保证稳定性?

Flet 1.0 进行了全面的测试,包括框架单元测试(覆盖 Python 3.10 到 3.14)、控件和示例集成测试(含截图对比)、Python 二进制包集成测试(Android 和 iOS 模拟器)、移动包流水线测试(Python 3.12、3.13、3.14)、flet build 集成测试(多平台多主机)以及 flet test 集成测试(在五个原生平台上启动打包应用并交互)。这些测试都在 CI 中自动化运行。

Flet 1.0 引入了什么新的 UI 开发方式?

Flet 1.0 引入了声明式 UI(Flet Declarative),允许将 UI 描述为应用状态的函数,并组织成可复用组件,便于大型应用的状态管理。命令式风格仍然支持。

如何将现有 Flet 应用升级到 1.0 版本?

升级方法:使用 pip 可运行 `pip install 'flet[all]' --upgrade`;使用 uv 可运行 `uv sync --upgrade` 或仅升级核心包。如果项目固定了旧版本,需先更新 pyproject.toml 或 requirements.txt 中的版本约束。同时更新扩展包(如 flet-audio、flet-video)到匹配的 1.0 版本。升级前请查看 1.0 迁移说明,特别是从 0.28.x 迁移时,注意单线程模型的变化:0.28 中同步事件处理程序在各自线程运行,而 1.0 中在应用事件循环上运行,阻塞代码会导致界面无响应。

Flet 未来的发展路线图包括哪些内容?

Flet 2026 和 2027 年的路线图涵盖三个领域:Flet 框架(支持更新的 Flutter 和 Python 版本、更多 UI 控件如 shadcn、Fluent、macOS、Yaru,BLE 和 NFC 支持,更多传感器示例,持续改进文档);Flet Studio(GitHub 集成、桌面版、更丰富的 Gallery、MCP 支持,以及用于本地开发工作流的 CLI);Fletbase(后端服务,包括云打包、应用商店发布、静态 Web 托管、数据库、文件存储和身份验证)。

🏷️

标签

➡️

继续阅读