Flutter技术在会展云中大显身手
导读
在《会展云技术解读》专题中,我们先发推出了4篇文章,分别从安全、设计、智能推荐系统、移动监控等维度深入解读会展云背后的技术能力:
???? 安全篇——多重安全保障护航云上会展
???? 设计篇——基于服务设计的线上展览
???? 智能推荐篇——深度解读智能推荐系统搭建之路
???? 移动监控篇——面对突发事故,APP如何做好崩溃分析与性能监控?
本篇文章我们将继续介绍会展云中的Flutter技术应用。
会展云解决方案覆盖了业务,技术,平台,应用四个层面,业务层面提供科技感十足的云上展厅、多种模式的论坛会议等;应用层面有多种解决方案,直播解决方案、视频会议解决方案、移动研发解决方案等;技术层面依托海量弹性云计算能力和充足可扩展的云存储及带宽资源,集成了多种京东中台平台的能力,有技术中台、数据中台、智能中台及业务中台能力,可快速响应前台应用的需求。
作为云上展会,最终呈现给广大参会者的对外窗口必然是网站、APP、H5、小程序等线上系统,移动开发必然是重中之重。
众所周知,Flutter是谷歌公司提供的跨平台UI工具包,支持跨Android、iOS等多个平台复用代码,同时允许应用程序直接与基础平台的服务交互。其设计目的是使开发人员能够在不同平台上尽量复用代码,交付高性能的应用。
作为可扩展的分层系统,Flutter有一系列独立的库,每一个库都依赖于更底层的库。对于操作系统来说,Flutter应用和其他的原生应用的打包方式相同。平台特定的嵌入器提供一个入口点,和底层操作系统进行协商,访问诸如渲染界面、输入输出、消息事件循环等服务。通过嵌入器,可以将Flutter代码作为模块集成到现有应用程序,也可以作为一个完整的应用。
作为Flutter的核心组成部分,Flutter Engine主要由C++编写,提供了核心API的低级实现,包括图像,文本布局,文件和网络I/O,插件架构以及Dart运行时和编译工具链。开发人员通过Flutter Framework与Flutter交互,该框架提供了一种以Dart语言编写的响应式框架,包括一系列丰富的组件、基础库。
(图片来源:Flutter官网)
不久前成功举办的中国国际服务贸易交易会(简称服贸会)首次采取新模式——线上线下展会融合,而服贸会APP作为云上展会对外运维的重要窗口,为来自全球不同规模、不同行业的参展商、采购商提供展览展示、论坛会议、洽谈签约的数字平台。
在本次服贸会APP开发中,部分功能模块采用Flutter开发,我们将Flutter实现的功能以一个模块的方式嵌入到主APP中运行。Android以AAR(Android Archive)的方式嵌入,iOS以Framework的方式嵌入。集成方式非常简单,以Android为例:进入Flutter module目录,执行flutter build aar,按照命令的输出结果进行集成。
Flutter module和原生模块之间通过Platform Channel进行通信。Flutter定义了三种不同类型的Channel, 分别如下:
名称 | 描述 |
BasicMessageChannel | 支持传递字符串和半结构化信息 |
MethodChannel | 支持通过异步方法调用进行通信 |
EventChannel | 支持通过事件流进行通信 |
三种Channel虽然相互独立,设计上很相似,都包含如下重要的变量:
变量 | 描述 |
String name | Channel名称,用作唯一标识 |
BinaryMessenger messenger | 负责消息的发送和接收 |
MessageCodec codec | 消息编解码器 |
消息在发送方先通过 codec进行编码,然后通过messenger发送,最后在接收方通过codec解码。
目前我们的混合开发只进行了页面级别的实践,一次展示一个完整的Flutter页面,不存在原生页view和Flutter view在同一页面混合展示的情况。原生和Flutter之间只需要支持页面跳转,没有大量的数据传输要求。基于此我们只采用了MethodChannel进行通信。代码如下:
flutter端:
Android:
我们只对独立的模块使用Flutter开发,在我们的混合方案中,原生和Flutter视图作为独立页面展示,不涉及共享视图的场景。上面介绍的接入方式、通信方式基本可以实现这种维度的混合开发。
作为新一代的跨平台方案,Flutter可以显著提高开发效率(从我们的实践经验看,混合开发节约大概三分之一的人力);Dart作为Flutter应用层的主打语言,语法和主流语言很接近,学习成本低,容易使用;Flutter的hot reload等技术可以显著提高开发调试效率。总之Flutter技术值得投入时间学习使用。
Flutter技术在会展云中大显身手相关推荐
- 重磅发布 | 承载亿级流量的开发框架,闲鱼Flutter技术解析与实战大公开
简介: 闲鱼是国内最早接触使用 Flutter 的团队,经过多次研讨验证并大规模上线,在App性能.稳定性.开发效率上收益甚多.现在,闲鱼将这个过程中的一手实践知识和技术沉淀,整理成册 --<F ...
- Android 11 Bata 正式发布!闲鱼最新升级版 Flutter 技术电子书开放下载
点击"开发者技术前线",选择"星标" 在看|星标|留言, 真爱 回复"666",获取一份技术人专属大礼包 Android 11 Bata发 ...
- Flutter 1.17重磅发布!闲鱼最新升级版 Flutter 技术电子书开放下载!
近期Flutter 1.17发布,该版本包含大量修复内容,解决了自 1.12 稳定版本以来报告的 6,339 个问题,这么大的数字也是前所未有的.如此大的进展很大一部分归功于我们与 Nevercode ...
- Flutter技术调研报告
Flutter技术调研报告 目 录 一.Flutter是什么 1 官方介绍 2 Flutter 与原生的性能对比 3 二.目前状况 4 1.大厂使用情况 4 2.举例说明 4 三.自身分析 5 1.公 ...
- 新书推荐 | Flutter技术入门与实战(第2版)
新书推荐 <Flutter技术入门与实战(第2版)> 长按二维码 了解及购买 从实战角度出发,手把手教会Flutter,案例丰富,实操性强. 编辑推荐 本书在上一版的基础上,根据Flutt ...
- 下载!闲鱼最新升级版 Flutter 技术电子书!
点击上方"逆锋起笔",关注领取视频教程 ☞ 程序员进阶必备资源免费送「各种技术!」 ☜ 往期下载:下载!Python 初学者经典教材 近年来,随着移动智能设备的快速普及,移动多端统 ...
- Flutter技术与实战(4)
Flutter基础 文章目录 Flutter基础 Widget,构建Flutter界面的基石. Widget渲染过程 Widget Element RenderObject RenderObjectW ...
- Flutter技术与实战(6)
Flutter综合应用 文章目录 Flutter综合应用 线上出现问题,该如何做好异常捕获和信息采集 Flutter异常 App异常的捕获方式 FrameWork异常的捕获方式 异常上报 Dart接口 ...
- 闲鱼架构专家,详解Flutter技术架构15页ppt:跨端方案如何选择?
文/技术领导力社区 编辑/Emma 闲鱼架构团队负责人国有.技术专家宗心.灯阳,在文章及公开分享中介绍了Flutter在闲鱼的实践,内容包括:选择Flutter的背景和思考.闲鱼的Flutter新混合 ...
- Flutter技术与实战(5)
Flutter进阶 文章目录 Flutter进阶 如何构造炫酷的动画效果 Animation.AnimationController与Listener AnimationWidget与Animatio ...
最新文章
- 边工作边刷题:70天一遍leetcode: day 11-2
- 数据结构-joseph环
- zynq网络时钟控制寄存器_ZYNQ笔记(6):普通自定义IP封装实现PL精准定时中断...
- IntelliJ IDEA修改项目的根目录名称_修改包目录的名称_修改模块名称_修改项目名称
- Win10怎么禁用系统更新服务 Win10禁用系统更新服务教程
- 那些终将消亡和被取代的科技产品
- 双点双向路由引入/路由重发布
- oracle 伪造ip连接,Oracle做ip连接限制
- 贵州小学计算机编程比赛,2019年贵阳市中小学电脑制作活动成功举办
- Tomcat9的安装以及配置环境
- 算法题目打卡:Ques20201017
- 【MIPS汇编编程练习Lab5】汇编中的条件语句 大于小于比较 if-else statement slt
- 【多模态】多模态摘要简述
- python nose模块简单使用
- 消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记
- 牛客网 小白月赛4 D-郊区春游 最短路+状压dp
- java开发面试自我介绍模板_java求职自我介绍范文_java工程师面试个人介绍
- 一次耐人寻味的SQL优化:除了SQL改写,还要考虑什么?
- #(四)、(五)拟合数学方法的发展简介
- 公司无线局域网安全解决方案