目标全平台的Flutter支持Web应用开发了!
Flutter作为一个可移植的UI框架,已经支持现代Web应用开发了!我们很开心已经发布了SDK预览版,这样你可以在Web浏览器里直接运行你的Flutter UI代码。
Flutter Web的目标
从去年Beta版发布以来,客户们已经使用Flutter来创建可以运行在iOS和Android上的移动应用了。但是,Flutter是以可移植的UI工具集构架的,它还可以运行在其他环境下,例如Windows、Mac、Fuchsia甚至Raspberry Pi。 由于Flutter是使用Dart构建的,它针对原生机器码和JavaScript都包含了生产级的编译器,因此我们有了一个坚实的基础。接下来的挑战在于需要使用web平台的对等单元来替换基于Skia的图形引擎和文本渲染器。
要正确地实现这一点,我们需要提供:
- 60帧/秒快速平滑动画的性能
- 与其他平台一致的行为和视觉感受
- 可以与当前开发模式集成的高效的开发者工具
- 在所有现代浏览器上对核心web特性的支持
虽然用于Web的Flutter还在开发中,在上述几个方面都还有很多工作要进行,不过我们已经可以和大家分享一个预览版了,你可以尝试以下,期待你的反馈!
Flutter Web总体架构
Flutter Web的总体架构与用于移动平台的Flutter非常接近:
Flutter框架(上图中绿色部分)在移动和web平台中共享,它提供了Flutter的UI基础层的高层次抽象,包括动画、收拾、基础组件类、以及大多数应用需要的物化主题的组件集。如果你已经在Flutter上开发,那么使用Flutter Web时你会感到非常熟悉。
魔力来自于将这些概念翻译到浏览器平台。我们重新实现了dart:ui库,使用基于DOM和Canvas的代码替换了移动平台上对Skia引擎的绑定。当你为Web平台编译Flutter代码时,你的应用、Flutter框架、以及Web版本的dart:ui库都将编译为JavaScript,可以运行在任何现代浏览器上。
我们仔细地拥抱web核心特性,例如将Flutter的路由模型与浏览器History无缝集成。我们同时也努力让Flutter适应桌面环境,例如启用鼠标滚动、悬停、聚焦等等,虽然这些特性在移动体验中并不需要。
Flutter Web项目聚焦于框架提供的核心价值:丰富的交互式体验。而聚焦于文档的Web内容依然可以通过嵌入Flutter Web可视化元素来获益。
预览版本的Flutter Web框架当前是作为已有Flutter框架的一个临时分支。这使得我们的工程师可以快速实现Web功能,同时核心团队可以继续维护并改进生产可用的工具集。我们一进刚开始将浏览器支持合并到主仓库。我们计划提供一个Flutter工具集,提供一个单一的框架来满足移动、Web以及其他平台的开发需要。
接下来计划的工作包括:
- 支持文本相关的特性,例如选中、复制、粘贴
- 支持插件。对于像位置、摄像头、文件访问这些特性,我们希望使用单一API来桥接移动平台和Web
- 为PWA这样的科技提供开箱即用的支持
- 使用已有的Flutter命令行和IDE集成工具来统一web开发工具链
- 使用DevTools调试web应用
- 性能的改善、浏览器的支持,以及可访问性
你可以到flutter.dev/web查看示例、文档以及其他资源的链接,我们期待着看到你的创作!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里开发者招聘节 | 面试题15:如何看待异构计算在整个云计算中的位置和作用? | 5月13日云栖夜读
点击订阅云栖夜读日刊,专业的技术干货,不容错过! 阿里专家原创好文 1.阿里开发者招聘节 | 面试题15:如何看待异构计算在整个云计算中的位置和作用? 阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的笔试真题这一次将陆续放出。并通过这些笔试真题开放阿里巴巴工作机会,让更多的开发者加入到阿里这个大平台。阅读更多》》 2.十五年了,蚂蚁为何执着攻坚这两个技术堡垒? 蚂蚁金服副CTO 胡喜应邀做了《蚂蚁金服十五年技术架构演进之路》的演讲,分享蚂蚁金服对金融科技未来的判断,并首次对外公开蚂蚁金服技术人才培训体系以及 BASIC College 项目。阅读更多》》 3.Knative Eventing 中 Channel 如何注入默认 Provisioner 本文讲述在 Knative Eventing 中创建 Broker 时,如果不指定 provisioner, 系统会自动创建默认的 provisioner, 那么这个机制是如何实现的呢? 本文基于 Knative Eventing 0.5 版本,介绍了这个实现机制。阅读更多》》 4.记一次吐血的ping: unknown hos...
- 下一篇
重磅 | 阿里云POLARDB荣膺2019中国数据库年度最佳创新产品
在日前的DTCC 2019(第十届中国数据库技术大会)上,阿里云自研云原生数据库POLARDB获选2019中国数据库——“年度最佳创新产品”。 POLARDB是阿里云在2018年正式商业化的云原生数据库,采用存储计算分离、软硬一体化设计。通过高速的RDMA网络提供共享存储的架构,快速实现弹性缩扩容,单个实例可扩展到1000核计算能力,同时可横向扩展到100TB存储空间,满足大规模业务场景的需求。 在100TB的数据容量上,POLARDB可提供优于传统商业数据库的性价比。 阿里云RDS & NoSQL数据库产品总经理曹伟表示:“云原生数据库天然拥有云计算的弹性能力,同时兼具开源数据库简洁易用、开放的特点,以及传统数据库处理性能的优势,POLARDB将更好地帮助大企业轻松实现上云,让企业更专注于业务创新。” 阿里云RDS &a
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19