# 前言

Kreator是Dmall大前端团队开发,旨在降低移动端跨端业务适配成本,达到Code once,Run everywhere的Javascript工具包。

多点Dmall的C端项目存在Web页面与多个客户端对接兼容的需求场景,如果页面需要同时运行在小程序、App,浏览器环境中。而由于各客户端底层架构、运行环境的差异,致使对接的页面需要在业务中编写大量兼容代码,如Router的跳转,Cookie的种植拔除等,对业务开发人员较不友好。由于多点的前端架构属于微前端模式,存在一定分布式的特性,这导致各个业务项目在Library自治时,底层的调整会引起剧烈的影响,因此Library完全应当是标准化、统一收拢的。

C端业务团队考虑一次性抹平跨端兼容的困境,Kreator便应运而生。它将提供一系列跨端统一差异的基础Api。开发人员只需按需接入所需的Router、Cookie、Http、Serivces等模块,调用时,SDK内部将抹平各端差异,不会将兼容成本暴露在上层业务开发过程中。

Kreator不关注UI与视觉,它仅关注逻辑与Api部分,因此它是不存在逻辑与视图耦合问题的。

Kreator,即缔造者、造物主之意。

通常亦指德国激流金属乐团Kreator (opens new window),一支音乐中蕴含着爆炸性能量的乐队。

# 它能帮我做些什么?

如果您的业务需要同时运行在多种客户端环境中,如多点App、麦德龙App、多点微信/支付宝小程序、各类商家小程序、浏览器环境等等,但是受困于客户端的差异,需要在业务代码中作大量的环境判断——甚至您可能已经在自己的项目中封装了大批的环境兼容垫片。

Kreator正是为此诞生,在它的帮助下开发者可以只处理最小程度的环境兼容(例如业务逻辑上的判断),而无需关注客户端各种页面路径、存储接口、路由接口等等的差异性。

如果您在负责的是HybridApp业务,我们同样强烈建议您使用Kreator的NativeApi模块来调用App原生能力接口。通过Kreator封装的Api接近微信小程序风格,让开发者更少关注调用方式的痛点,只需留意业务逻辑的实现。

# 为什么不是...?

# Vue Plugins?

考虑Dmall大前端体系的特性,架构层面我们并不100%依赖Vue框架,因此我们不认为类Vuex的插件接入方式是个非常好的主意——很明显它与Vue技术栈形成了强依赖关系。并且,我们依旧有部分不依赖现代框架的纯Javascript应用在线上运行着。