Hacker News 中文摘要

RSS订阅

Flet 1.0 发布:用 Python 构建跨平台应用 -- Flet 1.0 – Build cross-platform apps in Python

用 Python 从一个代码库可以构建美观的 Web、桌面和移动应用,无需前端经验。同一套代码支持 iOS、Android、Windows、macOS、Linux 与 Web 平台。从简单计数器入手,第一个弗莱特(Flet)应用展示如何将 Python 代码变为交互式应用,利用现成控件排列文本与按钮,并把按钮连接到增加计数的 Python 函数。

正文

你的下一个应用

用同一套 Python 代码库构建美观的 Web、桌面和移动应用。不需要前端经验,只要 Python。一套代码,随心所欲。

  • iOS
  • Android
  • Windows
  • macOS
  • Linux
  • Web

一个简单的例子:

你的第一个 Flet 应用

从简单的计数器入手,看看 Flet 怎么把 Python 代码变成交互应用。

  1. ### 构建界面

使用现成的文本和按钮控件,用 Python 排布。

  1. ### 添加行为

将按钮连接到一个让计数增加的 Python 函数。

可以线上试用:Try online 打开 Flet Studio,无需安装。也可以本地尝试:Try locally 按 uv 或 pip 指南安装。例如 counter.py 里导入 flet,用 Text 显示计数,浮动按钮点击时加一并更新,最后 ft.run 运行;命令行为 flet run counter.py。

为整个开发过程打造:

不只是好看的界面

提供控件、库和工具,帮你的应用从实验走向发布。

美观的 Python GUI

150 多个控件和服务,包含布局、导航、表单、对话框,可自定义颜色、字体和主题。Explore the controls

你的 Python 库,上了移动端

带上 NumPy、pandas、Pillow、cryptography。iOS 和 Android 的预编译包省去编译原生依赖的麻烦。Browse Python packages

随时可发布

用 flet build 打包桌面、移动和 Web 应用,准备分发,包括上架 App Store 和 Google Play。Build and publish

你的方式玩转 Web

用 Pyodide 和 WebAssembly 在浏览器运行 Python,或把代码放在服务器推送实时 UI 更新。Explore web deployment

测试你的应用

写 pytest 测试来点按钮、输文本、查用户流程,用 iOS 和 Android 截图捕获视觉变化。Test your app

给 AI 正确上下文

把编码助手连到 Flet MCP,获取特定版本的 API 信息以及查找示例、图标、CLI 选项的工具。Connect Flet MCP

做成你自己的

用 Python 编写自定义控件,或把 Flutter 包包成扩展来加新 UI 组件和平台集成。Build an extension

为更多人构建

用标签和自定义语义支持屏幕阅读器,添加键盘快捷键,检查界面暴露的无障碍信息。Explore accessibility

一个想法是极好的起点

打开浏览器,选个例子、写点 Python,或让 AI 助手帮把手,运行应用并分享成果。Create in Studio 无需安装。

01

找到起点

逛 Gallery,挑个例子改成自己的。Explore the Gallery

02

按你的方式实现

改代码、找 AI 帮忙,看应用跑起来。

03

分享作品

发个链接,或下载项目在本地接着做。

评论

社区对该基于 Flutter 的 Python 框架意见分化,多数人质疑 Python 语言特性及其叠加抽象层的必要性,少数实际使用者则肯定其跨平台开发效率与价值。

认为 Python 不适合作为跨平台 UI 框架的基础语言

  • 批评者指出 Python 效率低下、抽象易出 bug,在其上叠加 Flutter 等框架只会增加调试层级负担,不如直接使用原生或编译型语言(认可度:较多人)。 > Python 效率低下且诱导出易出问题的糟糕抽象,对行业造成的危害多于益处(@bnchrch)

质疑框架成熟度与生产环境验证不足

  • 指出同类老框架已存在十余年且体验笨重,新框架更不成熟;复杂软件边缘情况多,若框架本身有严重缺陷会导致项目卡死,需大型应用背书才考虑采用(认可度:较多人)。 > 除非看到它在成熟大型应用中被使用,否则不值得浪费时间,怕框架缺陷让开发无法进行(@ChrisChou)

肯定其作为 Flutter 的 Python 封装层的跨平台价值

  • 实际使用者将其用于公司复杂应用,认为它是唯一能快速跨全平台(桌面+移动)的 Python 界面方案,且可通过嵌入 Dart 控件优化性能,整体体验优良(认可度:少数人)。 > 我在公司复杂应用中用过觉得很棒,它是 Flutter 上的 Python 层,是唯一能跨各端且够快的 Python 界面框架(@quietbritishjim)

认为框架示例选取与蓝牙等原生能力支持不足

  • 指出首屏示例竟是待办应用显得脱离时代,且不原生支持蓝牙限制了需要硬件交互的场景,这类需求本就是选原生而非网页应用的原因(认可度:少数人)。 > 不支持蓝牙大大限制了用途,而这本是我放弃网页应用选原生的主要原因(@claytongulick)

有价值的补充

  • 有使用者分享实战技巧:该框架控件可包装用 Dart 写的底层控件以提升复杂界面的性能,相当于逐步向纯 Flutter 过渡的敲门砖。
  • 针对 iOS 开发痛点,有用户提到 beeware 项目已将大量 Python 库移植到 iOS,能避免从零交叉编译依赖的巨量工作。
  • 技术关注点:需明确该框架 Web 端是生成标准文档树还是画布渲染,以及原生构建包的体积大小,这些细节直接影响适用场景。