跨平台开发方案

@GuoYongfeng 2018-06-24 02:06:17发表于 iuap-design/blog

我们提到的跨平台,一般指移动应用的跨平台,包括 IOS、Android、H5、微信小程序,这里不包括 PC Web、桌面端等。

多端数据的采集、上报和分析,实现对多端应用的监控以及和数据平台的对接,这和跨平台开发是两个方向。

聊跨平台解决方案的一般很少提到多端框架,多端意味着要涵盖移动端、PC Web 端、桌面端、智能端等,目前仅讨论移动端的跨平台开发就已经是个很大的技术体系了。

1、 美团跨平台动态化框架:Picasso【未开源】

Picasso:美团高性能跨平台动态化框架,基于通用编程语言的布局DSL代码编写布局逻辑,通过PModel作为Picasso布局渲染的中间结果,和最终渲染出的视图结构一一对应;Picasso渲染引擎根据PModel的信息,递归构建出Native视图树,并完成业务渲染信息的填充,从而完成Picasso渲染过程。

2、谷歌跨平台开发框架 Flutter

Flutter 是一款移动应用程序 SDK,致力于使用一套代码来构建高性能、高保真的 iOS 和 Android 应用程序。Flutter 包含了一个现代的响应式框架【使用Dart 语言】,一个 2D 渲染引擎【 Skia 2D 图形引擎】,现成的 Widget 【质感设计(Material Design)】,和开发工具。这些组件携手帮助你设计,构建,测试和调试应用程序。

image

3、京东 Taro (泰罗):遵循 React 语法规范的多端统一开发框架

Taro 是一套遵循 React 语法规范的多端统一开发框架(其本质是基于 React + React Native 的向上改造),我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信小程序、H5、App 端等)运行的代码。

image

4、Tangram:阿里猫客的 Native 动态化方案

Tangram不仅仅是一个Native(iOS & Android)的界面开发框架,而是我们从日常工作中沉淀出的一套界面解决方案,涵盖了Native SDK,GUI操作台,后端逻辑容器,组件库机制的一整套方案。

image

从协议+模板到渲染的解析过程:

image

参考