業(yè)務(wù)背景:構(gòu)建靈活的APP首頁頁面,支持功能模塊用戶自定義、支持第三方接入,目前的實(shí)現(xiàn)只是實(shí)現(xiàn)規(guī)定的規(guī)則,接口對應(yīng)的返回,不是所謂的動(dòng)態(tài)化,故做了動(dòng)態(tài)化方案的調(diào)研。
知乎移動(dòng)端動(dòng)態(tài)化方案 :Morph
關(guān)于移動(dòng)端動(dòng)態(tài)化方案這篇講得挺好 可惜框架沒有開源
鵝廠:MXFlutter
用JS開發(fā) 渲染用Flutter 邏輯層用v8/jscore解釋運(yùn)行
優(yōu)點(diǎn):邏輯動(dòng)態(tài)化強(qiáng)
缺點(diǎn):需要熟悉JS、該庫維護(hù)成本大 最后一次更新時(shí)間是20年七月份 目前flutter穩(wěn)定版本可以正常運(yùn)行,引入解析引擎,看了下文件大小8M,如果用此方案,理論上會增大app的包大小
58:FAIR
json生成界面實(shí)現(xiàn) 邏輯方面弱
優(yōu)點(diǎn):界面編寫較為簡單、該庫剛開源 更新頻率較高
缺點(diǎn):定義邏輯方面弱
dynamic_widget
json生成界面實(shí)現(xiàn) 邏輯方面較弱
優(yōu)點(diǎn):可以直接使用已經(jīng)定義好常用的小部件生成JSON 開發(fā)成本低 該庫持續(xù)更新了兩年 目前依然在持續(xù)更新
邏輯方面有定義了一些事件比FAIR強(qiáng)點(diǎn)
缺點(diǎn):定義邏輯方面沒有MXFlutter那么靈活
綜上根據(jù)我們目前的業(yè)務(wù)需求,使用dynamic_widget較為輕量級的框架可以完成目前需求。MXFlutter的話可能一個(gè)目的是用于APP的熱更新,能力很強(qiáng),目前用于目前業(yè)務(wù)大材小用了。