说说那些大厂的跨平台方案

说说那些大厂的跨平台方案

七月 26, 2018

跨平台方案

跨平台是什么意思?

源自更专业的wiki: 跨平台泛指编程语言、软件或硬件设备可以在多种操作系统或不同硬件架构的电脑上运作。

通俗直白地说就是: 前端UI布局时基于html+css, androidUI布局基于layout, iosUI布局基于cocoaFrame,小程序…也就是每一门语言,你如果只是想要画几个简单的方块,非常痛苦地需要使用对应的语言去书写。

跨平台则是使用一种语言去写,再经过某种工具转换为对应平台/端的代码,从而实现统一(跨平台)。

实现跨平台通用的方法?

前更深层面的东西还不是很了解就不说了,说一下从UI层面实现跨平台最便捷通用的方法:DSL。

DSL又是个什么?

DSL 是 Domain Specific Language 的简称,是指为某些特定领域(domain)设计的专用语言。

通俗直白的意思就是:实现跨平台,只需要实现一门DSL语言即可(不要太过担心,创造一门DSL语言即便是零基础也可以一步步实现)。拥有了一个新的DSL之后,就可以着手再将DSL经过特定工具分别编译为android或者ios或者前端的代码。

总结起来就是:server-driven rendering.

其中关于DSL更深入的优劣了解,移步王垠大神(编程语言学顶级专家)关于DSL的详解。http://www.yinwang.org/blog-cn/2017/05/25/dsl

目前流行的跨平台方案都有哪些?

Top1. Electron
Top2. nw.js
Top3. framework7
Top4. flutter

跨平台 = web端 + 移动端 + 桌面端

适用于国情(大厂)的跨平台方案

  1. weex (阿里) [laji]
  2. Taro (京东) [开源,蛮稳定]
  3. Picasso (美团)[未开源]
  4. react Native (Facebook) [ … ]