在兼容和继承APICloud所有API、模块、技术栈以及用户体验的基础上,APICloud定义了一套新的代码编写标准(DSL):基于标准WebComponents组件化思想,兼容Vue/React语法特性,通过一次编码,分别编译为APP、小程序、Webapp代码,实现多端开发。
APP代码使用DeepEngine3.0运行,全翻译式的运行原理提供完全原生的体验和性能。
APICloud多端技术的工作原理
开发者通过开发工具基于avm语法标准编写的代码,通过webpack、rollup等编译工具分别编译到app、H5以及小程序端。其中,编译到app端时,app基于V8引擎执行,avm.js作为runtime,二者实时协作完成UI的原生渲染以及业务逻辑代码的执行;编译到标准H5端,基于浏览器或者webview运行时,代码则借助于avm.js直接渲染到浏览器或者webview的真实dom上;编译为小程序端,则对应小程序代码,直接生成小程序语法。
APICloud在多端技术的4个核心能力:
跨平台引擎
历经近十年的发展,跨平台技术和生态如今趋于稳定,企业和开发者对跨平台技术已形成共识,并大规模的应用到各种业务场景中。
在此期间,跨平台技术分离出两个主要方向:
1.混合方向:即HTML5+Native混合,也就是我们通常说的混合开发:通过HTML5快速实现APP的UI布局、业务逻辑,在开发过程中涉及HTML5无法实现或者体验不好的功能,则借助Native模块来实现。
该模式的APP引擎整体基于Webview架构,对前端开发者友好,背靠前端庞大的JavaScript生态,前端开发者无需学习新的技术即可开发APP。该方向代表技术为Cordova、AppMobi、Ionic等。
2.中间语言(DSL)编译方向:开发过程要求使用特定的语法编写APP代码,通过编译环境将代码编译为Android/iOS原生APP。开发者无需学习AndroidiOS原生技术以及Java、Object-C、C/C++等复杂的开发语言即可完成APP开发。
该模式的APP引擎不依赖Webview,而是借助VirtualMachine,比如V8/JSCore引擎,通过JS-Runtime实现更为复杂的代码逻辑来满足交互处理、通信和状态管理,同时扩展和完善JS/Native的通信机制、封装完善的组件和系统能力等,实现完全原生的渲染。该方向既延续了前端开发体系,又最大限度保证了渲染的性能,代表技术为ReactNative、Weex。
APICloudDeepEngine3.0同时支持以上两种技术模式,允许开发者在同一个APP中自由选择使用其中一种方式进行开发。
DeepEngine使用全翻译式原理,将Javascript编译为NativeAPI,为APP提供完全原生的体验和性能。
跨端JS架构
在大前端技术领域,当我们遇到了需要解决重复性的问题时,通常会考虑设计一个DSL(Domain-SpecificLanguage)或者抽象出一个框架层,专门来解决这些类似的问题。使用DSL我们并不需要为特定终端编写多套代码,还可以利用宿主语言的抽象能力,确保各终端渲染效果的一致性以及对开发者友好。
常见的DSL有:React支持的JSX语法、Vue定义的SFC结构和v-*指令集、