Flet

1个月前发布 36 00

Flet 团队近日发布 Flet 1.0.0,标志着这个基于 Flutter 渲染的开源 Python UI 框架正式进入生产就绪阶段。开发者仅需编写 Python 代码,即可在 iOS、Android、Windows、macOS、Linux 及浏览器上生成原生 Material/Cupertino 界面,无需接触 Dart、Swift...

所在地:
美国
收录时间:
2026-09-21
其他站点:

Flet 团队近日发布 Flet 1.0.0,标志着这个基于 Flutter 渲染的开源 Python UI 框架正式进入生产就绪阶段。开发者仅需编写 Python 代码,即可在 iOS、Android、Windows、macOS、Linux 及浏览器上生成原生 Material/Cupertino 界面,无需接触 Dart、Swift、Kotlin 或 JavaScript。该版本距项目启动约四年,以 Apache 2.0 许可证在 PyPI 发布,SDK 要求 Python ≥3.10,通过 pip install 'flet[all]' 安装。

Flet

flet build 命令现支持八个目标平台产物生成:apk、aab、ipa、ios-simulator、windows、macos、linux、web。配合重新设计的打包流程(默认字节码编译、Android APK 直接加载 Python 包无需解压),以及 dart-bridge 实现的同进程 Python-Dart 通信(消除套接字开销),性能与部署体验显著提升。控件 diffing 在 0.83 基准测试中测得高达 6.7 倍加速。

核心能力:从开发到生产的完整闭环

跨平台构建与测试矩阵

Flet 建立了覆盖 Python 3.10–3.14 的全链路验证体系:

  • 框架层:Python 单元测试 + Flutter 侧测试
  • 集成层:控件行为验证 + 截图对比捕捉视觉回归
  • 移动端:Android/iOS 模拟器上测试原生库,mobile-forge 自动化 wheel 构建
  • 打包层:flet build 为六平台编译 Python 3.12/3.13/3.14 应用
  • 运行时层:flet test 驱动打包应用在五原生平台(含 Linux ARM64)运行

开发者可使用相同范式为自己的应用编写 pytest 集成测试,通过 flet test 针对打包构建执行,并在移动端进行截图比对。

移动生态与依赖管理

Flet 包索引已收录 100+ 移动端兼容包,包括 NumPy、pandas、Matplotlib、Pillow、SciPy、scikit-learn、cryptography、pydantic-core 等科学计算与数据处理核心库。Web 构建自动匹配对应 Pyodide 版本。可用性仍取决于具体包与目标平台,但自动化管线大幅降低了移动端 Python 生态的接入门槛。

声明式 UI 与状态管理

Flet Declarative 将 UI 描述为应用状态的纯函数,组织为可复用组件。Flet Studio 和官方移动应用本身即采用此范式构建。命令式风格仍受支持,文档提供两者对比指南。这种双模式设计兼顾了 React 式声明开发的简洁性与传统 GUI 编程的直观性。

AI 工具链集成

  • Flet MCP Server:为 AI 编码助手提供版本精确的 API 信息、示例查找、图标检索及 CLI 选项查询能力
  • Flet Studio:浏览器内运行的 IDE,内置 AI 智能体,项目可一键下载至本地继续开发

升级注意事项与兼容性策略

⚠️ 从 0.28 升级是一次真正的迁移:处理器现已统一运行于单一事件循环,旧版多线程/异步混用模式需重构。

Flet 采用严格的兼容性策略:API 移除前必经三个次要版本的弃用期,确保平滑过渡。建议升级前:

  1. 查阅迁移指南,重点关注事件循环变更
  2. 在测试环境验证关键交互逻辑
  3. 利用 flet test 建立截图回归基线
  4. 检查所用第三方包的移动端 wheel 可用性

适用场景与边界

推荐用途:

  • 内部工具、数据看板、配置管理等 B 端应用
  • 快速原型验证与 MVP 开发
  • Python 技术栈团队拓展移动端/Web 交付能力
  • 教育/科研领域交互式可视化应用

谨慎评估:

  • 高性能图形密集型应用(游戏、实时渲染):Flutter 层有优势,但 Python 桥接仍有开销
  • 深度平台特性集成(ARKit、HealthKit 等):需自定义 Dart 插件,纯 Python 无法覆盖
  • 超大规模 C 端产品:生态成熟度与社区资源仍不及原生方案
  • 对启动速度极度敏感的场景:Python 运行时初始化存在固有延迟

相关导航