跨平台是跨操作系统,跨端是指客户端
常见的客户端有,web、android、ios 等,客户端的特点是有界面、由逻辑,所以包含逻辑跨端和渲染跨端。
常用的跨端技术方案
-
React Native: 由 Facebook 推出的开源框架,使用 JavaScript 和 React 来构建原生移动应用。它允许开发者使用相同的代码库来构建同时运行在 iOS 和 Android 平台上的应用。
-
Flutter: 由 Google 推出的开源框架,使用 Dart 编程语言,通过自绘UI技术构建用户界面。Flutter 可以在 iOS、Android、Web 和桌面平台上运行,并且提供了丰富的UI组件和工具。
-
Electron: 由 GitHub 开发的开源框架,使用 HTML、CSS 和 JavaScript 构建桌面应用。Electron 可以在 Windows、Mac 和 Linux 等桌面平台上运行,并且提供了丰富的原生API和插件支持。
-
Weex: 是由阿里巴巴前端团队开发的一个开源跨平台移动应用框架,它允许开发者使用 Vue.js 来构建原生移动应用
-
Unity: 一款专业的跨平台游戏开发引擎,使用 C# 编程语言,可以在多个平台上构建高性能的游戏和交互应用。Unity 支持 iOS、Android、Windows、Mac、Web 和主流游戏主机等多种平台。
-
Web Container:Web 容器)通常指的是一个运行在原生应用中的浏览器引擎,用于加载和运行基于 Web 技术开发的应用程序。它可以被视为一种跨端技术的实现方式,但本身并不是一种跨端技术。
跨端的原理
实现跨端的本质也是实现一个容器,给它提供统一的 api,这套 api 由不同的平台各自实现,保证一致的功能。
跨端分为渲染和逻辑跨端,有的时候只需要单独的渲染跨端方案(比如 karen)和逻辑跨端方案,有的时候需要完整的跨端引擎。
weex、react native 的渲染部分都是通过实现了 virtual dom 的渲染,用安卓、ios 各自的渲染方式实现,逻辑部分使用 js 引擎,通过 bridge 注入一些安卓、ios 的 api。
但是不管具体实现怎样,思路都大同小异:跨端引擎需要实现一个渲染引擎、实现一个 vm,基于这套架构实现各种组件和 api,跨端容器上层对接一个 ui 框架,再上层的业务代码可以基于容器的 api 实现跨端的渲染和逻辑