Flutter是什么?

作者: Brant白叔 | 来源:发表于2018-04-24 14:48 被阅读251次

Flutter是什么?

Flutter是Google一个新的用于构建跨平台的手机App的SDK。写一份代码,在Android 和iOS平台上都可以运行。

跟React Native、Weex等有什么不同?

React Native、Weex等一直存在一个问题,就是性能跟原生App存在很大的差异。这跟它们的原理有很大的关系,下面从原生App,RN、Weex,Flutter的简单原理说一下它们的不同。

  • 原生App
    苹果2008年发布iOS,Google 2009年发布Android,它们的SDK是基于两种不同的编程语言Objective-C 和 Jave.现在又有了Swift和Kotlin。


    image

    上面是原生App的一个简单架构,开发人员直接调用平台SDK进行UI开发。由于语言及SDK的不同,所以开发人员必须为两个平台分别开发App。

  • WebViews
    最早的跨平台方案是基于JaveScript 和 WebView的,像PhoneGap、Cordova、Ionic等。


    image

    UI通过WebView来显示html代码,系统服务则通过一个中间层桥接到JaveScript中去。

  • React Native
    RN不仅桥接系统服务,也将系统UI也桥接到了JaveScript中,这样写出来的UI最终也会渲染成原生的控件。


    image

    如上图这样,UI的渲染是很频繁的,要使UI不卡顿,必须达到60Fps。但是桥接会花一定的时间。所以这样的架构有时候会有性能问题。

  • Flutter
    Flutter使用Dart语言开发,Dart可以被编译(AOT)成不同平台的本地代码,让Flutter可以直接和平台通讯而不需要一个中间的桥接过程,从而提高了性能。


    image

关于学习

flutter的学习文章都整理在这个github仓库

相关文章

网友评论

  • mlsnatalie:写的很清晰,要是长点就好了。我想问一下,现在android开发中使用flutter的多吗?
    Brant白叔:@mlsnatalie 公司使用的是很少的,也有大公司在用,咸鱼
  • codeT:发现是转载的文章,
    Brant白叔:@codeT 兄弟,我英文翻译过来的,用了点别人的图
  • codeT:写的不错,就是太短了

本文标题:Flutter是什么?

本文链接:https://www.haomeiwen.com/subject/zhrjlftx.html