热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【前端】Flet:一款支持python及多语言开发的UI库

文章目录介绍开发生态支持语言运行体验组件API热更新开发计划Roadmap20227月-8月安全手机端桌面端Controls(控件)核心功能用户指引(Usereduc




文章目录


  • 介绍
    • 开发生态
      • 支持语言
      • 运行体验

    • 组件
    • API
    • 热更新

  • 开发计划 Roadmap
    • 2022 7月-8月
      • 安全
      • 手机端
      • 桌面端
      • Controls(控件)
      • 核心功能
      • 用户指引(User education)

    • 2022 9月到12月
      • 手机端
      • 控件(Controls)
      • 编程语言支持
      • 核心功能





介绍

Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.


Flet是一款使用python语言, 帮助开发者构建实时应用(web应用、手机应用、桌面应用)的框架。就我目前的体验来看,该框架底层基于flutter,使用声明式UI,开发体验类似于dart写flutter-app。
启动速度方面, 作为桌面端运行时比较快;作为web运行就慢的一p,理论上至少要经历 python->dart->js的转译过程,自然快不起来。



开发生态


支持语言



目前只支持python开发,后续要支持以下语言 js| c#| go,但我觉得会延期的,毕竟今天都11月中旬了。
在这里插入图片描述



运行体验


  • 直接使用 python main.py运行,1秒级启动。
  • pyinstaller打包为多文件,启动需要4秒;打包为单文件,启动需要更久。
  • 打包时长随你的项目体积和引入库数量而增加,初始大概20s完事。
  • 手机端暂时只支持部署到服务端, 然后浏览器访问,慢的一p。
  • 界面效果类似于uwp应用, 比winform界面好看点。
    在这里插入图片描述

组件

flet组件的核心是 控件Controls, 界面由控件按层级或者树状结构组成。


  • 按钮
  • list
  • 容器(类似于一个空盒子)
    。。。。。。挺丰富的,其余在官网https://flet.dev/docs/controls

API


  • 本地储存能力
    clientStorage, sessionStorage ( 类比web就行 )
  • 文件选择器和拖拽上传
  • 数据加密(使用你自定义的key)

热更新



开发时使用 flet -r main.py. 则递归检查main.py同级的文件或文件夹内代码的改变,实时热更新视图。



开发计划 Roadmap

以下为翻译



2022 7月-8月


安全


  • 开放授权协议认证 (OAuth): GitHub, Google, Azure (Microsoft Account).

手机端


  • Flet 小组件 for Flutter
  • Flet Studio苹果应用 in App Store
  • Flet Studio安卓应用 in Google Play

桌面端


  • Windows and macOS “host” client with hot reload, so the app could be run as flet main.py
  • 似乎已经支持了hot-reload

Controls(控件)


  • ✅ Routing and navigation
  • 导航
    • 导航抽屉:NavigationDrawer
    • 导航栏:NavigationBar
  • 响应式布局(Responsive layout)

核心功能


  • PUbSUB:看着似乎是,使用url访问时,可使用此多人实时通信功能。
  • ✅ PubSub

用户指引(User education)


  • 基于python的样例app(Sample apps in Python):
    • Chat (聊天)

2022 9月到12月


手机端


  • White-labeled Flet mobile app
  • 将flet-app打包成单独的apk或者ipa包
  • 将flet嵌入原生app。

控件(Controls)


  • 表格:DataTable
  • 更多的图表(似乎已经有柱状图和折线图了):Charts
  • 自适应的控件,按照平台差异来决定如何展现:Adaptive controls (controls that change their look depending on platform)
  • ✅ Animations

编程语言支持


  • Javascript/TypeScript
  • Go
  • C# (.NET)

核心功能


  • flet内嵌一个支持orm的数据库






推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Flutter添加APP启动StoryView相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
author-avatar
佩人永雪3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有