Flet

如果未使用打包工具管理依赖项,请通过执行以下命令安装 gem

$ gem install flet

Flet

Build status

Flet 是一个框架,可让您轻松地使用您喜欢的语言构建实时的 Web、移动和桌面应用程序,并安全地与您的团队共享。无需前端经验。

⚡从想法到应用,只需几分钟

团队的内部工具或仪表板、周末项目、数据录入表单、信息亭应用程序或高保真原型——Flet 是快速构建美观的交互式应用程序以服务用户群的理想框架。

? 简单的架构

告别包含 JavaScript 前端、REST API 后端、数据库、缓存等的复杂架构。使用 Flet,您只需编写一个整体有状态的 Ruby 应用程序,即可获得多用户、实时的单页应用程序 (SPA)。

? 自带电池

要开始使用 Flet 进行开发,您只需要您喜欢的 IDE 或文本编辑器。无需 SDK、无需数千个依赖项、无需复杂工具——Flet 内置了 Web 服务器,支持资源托管和桌面客户端。

   由 Flutter 提供支持

Flet UI 是使用 Flutter 构建的,因此您的应用程序看起来很专业,并且可以交付到任何平台。Flet 通过将较小的“小部件”组合成即用型“控件”,并采用命令式编程模型,简化了 Flutter 模型。

? 说你的语言

Flet 是语言无关的,因此您团队中的任何人都可以使用他们喜欢的语言开发 Flet 应用程序。 Python 已支持,Ruby 正在开发中,Go、C# 等 即将推出

? 交付到任何设备

将 Flet 应用部署为 Web 应用并在浏览器中查看。将其打包为 Windows、macOS 和 Linux 的独立桌面应用。作为 PWA 安装在移动设备上,或通过 Flet 应用在 iOS 和 Android 上查看。

Flet 应用示例

目前您可以使用 Python 编写 Flet 应用,很快将添加其他语言。

这是一个示例“计数器”应用

require 'flet' 
require 'flet/IconButton'
require 'flet/Page'
require 'flet/Row'
require 'flet/TextField'
require 'flet/icons'

def main(page = new Page)
    page.title = "Flet counter example"
    page.vertical_alignment = "center"

    txt_number = TextField(value="0", text_align="right", width=100)

    def minus_click(e)
        txt_number.value = int(txt_number.value) - 1
        page.update()
    end

    def plus_click(e)
        txt_number.value = int(txt_number.value) + 1
        page.update()
    end
    page.add(
        Row(
            [
                IconButton(icons.REMOVE, on_click=minus_click),
                txt_number,
                IconButton(icons.ADD, on_click=plus_click),
            ],
            alignment="center",
        )
    )
end
flet.app target=main 

要运行该应用,请安装 flet 模块

该应用将在原生操作系统窗口中启动——这是 Electron 的一个很好的替代品!

现在,如果您想将该应用作为 Web 应用运行,只需将最后一行替换为

flet.app target=main, view=flet.WEB_BROWSER

再次运行,您将立即获得一个 Web 应用

入门

查看 python flet

社区

为这个精彩的项目贡献一份力量

  • 阅读 CONTRIBUTING.md 文件

GitHub

查看 Github