微应用平台方案设想

简介: 微应用平台方案设想

什么是微应用

其实和小程序还有微前端的概念有点类似(抛去小程序的商业模式来说),都是为了将一大堆的小应用集中到一个大的应用上。我们设想能不能有一种方案,像小程序一样的接入,但却不想像小程序一样,再用特定的标签去构建,增加技术的普及成本;像微前端那样,有一个主应用和众多子应用之间做通信。快速集成“现有老旧的项目应用”。有“按需加载”带来的首屏极速开启的便利,又有“全量加载”时,页面切换的流畅体验。


简单的想法

这里我计划用一个原生应用作为这样一个主应用,通过 web sdk,也就是 js-api 去打通各个自应用之间的通信问题。类似的方案其实在混合开发中应用的很广泛。但是我设想着有没有这样一套方案,依托于 umi 让这样一个流程推进的更加顺滑。在性能体验上做到更好。


为什么说想要依托与 umi 构建呢?

因为 umi 的插件机制可以很灵活的,将需要扩展的功能快速接入,或将仅仅编译时需要的运行时环境剔除到项目之外。举个例子来说,比如我提到的 web sdk,可能我在开发过程中需要一个 mock 环境来调试,但是当微应用被集成到主应用之后,它就不需要这样一个 mock 环境了,这在 umi 中可以很容易的实现。当然在其他的前端架构中,通过 webpack 的配置要剔除某些东西,也是一件简单的事情,但是要把某些东西加回来,可能就比较困难了。比如,在 umi 中请求 request 对象,它在调试环境(纯 web 的环境中)可能就是一个 featch ,但是在微应用平台中,可能就是一个类似 wx.request 这样的方法了。同样的比如路由跳转的方法,其实也是同样的道理。


方案的初稿

一、应用开发(包含扩展能力)

支持所有的web方案,不强制使用框架,最终产物也更贴近于web资源,只是在需要原生能力的时候调用平台SDK。但是依旧推荐使用alita 开发,因为可以通过框架层支持,把产物包拆的更小,可以使打开微应用的时候加载的web资源更少。可以解决web应用要么首屏打开慢,要么切换页面需要再次加载资源的问题。

二、平台SDK对接(应用API和服务端API)

1、应用API

① 基础能力(设备系统信息、更新微应用)

② 网络能力(请求、上传、下载、WebSocket)

③ 媒体(地图、图片的选择和保存、相机、音视频)

④ 位置(定位、选择地址)

⑤ 文件(保存、删除、选择)

⑥ 开放能力(登录、授权信息、支付、指纹和人脸识别、活体检测、数据统计)

⑦ 设备(NFC、剪切板、屏幕信息、扫码)

2、服务端API

① 登录

② 获取用户信息

③ 接口调用token

三、平台实现方案(这里只描述现已知的技术难点)

1、原生端(无特指的话均为ios和安卓)

① 走 web 资源下载的方式,类似cordova的形式,然后做文件管理,不同的微应用定向到不同的文件夹。

② 提供sdk相对应的原生函数方法。

③ 提供alita需要的环境,比如在全局变量中有 react 等基本库。

④ 提供开发调试的环境,未上架之前如何调试原生能力

2、web端

① 编译时抽离一些基本库,只打包业务需要的代码。基本剥离了所有的第三方库

② 提供 sdk 的对接文件

③ 提供开发调试环境,未在原生场景时,调用原生方法应给出正确的说明等

④ 编译产物是否需要加密,涉及到原生端下载web资源的方式

3、服务端

① OAuth2.0 认证

② 大数据分析

③ 数据统计

4、后台管理端

① 数据统计报表

② 数据分析平台

③ 基本的功能对应《平台接入流程》


总结

其实上面的方案,在很多游戏分发平台上都有过类似的实践。实现难度不是很大。但是我觉得最大的难点,也是方案最大的亮点,通俗的讲就是提供一个 umi 项目的运行时环境,比如将 umijs/plugin-react 这个插件集,所需要的第三方库,都打包到浏览器中。项目中仅仅需要打包的就是那么一点点业务文件。加上 gzip 压缩的话,一个产物包的大小可能仅仅只有100kb。这样一个环境可以在app内静默加载或者预加载,而在打开微应用或者切换微应用的时候,仅仅需要从远程更新 100kb 的 web 资源文件。

(以上言论仅仅只是一个设想,各位大佬请多多指教)

目录
相关文章
|
数据采集 机器学习/深度学习 监控
mPaaS 核心组件:支付宝如何为移动端产品构建舆情分析体系?
移动舆情分析 MMA(Mobile Media Analysis)通过采集应用内、应用市场反馈及外部媒体等内容,经过机器学习、自然语言处理等大数据技术,为企业的产品进化、运营、营销、公关提供实时、有效的舆情监控-分析-预警-处理的闭环能力,帮助企业发现与跟踪产品问题,收集产品建议,危机公关,辅助市场调研、产品营销与竞争分析。
2553 0
|
24天前
|
安全
什么是短剧系统开发/需求设计/逻辑方案/项目指南
The short drama system development plan refers to the development of a system for organizing and managing the process of short drama production, release, and playback.
|
1月前
|
新零售 供应链 大数据
推三返一互助模式项目系统开发|指南方案|详情说明
有了大数据,运营者能够更全面地了解消费者,做到精准营销,能够细化经营指标,快速获得经营反馈
|
1月前
|
新零售 人工智能 搜索推荐
2+1链动互助模式系统开发|项目方案|流程分析
对于消费者而言,我们已经习惯了便捷的网络购物方式,但是网购我们无法了解商品的质量,
|
1月前
|
新零售 人工智能 搜索推荐
推三返一互助模式系统开发|详情方案
互联网时代最大的特点就是数据化,新零售在整个销售、运营、服务等过程中
|
6月前
|
区块链
关于DEFI模式系统详细方案技术开发逻辑讲解方案
关于DEFI模式系统详细方案技术开发逻辑讲解方案
|
6月前
|
存储 开发框架 安全
dapp去中心化大小公排项目系统开发案例详情丨规则玩法丨需求逻辑丨方案项目丨源码程序
区块链技术的去中心化应用(DApp)开发在近年来逐渐受到广泛关注。大小公排互助系统是一种较为流行的DApp模式之一,其基本特点是参与者按照加入顺序依次排队,
|
6月前
|
存储 网络协议 调度
淘宝移动端统一网络库的架构演进和弱网优化技术实践
本文将介绍淘宝 APP 统一网络库演进的过程,讲述如何围绕体验持续构建南北向从监测到加速一体化的终端网络架构,通过构建 NPM 弱网诊断感知能力,落地原生多通道技术/多协议择优调度手段,贴合厂商附能网络请求加速,实现去 SPDY 及规模化 IPv6/H3 协议簇的平滑过渡,为用户提供弱网更好、好网更优的 APP 加载浏览体验,支撑业务创造更多的可能性。
232 0
|
6月前
|
AndFix vr&ar 图形学
潮玩元宇宙/大逃杀游戏系统开发详细案例丨规则流程丨方案逻辑丨功能设计丨需求项目丨源码出售
The development of Chaoyu Metaverse Escape Game System refers to the creation and construction of a virtual reality game system to provide an immersive gaming experience, allowing players to participate in a virtual world for escape and combat.
|
8月前
|
安全 Go 区块链
区块链游戏链游系统开发功能详情丨方案逻辑丨开发项目丨案例分析丨源码规则
 In recent years, with the continuous development of blockchain technology, NFTs (non homogeneous tokens) and DAPPs (decentralized applications) have emerged in the gaming industry.