作为开发者,我们总是在追求效率和性能上不断探索和实践,这也是企业生存之道。效率和... 展开 >
胡骁杰,极客邦科技的会议内容运营,主要负责公司垂直会议的内容策划和对外宣传工作。2018 年加入 InfoQ,关注大前端、人工智能、运维、架构等多个技术领域,致力于为推动技术社区的发展贡献自己的力量。
作为开发者,我们总是在追求效率和性能上不断探索和实践,这也是企业生存之道。效率和性能往往是一个矛盾点,为了效率我们探索的通用方案会带来冗余性能损耗、为了性能我们需要针对特定环境专项优化而失去通用性以至于效率折损。跨平台解决方案,以此寻求效率和性能的平衡。对于企业以及团队而言,选择合适的开发语言及框架、跨平台中UI复用、不同平台API高扩展性、基于效率之上性能最优等,都一直围绕着跨平台技术和解决方案展开探索。
相约GMTC 北京2019『跨平台技术』专场,和技术专家一起交流跨平台技术方案及应用实践。
小程序自诞生以来,经过两年多的发展,成为了微信开发者生态中最具有生命力的一环,为外部开发者开辟了全新的想象空间。然而,小程序带来的改变绝不仅限于微信之外,小程序技术栈的确立,又对微信客户端的研发产生了怎样的影响?本次分享将带来微信客户端中基于小程序技术栈的跨平台开发实践。
演讲提纲:
1. 微信客户端的跨平台实践尝试
(1)微信客户端跨平台技术的应用历程
基础组件的跨平台
业务开发的跨平台
2. 小程序与微信客户端
(1)客户端视角的小程序运行框架简介
(2)小程序技术栈如何为微信客户端业务服务
3. 基于小程序技术栈的微信客户端跨平台实践
(1)运行效率和研发效率的平衡
(2)如何解决小程序用作客户端功能开发的体验问题
小程序的体验问题根源
类 RN 的原生渲染解决方案
跨平台的 LV-CPP 渲染方案
使用 Flutter 优化 LV-CPP 跨平台渲染方案
4. 总结与展望
(1)Flutter 在微信中的其他应用
听众收益:
1. 了解微信和小程序的技术架构
2. 可以拓展 Flutter 在不同层面的应用价值
3. 为跨平台方案提供新的思路,在开发效率和性能体验上提出更高的要求
随着去年Flutter beta版本在端侧的可行性验证完成,今年团队进行了Flutter的架构全面升级和研发智能化的建设。在架构演进的过程中,产生了较多的技术创新和实践,本次talk将从以下几个方面进行重点分享:
演讲提纲:
1.Flutter的优势与挑战
回顾beta到release的一些变化,以及去年分享的简单回顾,推导出在大规模应用下我们遇到的新问题--研发效率/稳定性/用户体验。
2.基于Flutter的架构体系演进
(1)架构的升级与完善
核心分享去年不太完善的设计的一些改进,如重新设计构建的新混合栈体系,以及资源一体化项目的一些进展和效果。
(2)业内首创,复杂业务克星fish redux
核心分享新开源框架fish redux的设计,以及实践效果。
3.基于Flutter的工程体系建设
(1)Flutter与研发智能化
在闲鱼构建的研发智能化体系是怎样的,给Flutter带来了怎么样的效率提升。
(2)Flutter与高可用体系建设
基于Flutter的高可用性的度量标准以及设计方案是怎样的
4.总结与展望
听众收益:
1.了解Flutter在中大型App场景下的问题与瓶颈,此类问题同样适用于其他规模App。
2.为业内提供已验证的新架构思路,提供业务架构设计的另一种可能性。
3.为业内提供基于Flutter的研发智能化的工程体系思路。
作为跨平台方案,2018年开始推出的 Flutter 可谓是跨平台的优异解决方案。随着 Release 1.0 的发布,美团积极跟进了 Flutter 技术。发现了 Flutter 在优异的跨平台方案上最大的不足在于其缺乏一定的动态性。所以美团技术团队基于 Flutter 开发了动态化的能力,使之形成了一个支持动态的 Flutter 开发平台。
演讲提纲:
1. Flutter 前世今生
(1)简短的介绍下 Flutter,进而引出 Flutter 缺乏动态化而带来的不足。
2. 跨平台与动态化
(1)跨平台
随着移动开发越发的追求开发效率与体验一致性,各大公司对跨平台的需求日益攀升。Flutter 为跨平台提供了很优异的解决方案。我们可以和曾经的跨平台方案进行一系列的对比。
(2)动态化
为了满足市场快速更新和迭代的需要,尤其是电商行业是非常需要动态化能力的。平台化 - 容器化 - 生态化是一个行之有效的发展路径。介绍下美团在这些方面的建设。
3. Flutter 平台化的建设
(1)基于 Flutter 的平台架构
有了 Flutter,我们可以从双端架构向跨平台有了很好的迁移,也可以增加动态化方案以满足业务快速迭代的需要。
(2)逻辑层的动态化
介绍如何通过修改 Flutter Engine 使其满足 JavaScript 脚本的运行。
(3)渲染层的动态化
介绍从 XML + CSS 到本地映射结构,通过分析输出到 Widget 的过程。
4. 总结与展望
听众收益:
1. 了解 Flutter 的优势和不足,避免采坑
2. 为行业跨平台 + 动态化提供一种新的架构思路
3. 了解多语言嵌套能力的建设和动态化渲染能力的建设
Electron 是一款流行的跨平台桌面客户端开发框架,VSCode、Teams 等多款基于它开发的产品的成功,更是证实了它在大型跨平台桌面客户端开发方面的能力和优势。本次演讲将结合Lark桌面客户端的开发实践,分享基于 Electron 的跨平台桌面客户端开发在启动优化、内存管理、异常处理、安全加固、架构设计等多个维度面临的挑战和相关的实践经验。
本演讲最后将回顾总结基于 Electron 的跨平台桌面客户端在开发实践中的一些误区和注意事项。同时也会展望未来结合 WebAssembly、SharedArrayBuffer、Web Worker 等 Web 技术,如何对基于 Electron 的应用做到更自然且更极致的体验优化。
演讲提纲:
1. 为什么选择 Electron
(1)Lark 的需求介绍
(2)WebApp 的可行性
(3)基于 Chromium 定制 WebApp Runtime
(4)基于 Electron 的 WebApp Runtime
(5)Electron 被证明是可行的
2. Lark 的实践经验
(1)使用 Electron 的开发生态
(2)实践中的技术挑战
(3)快速启动
(4)内存管理
(5)CPU 异常处理
(6)容灾兜底
(7)安全加固
(8)业务治理
3. Electron 的使用误区
(1)Render Process Node Intergration
(2)Remote 的性能问题
(3)Require 的性能问题
4. 未来的尝试方向
(1)使用 SharedArrayBuffer 实现共享内存
(2)使用 Wasm 下沉基础模块
听众收益:
1. 了解 Electron 的适用场景和基本原理。
2. 了解大型 Electron 应用在工程实践方面的经验。
3. 了解 Electron 的开发误区。
4. 了解未来的 Web 技术如何与 Electron 融合 。