跨端技术的发展

    技术 核心 原生支持 动态性
    Ionic/Cordova JSBridge封装给Web调用 90%
    React Native/Weex JIT模式应用JS与原生通信 20%
    Flutter 自渲染 5%
    • Ionic/Cordova(Hybird), 在技术原理的核心是,将原生的一些能力通过JSBirdge封装给Web来调用,扩充了Web应用能力,缺点:一是依赖客户端,二是在性能和体验上都非常依赖于Web端;
    • React Native/Weex, 在原来的Hybird的JSBridge基础上进行改进,将Javascript的界面以及交互转化为Native的控件,从而在体验上和原生界面基本一致。但因为是JIT模式,因此需要频繁地在JavaScript与Native之间进行通信,从而会有一定的性能损耗;
    • Flutter, 取长补短,结合了之前的一些优点,解决了与Native之间通信的问题,同时也有了自渲染模式(框架自身是实现了一套UI基础框架,与原来的渲染模式基本一致);

    选择Flutter并不是为了代替ios或者Android,而是作一个技术互补,比如,Flutter负责业务功能,而ios和Android则负责部分的底层交互提供服务给到Flutter应用。