Flet 1.0 思路很好,可惜来晚了

【易上手快捷开发新框架技术】用Flet从零开始分步骤循序渐进编程实现购物清单助手手机应用app示例掰烂嚼碎深度讲解源代码IDE运行和调试通过截图为证 这个购物清单应用展示了如何使用 Flet 构建一个简单的用户界面,同时支持基本的数据持久化和交互功能。整体设计考虑了代码的可读性和功能的扩展性,使得未来添加新特性时可以简单地修改或扩展现有代码。 阅读详情

大家好,我是老刘

上个月,Flet 1.0 正式发布了。

这个项目从 2022 年开始持续保持更新,迭代了四年,上个月终于放出了 1.0 正式版。

老刘的看法可能有点扫兴。不管对客户端生态还是 Flutter 生态来说,这都是一个设计得很漂亮的项目,可惜生不逢时,来得有点晚了。

接下来先说说 Flet 到底是什么,再聊聊老刘为什么说它来晚了。


Flet 是 Flutter 上的 RN

Flet 的官方链接在这里,感兴趣的同学可以先看看。

https://flet.dev/

老刘个人的观点,Flet 本质上是 React Native 那套跨运行时、镜像树、增量补丁的范式,配上 Flutter 作为唯一的渲染后端。

说人话就是,RN 用 JS 写业务,Flet 用 Python 写业务。RN 把绘制交给各系统的原生组件,Flet 把绘制统一交给 Flutter 完成。

当然从架构细节上看,它和 RN 还是有区别的,关键差异在于布局由谁来算。

RN 的做法是 Yoga 在 shadow tree 上自己算 flexbox 布局,算完再把位置下发下去。Flet 的 Python 侧完全不算布局,只下发控件属性,布局全部交给 Flutter 的 layout 引擎。所以 Flet 的 Control 树更接近一份状态加属性的数据包,不像 RN 的影子树那样还要承担布局职责。

这个设计其实更干净,把布局的活彻底还给了渲染层。


双重优势,也背着双重代价

先给技术路线定个性。老刘之前在《Perry 能取代 Flutter 吗?跨平台的三种技术路线》里聊过跨平台的三种技术路线,Flet 仍然属于中间层这条路。

而且它比一般中间层更特别。它是在 Flutter 这种自带绘制引擎的方案上,又叠了一个 Python 中间层。所以它具备双重优势和双重代价。

优势

它同时拿到了两种方案的好处。

一端是自带绘制引擎方案带来的高度多端一致性,各平台表现统一。另一端是中间层方案的高度动态性,可以动态发布,不需要更新 App 版本。

再加上 Python 作为开发语言,直接接上了 Python 庞大的生态体系,数据处理、AI 库随手可用。

代价

反过来看,它也同时背上了两种方案的短板。

中间层方案的性能损耗主要来自两块,中间层自身的资源消耗,加上跨运行时的通信延迟。Flet 把这两样都占了,交互密集的场景里性能天花板明显低于纯 Flutter,相当于把 Flutter 性能这块核心优势给抵消掉了。

发布包天生比 Flutter 更大。除了 Flutter 的渲染引擎,还要额外携带一个 Python 运行时。

调用系统原生能力的链路也更长,需要在原生、Flutter、Python 三方之间同步数据,每多一层就多一份出问题的概率。

所以总的来说是优劣都叠加了,不存在简单的更好还是更坏,主要看使用场景是否合适。


老刘为什么说它来晚了

Flet 适合什么样的团队?老刘觉得是那种技术栈主要在 Python 这一侧,但又需要开发客户端的团队。这个需求在过去很多年都是真实存在的,Flet 放在五年前,会是一个相当有市场的方案。

问题在于,AI 时代把这件事的前提抽掉了。

拿老刘自己举例。我熟悉的技术栈在客户端这一侧,对 Python、JS 都只是略懂,远远谈不上精通。

但我借助 AI,独立完成了一个 JS 的开源项目,从搭建到上线全流程依靠AI走完。

GitHub 地址放这里,欢迎围观。

https://github.com/lzt-code/ai-gateway-desk

老刘想说的是,在 AI 时代,编程语言和技术栈的局限早就被打破了。

现在真正动手写代码的,已经变成了和开发者协同工作的 AI,开发者做的是定义问题、搭架构、做验收。

回到 Flet 的场景。一个 Python 团队不熟 Dart 和 Flutter,选项 A 是在Flutter上再加一个 Python 中间层,选项 B 是让 AI 直接写 Flutter 代码。老刘会毫不犹豫选 B,链路更短,性能更好,维护成本也更低。

如果语言壁垒是堵墙,Flet 选择用框架去绕开,AI 却可以直接把墙拆了。


最后说两句

老刘对 Flet 这个项目本身没有任何意见,四年持续迭代到 1.0,工程完成度值得尊重。技术方案的选择也很精巧。

如果你的团队已经在重度使用它,继续用下去没有问题。

但如果你今天才开始选型,老刘的建议很直接。先去试试让 AI 直接写 Flutter,跑通一个最小闭环,再决定要不要引入中间层。

技术选型从来不只看方案本身好不好,更要看它解决的问题还值不值得解决。

你在团队里遇到过用熟悉语言套中间层的方案吗,后来是香了还是踩坑了?欢迎评论区聊聊。


🤝 如果看到这里的同学对客户端或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。

🎁 私信免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。可以作为Flutter学习的知识地图。

💬 : laoliu_dev

📂 老刘也把自己历史文章整理在GitHub仓库里,方便大家查阅。

🔗 https://github.com/lzt-code/blog

基于Flet框架实现的小学数学自动出题判题桌面程序V1.0.1 这是一个使用Python和Flet框架开发的小学数学自动出题判题桌面应用程序。该程序可以帮助小学生练习基本的数学运算,包括加法、减法、乘法和除法。 ## 功能特点 - 自动生成小学数学题目(加减乘除) - 实时判题并显示结果 - 统计功能:显示答题进度和准确率 - 现代化UI设计,支持主题切换(浅色/深色模式) - 数据持久化:自动保存和加载统计数据 - 版权信息显示 - 错误处理和边界检查,增强程序健壮性 ## 安装依赖 确保您的系统已安装Python 3.7或更高版本。 ```bash pip install -r requirements.txt ``` ### 依赖说明 - `flet==0.28.3`: 用于构建桌面应用程序的现代GUI框架 ## 运行程序 ```bash python shuxuezidongchutipanti.py ``` ## 使用说明 1. 程序启动后会自动生成10道数学题目 2. 在输入框中输入答案,点击"提交"按钮或按回车键提交 3. 程序会立即判断答案是否正确并显示结果 4. 可以使用"上一题"和"下一题"按钮切换题目 5. 点击"重新开始"按钮可以生成新的题目 6. 点击右上角的主题按钮可以切换浅色/深色主题 7. 点击"关于"按钮可以查看程序信息 ## 技术实现 - **编程语言**: Python 3.x - **GUI框架**: Flet - **数据存储**: JSON文件 - **主题支持**: 浅色和深色主题切换 ## 代码结构 ``` shuxuezidongchutipanti/ ├── shuxuezidongchutipanti.py # 主程序文件 ├── math_quiz_stats.json # 统计数据文件 ├── requirements.txt 立即下载

相关推荐

HC-05蓝牙模块详细配置、连接与使用过程

用手按着模块上的按键,再给蓝牙模块上电。当蓝牙模块上的灯慢闪的时候就说明进入了配置模式了。在配置蓝牙的时候一定要将串口助手按这个要求配置:设置波特率 38400,数据位 8 位,停止位 1 位,无校验位,这是固定操作! 根据蓝牙的主从模式进行不同的设置,二者主要区别就在于AT+ROLE这个指令如果这里没返回OK可能有一下几种情况:如果正常返回OK,那就可以进行下一步了 配置蓝牙密码的时候,特别是配置HC05,密码必须加双引号"",否则不能正常设置!!!! 给从机模式蓝牙配置好之后,将蓝牙重

qq_51688022的博客 2万+

Flet 1.0 里程碑深度解读:Client Actions、跨平台构建体系与打包引擎重构

Flet 是一个只用 Python 就能构建实时 Web、移动端与桌面端应用的开源框架,而 CHANGELOG.md 中记录的 1.0.0 版本,标志着这个框架从"能跑"走向"可交付"的关键转折。本文以仓库根目录的 [CHANGELOG.md](https://link.gitcode.com/i/1a48192b3c119f51610ef0f8ea5d2ce6) 为主体,围绕 1.0.0 的三大

gitblog_01419的博客 771

SimpleFOC STM32实战:基于F103与HAL库,剖析速度环与电流环的协同控制

本文详细介绍了基于STM32F103与HAL库的SimpleFOC实战应用,重点剖析速度闭环控制与电流环的协同工作原理。通过开发环境搭建、参数调试技巧及性能优化方案,帮助开发者高效实现无刷电机精准控制,适用于机器人、无人机等高精度应用场景。

weixin_29170327的博客 476

Python 第三方库:Flet(一套代码构建跨平台桌面与 Web 应用)

Flet 是一个现代跨平台 的 Python UI 框架,允许开发者使用纯 Python 构建 Web 应用、桌面应用(Windows/macOS/Linux)、移动应用(Android/iOS)。它基于 Flutter 渲染引擎,因此具有高性能、现代化 UI、响应式布局等优势,却无需掌握 Dart 或 Flutter,只需写 Python 即可。Flet 特别适用于快速开发企业内部工具、后台管理界面、实时仪表盘、桌面应用原型等,被认为是“Python 世界的 Flutter”

qq_41176800的博客 1984

基于 国产USRP B210 的通信+侦测+干扰三合一实验平台,解锁无线攻防全场景!

在当代复杂电磁环境与多样化通信需求并存的背景下,软件定义无线电(SDR)技术正展现出前所未有的系统灵活性与功能可重构性。由两台USRP-LW B210软件无线电设备模拟无线链路通信过程,能够模拟多种无线通信信号传输及图像传输场景,适用于通信协议验证、抗干扰测试及教学实验。,支持"通信-侦测-干扰-优化"的闭环实验流程,为无线通信领域的教学科研与工程应用提供了一套经济高效、功能完备的解决方案。系统可对通信链路信号进行快速、自动化侦测、识别、告警,并支持多种干扰信号生成、模式切换及效果评估功能。

luowave2012的博客 832

群晖NAS搭建Git Server避坑指南:从SSH配置到权限管理的完整流程

本文提供了一份详尽的群晖NAS搭建Git Server实战指南。文章从启用并安全配置SSH服务入手,深入解析了用户权限体系设计、SSH连接与仓库初始化、客户端SSH密钥配置等核心步骤,并提供了常见错误排查与生产环境加固方案,帮助开发者成功构建私有、安全的代码托管平台。

rock5的博客 420

2026 年,这9个Python GUI 库让我眼前一亮

好消息是,Python的GUI生态系统已经悄然进化,涌现出一批强大而又易用的界面库。你可以使用Python构建美观的Web、桌面和移动应用,享受热重载、跨平台部署等特性,而无需编写任何Dart代码。NiceGUI是一个基于FastAPI和Vue.js的高级GUI框架,让你只需编写Python代码就能创建出功能丰富的浏览器基应用。如果你已经熟悉HTML、CSS和JavaScript,Eel提供了一种简单的方式,将现有的Web技术封装到Python应用程序中。它使用独特的KV语言来分离界面设计与业务逻辑。

数据派THU 383

手把手教你学simulink(16.8)--基于Simulink的小波变换滤波器(Wavelet Transform Filter)项目

基于Simulink的小波变换滤波器(Wavelet Transform Filter)项目的详细实例介绍。这个项目将重点放在小波变换滤波器的设计、实现和仿真上,帮助你理解和应用小波变换滤波器在信号处理中的作用。

MHD0815的博客 534

探索Python GUI新选择:Flet库介绍与快速实践

Flet是一个基于Flutter的轻量级GUI库,它通过简化开发流程和提供跨平台支持,帮助开发者快速创建美观的桌面应用。跨平台支持:Flet支持多种操作系统和设备,包括Windows、macOS、Linux、iOS、Android以及Web平台。这意味着开发者可以使用同一套代码,在多个平台上创建应用,从而大大减少重复劳动,提高开发效率。丰富的组件库:Flet内置了大量预定义的UI组件,如按钮、文本框、图像框、复选框等,覆盖了常见的用户界面元素。这些组件易于使用,且具有良好的视觉效果。实时预览。

2401_85240630的博客 1886

把表的每一次改动都记下来:SAP 表变更日志 DBTABLOG/DBTABPRT 与 SCU3 全面解析

摘要:SAP系统提供了数据库表变更日志功能(SCU3/DBTABLOG),用于追踪关键配置表的变更历史。该功能通过profile参数rec/client和表级技术设置双重开关控制,能记录谁在何时修改了哪些数据。与业务变更凭证(CDHDR/CDPOS)和应用日志(SLG1)不同,表变更日志提供技术层面的审计线索,适用于快速定位生产事故中的异常数据变更。但需注意其限制:不支持超宽表和大批量变更,且可能引发性能问题。建议将表变更日志与业务变更凭证、应用日志结合使用,构建完整的审计追踪体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1690

第4章 部署负载均衡 Keepalived + HAProxy

本章在所有 Master 节点部署 Keepalived + HAProxy,为 kube-apiserver 提供高可用入口。Keepalived 实现 VIP(192.168.3.59)漂移,HAProxy 轮询转发请求至三个 Master 的 6443 端口(监听 6444 避免冲突)。健康检查脚本连续 5 次失败则停止 Keepalived,触发 VIP 自动切换。本章还包含配置详解、日常运维和问题排查。

幸福街--linux技术分享 120

Flet 正式支持 Android:用纯 Python 在安卓设备上测试与发布应用

2023 年 7 月,Flet 官方发布博客宣布 Android 支持正式到来([博客原文](https://link.gitcode.com/i/e7263be1be217a3af14999a8a57cb039)):借助 Flet Android 应用,开发者可以在一台 Android 手机上实时预览运行于电脑上的 Flet Python 应用,并且最终产物在技术上符合 Google Play

gitblog_00382的博客 430

语音算法面试复习系列3——语音识别基础 + CTC 详解

摘要:本文系统讲解了语音识别(ASR)的核心算法CTC。主要内容包括:1) ASR的核心挑战是输入音频帧与输出文字序列的对齐问题;2) CTC通过引入blank标记和动态规划算法,无需对齐标注即可训练;3) 详细解析CTC前向算法实现路径概率求和,以及贪心和Beam Search解码方法;4) 指出CTC的条件独立性假设导致无法建模输出依赖关系;5) 对比CTC与传统方法和Attention/Transducer的优缺点,分析实际应用中的subsampling技术。文章包含数学推导、代码实现和面试常见问题,

m0_60605453的博客 305

flet.Control 基类全解析:Flet 控件体系的通用属性、布局与生命周期机制

`flet.Control` 是 Flet 框架中所有 UI 控件的公共基类,它定义了每个控件都具备的通用能力:布局伸缩(`expand`)、响应式栅格(`col`)、可见性与可用性控制(`visible`/`disabled`)、透明度、提示信息(`tooltip`)与角标(`badge`),以及一套完整的状态更新与生命周期钩子。本文以 `website/docs/controls/contro

gitblog_00109的博客 726

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Flet 广告集成实战指南:使用 flet-ads 在移动应用中接入 Google AdMob

本文是基于 flet-ads 包的完整技术指南。flet-ads 是 Flet 官方生态中的广告扩展包,用于在 Flet 应用中展示 Google Ads(AdMob),底层基于 Flutter 的 [google_mobile_ads](https://pub.dev/packages/google_mobile_ads) 插件实现。读完本文,你将掌握:如何安装并启用 flet-ads、如何在

gitblog_00041的博客 487

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Flet Canvas 控件实战:用 Python 在 Canvas 上绘制任意图形

Flet 0.6.0 正式引入了 `Canvas` 控件,让开发者可以完全用 Python 声明式地绘制直线、圆、圆弧、路径与文字等任意图形,无需任何前端经验。本文以发布博客为骨架,结合当前仓库中 `flet.canvas` 包的真实源码与示例,系统讲解 Canvas 的图元体系、`Paint` 样式、布局与尺寸控制、手绘应用实现,以及同版本附带推出的富文本、按钮 `url` 等实用特性,读完后你

gitblog_00450的博客 1067

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

flet-code-editor 实战指南:在 Flet 应用中集成代码编辑与内联问题标记

flet-code-editor 是 Flet 生态中的官方扩展包,为纯 Python 构建的 Flet 应用提供带语法高亮的代码编辑器控件(`CodeEditor`),底层基于 Flutter 的 `flutter_code_editor`。本文以该扩展包 [CHANGELOG.md](https://link.gitcode.com/i/01744238a79da13a67401d5aa36a

gitblog_01045的博客 312

使用 Flet MCP 服务器:为 LLM Agent 提供精确、版本相关的 Flet API 知识

Flet MCP 服务器(`flet-mcp`)是一个基于 Model Context Protocol(MCP)的服务器,它把 Flet 的真实 API 索引、示例工程、图标库和 CLI 帮助暴露给 LLM Agent 与 AI 编程助手。本文围绕 [website/docs/cookbook/flet-mcp.md](https://link.gitcode.com/i/35f100ddde0

gitblog_00083的博客 398

Flet CLI 实战:使用 `flet serve` 本地托管与预览 Web 应用

`flet serve` 是 Flet CLI 提供的一个轻量级静态文件服务器命令,用于在本地快速托管 Flet Web 应用的构建产物(`./build/web` 或 `./dist`),方便开发者预览发布效果、联调测试或向他人临时演示。读完本文,你将掌握 `flet serve` 的完整语法、两个核心参数(目录与端口)、它在「构建 → 预览 → 发布」链路中的定位,以及其底层基于 Python

gitblog_00018的博客 343

TAICHI-flet终极指南:如何快速解决99%的常见问题

TAICHI-flet是一款基于Flet框架开发的Windows桌面应用,集成了图片浏览、音乐播放、小说阅读、AI功能等多种娱乐和实用工具。无论你是刚接触这款应用的新手,还是遇到各种使用问题的用户,这篇文章将为你提供完整的解决方案!🎯 ## 为什么你的TAICHI-flet无法启动? ### 问题描述:双击程序无反应 这是最常见的问题之一,很多用户在安装后双击TAICHI-flet程序,却发

gitblog_00110的博客 956

在 Flet 应用中调用系统命令:基于 Python subprocess 的跨平台实战指南

本篇技术指南聚焦于 Flet 开发中的一个实用场景:如何在 Flet 应用中通过 Python 内置的 `subprocess` 模块调用操作系统级命令,从而访问 Flet API 未直接暴露的平台工具与系统能力。读完本文,你将掌握 `subprocess` 在 Flet 桌面端与 Android 端的正确用法、`am start` 拉起 Android 组件的完整参数细节、`shell` 参数的

gitblog_00144的博客 624

Flet Map 的 PatternFit 详解:非实线描边图案如何适配折线与多边形边界

Flet Map(`flet-map` 包)允许开发者在地图上绘制实线、虚线和点线等多种描边图案。当一条折线或多边形边界的长度无法被虚线/点线图案的长度整除时,就会产生"最后一段对不齐"的视觉瑕疵。`PatternFit` 正是用来解决这一问题的枚举类型:它定义了五种策略,决定非实线描边图案如何被适配到目标线段上。本文将结合仓库源码,逐一讲解这五个枚举成员的含义、默认行为、底层序列化链路,并给出可

gitblog_00189的博客 686

用纯Python开发跨平台应用:Flet实战评测与上手指南

Python开发者长期面临GUI开发的两难:Tkinter界面简陋,PyQt学习成本高,而Electron又依赖前端技术栈。Flet作为GitHub上热门的开源框架,给出了新解法——以Flutter为渲染层、Python为逻辑层,让开发者无需编写HTML、CSS或JavaScript,即可构建界面美观、交互流畅的桌面端与Web端应用。其核心设计是将界面控件映射为Python对象,通过事件驱动与增量刷新机制实现状态管理,同时内置多平台打包能力,大幅降低全栈开发门槛。从内部工具、数据分析面板到现有后端的管理界面

weixin_34186128的博客 270

用 Python 编写多平台 To-Do 应用:Flet 官方教程从入门到打包发布

> 本教程以 Flet 官方 To-Do 应用教程([todo.md](https://link.gitcode.com/i/841d42217aa121a1145858f4db106bcb))为主体,结合仓库内完整的分步示例代码([sdk/python/examples/tutorials/todo](https://link.gitcode.com/i/8656642009d7b8bc42d0

gitblog_00994的博客 709

Flet CardVariant 枚举详解:为 Card 控件选择 elevated、filled、outlined 三种 Material 视觉变体

Flet 的 `CardVariant` 是一个用于控制 `ft.Card` 控件视觉样式的枚举类型,它对应 Material Design 3 中 Card 的三种变体:`ELEVATED`(默认、带投影)、`FILLED`(强调容器色、无投影)与 `OUTLINED`(带描边、无投影)。本文将围绕 `website/docs/types/cardvariant.md` 的类型参考文档,结合 [

gitblog_01039的博客 1150

Flet GestureDetector 手势处理实战:让任意控件可点击、可拖动、可缩放

本篇文章围绕 Flet 开源项目中的 `GestureDetector` 控件展开,它于 Flet 0.1.62 版本(2022 年 10 月)随"手势处理"能力一起引入,是 Flet 构建交互式界面(Web、桌面、移动端)的核心原语之一。通过阅读本文,你将掌握:如何把任意 Flet 控件包装成可响应点击、双击、长按、拖动(垂直/水平/双向 pan)、捏合缩放与悬停事件的交互控件,如何通过 `dr

gitblog_00147的博客 730
上一篇: Flutter版本选择指南:9月大限落地,3.47一个月连发四补丁 | 2026年9月
下一篇: 跨平台开发地图 | 2026年10月
程序员老刘·
博客等级 码龄3年 622粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值