vase原生跨平台

九年前,女:“对不起,我不会喜欢你的,你不要再坚持了。就好比让原生App运行到浏览器里,可能吗?”,男生听后默默走开。九年后,在Fanx编程语言专栏里,我听到一名vase开发程序员给大家讲述了这个故事。为什是九年不是十年,那是因为我翻阅git提交记录发现,我在2011年第一次提交了vase框架的代码。

什么是vase

Vase是Fanx语言开发的开源跨平台UI开发框架,使用它可以快速构建高质量的移动端App。一份代码同时运行在Android/iOS/浏览器/桌面。

static Void main() {
  Frame {   
     VBox
     {
        padding = Insets(50)
        layout.height = Layout.matchParent
        spacing = 15
        Button {
          text = "Flat Button"
          style = "flatButton"
          onClick { Toast("hello world").show(it) }
        },
        Button {
          text = "Push Button";
          onClick { Toast("Hi").show(it) }
        },
        Button {
          text = "Disable Button";
          enabled = false
          onClick { Toast("hello world").show(it) }
        },

        ToggleButton { text = "switch" },
        ToggleButton { text = "checkBox"; style = "checkBox" },
        RadioButton { text = "radio1" },
        RadioButton { text = "radio2" },

      }
    },
  }.show
}

vase原生跨平台_第1张图片

丰富的UI控件

vase提供丰富的UI开发组件,包括:

  • 各种按钮(Button,Switch,CheckBox,Radio,Combox)
  • 警告/输入对话框
  • 时间日期对话框
  • 菜单和上下文菜单
  • 图片的各种拉伸、掩模、多指缩放
  • 高性能的ListView和上拉下拉刷新
  • 滑动条和进度条
  • 文件选择/拍照 上传
  • 图片轮播
  • 用于PC的表格和树形视图
  • 多行文字输入

简单强大的布局容器

布局容器包括HBox、VBox、Pane、FlowBox、EdgePane等。支持各种对齐和大小策略,后面会单独文章介绍。

灵活的样式系统

vase的UI和样式系统的分离的,类似于CSS的架构。和CSS类似,可以通过ID、控件类型、样式类型来指定样式。很容易做到样式共享和换肤功能。也支持直接设置样式。

吸引人的微动画

无论是触摸反馈还是滚动,微动画无处不在。

基于async/awit的Http客户端

  • 人体工程学的异步,没有回调。
  • 支持Cookie
  • 支持multipart文件上传协议。
  • 支持网络图片自动加载和缓存

预览Demo

这里有Android demo安装包可供预览。链接: https://pan.baidu.com/s/1HuF8BBnDZ3nfxu7qnH_klA 提取码: nn83

欢迎关注专栏和提意见。

你可能感兴趣的:(android,flutter,ios,react-native,javascript)