电子说
在Google的推广下,很多人知道了Flutter在前端的战斗力。
Flutter是一个开源的UI工具包,可以用于构建跨平台的移动应用程序、Web应用程序和桌面应用程序。与许多其他跨平台解决方案不同,Flutter不使用WebView或本机UI组件来实现跨平台的功能,而是使用其自己的设计风格来构建自定义的用户界面。
但在Google主推的技术栈中,Dart是Flutter的主力编程语言。
Dart具有许多现代编程语言的特性,例如静态类型检查、异步编程和扩展方法,可以在Flutter中广泛使用。
如果大家懂Dart当然最好,但如果一个Python开发者想用Flutter做好看的界面,他要怎么做呢?
Flet就是在Python中构建Flutter应用最快的方法。
它使开发人员可以用Python轻松构建实时网络,移动和桌面应用程序,无需前端经验。
本教程用Flet+Python创建了现代登录表单。可以让大家一窥Python在Flet的加持下能有怎样的发挥。其中的字段阴影、动画和状态控制……都使UI和UX更具吸引力。
之前的Flet 桌面应用程序的架构
在桌面上运行 Flet 程序涉及三个进程协同工作:
Python runtime () — 运行 Python 脚本的解释器。这是从命令行开始的,Python 启动 Fletd 服务器并通过 WebSockets 连接它。(Python3)
Fletd server () — 用 Go 编写的 Flet Web 服务器,侦听 TCP 端口。Fletd 保存所有用户会话的状态(对于桌面应用程序,只有一个会话),并在 Python 程序和 Flet 客户端之间调度页面更新和用户生成的事件。(fletd)
Flet client () — 用 Flutter 编写并在本机操作系统窗口中显示 UI 的桌面应用程序。Flet 客户端通过 WebSockets 连接到 Fletd 服务器。(flet)
新的 Flet 桌面架构
Flet桌面应用架构可以通过用Python编写的“存根”替换Fletd并通过套接字(Windows)和命名管道(macOS和Linux)与Flet桌面客户端通信。
Flet 移动架构
移动应用程序在非常严格的环境中运行,存在许多限制。例如,在 iOS 上,应用无法生成新进程。换句话说,Flet Flutter应用程序不能只是启动“python.exe”并将脚本作为参数传递。
幸运的是,Python 可以作为 C 库嵌入到另一个应用程序中,而 Dart(编写 Flutter 应用程序的语言)允许通过 FFI(外部函数接口)调用 C 库。
此外,虽然Android允许加载动态链接的库,但iOS需要将所有库静态链接到应用程序可执行文件中。
Flet 移动架构如图所示:
Python 运行时将与 Flutter 客户端应用程序静态或动态链接,并通过 FFI 和命名管道调用。
不过,在移动设备上运行Python会有一些限制。比如要求使用“纯”Python模块,或专门为移动ARM64架构编译的本机代码模块。
你只需要打开命令行,然后输入:
pip install flet
就可以拥有这个精美的前端框架了。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !