简评:所以 React-Native 和 Flutter 该怎么选?

在 10 个月前的 MWC 上,谷歌发布了 Flutter 的 Beta 版本,给跨平台应用开发带来了一种全新的选择,昨天谷歌正式发布了 Flutter 1.0 。下面我们来看看官方对 Flutter 的介绍吧。

Flutter 介绍

Flutter 并不是替代原生 iOS 和 Android 开发模式,相反,可以把 Flutter 理解为内置的一个引擎,可以把这个引擎引入到现有的工程或者全新的工程中。

Flutter 有以下四个特点:

  1. 精美。使用 Flutter 可以在屏幕上有像素级的控制,并近乎可以不受限制的堆叠任何图形、视频、文本和控件。Flutter 内置了一系列的 widgets 可以在 iOS 和 Android 上实现极致的视觉体验。Flutter 最大程度的实现了 Material Design ,可构建界面精美的应用。
  2. 速度快。它基于 Skia 2D 硬件加速图形引擎,该引擎也同样用在了 Chrome 和 Android 平台。Flutter 的代码基于 Dart 平台,它可以被编译成 iOS 和 Android 平台上 32 位和 64 位的 ARM 代码,媲美原生应用的速度。
  3. 高效。Flutter 引入了 Stateful Hot Reload ,无需重新启动应用,就可以在程序运行的时候直接看到代码修改之后的效果,Stateful Hot Reload 改变了开发者们编写应用的方式,开发者们在用户反馈中表示该特性使开发效率提升了三倍。
  4. 开放。Flutter 是基于 BSD-style 许可的开源项目,全球有数百位开发者为其贡献代码。Flutter 的插件生态系统平台也充满活力。有数千款插件已经发布,避免了重复造轮子。由于 Flutter 使用标准的 Android 和 iOS 的编译打包工具,因此它的开放还体现在可以使用原生开发资源。比如,同样可以在 Android 上使用 Kotlin 或者 Java,在 iOS 上使用 Swift 或者 Objective-C 来写逻辑或者界面。

Flutter 1.0 新功能

1.0 主要修复 Bug 和提高稳定性,接入Dart v1.2。同时有两个新功能将随 1.0 的预览模式提供给开发者们。它们将会于 2019 年二月的季度更新中正式推出,两个特性分别是:

现有工程接入 Flutter (Add to App)

使用 Flutter 不一定需要从零开始构建整个应用,也可以在现有的项目中通过 Flutter 添加新功能,或者一步步的将整个项目迁移到 Flutter。谷歌会持续改善这一体验,可以在 wiki 查看现有的关于将 Flutter 引入应用的文章,也可以在 GitHub 上关注他们接下里的进展。

平台级视图 (Platform Views)

上一个功能是将 Flutter 接入工程,这个功能相反,是将 Android 或者 iOS 原生平台控件嵌入 Flutter 应用中。谷歌引入了 AndroidView 和 UiKitView,可以分别把这两个平台的 widget 嵌入到对应的平台中,像 Google Maps和 WebView 已经享受到这一特性带来的好处了。


右下角的浮动按钮是一个 50% 透明度的 Flutter widget

不仅仅是移动端

目前 Flutter 的首要平台是 iOS 和 Android,同时也在探索拓展到手机端以外的更多平台。

像 Flutter Desktop Embedding,这是一个使 Flutter 运行于 macOS、Linux 和 Windows 等桌面操作系统的项目。

同时本周,谷歌内部预览了一个将极大拓展 Flutter 的运行平台的实验阶段项目:

Hummingbird 是一个基于 Web 实现的 Flutter 运行时环境。利用 Dart 平台同时能被编译成 JavaScript 的特性,这个项目让 Flutter 应用能够毫无改动地运行在标准 Web 平台。

这里是关于 Hummingbird 的技术实现文章。

Flutter :我准备好了,你呢?

原文链接:Flutter 1.0: Google’s Portable UI Toolkit

Flutter 1.0 正式版: Google 的便携 UI 工具包的更多相关文章

  1. Flutter 1.0 正式版: Google 的跨平台 UI 工具包

    今天我们非常高兴的宣布,Flutter 的 1.0 版本正式发布!Flutter 是 Google 为您打造的 UI 工具包,帮助您通过一套代码同时在 iOS 和 Android 上构建媲美原生体验的 ...

  2. Flutter 1.0 正式版: Google 的便携 UI 工具包

    Flutter 1.0 正式版: Google 的便携 UI 工具包 文 / Tim Sneath,Google Dart & Flutter 产品组产品经理 Flutter 是 Google ...

  3. [Android 新特性] 谷歌发布Android Studio开发工具1.0正式版(组图) 2014-12-09 09:35:40

    Android Studio是谷歌于13年I/O大会推出的Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的Androi ...

  4. Flutter 1.7 正式版发布

    今天,我们非常高兴地向大家宣布又一个正式版本的发布 -- Flutter 1.7,这是继上次 I/O 时众多重要功能发布以来的一次小更新.Flutter 1.7 包含了对 AndroidX 的支持,满 ...

  5. VMware Workstation 10.0 正式版官方简体中文下载(附序列号)

    虚拟机界数一数二的王者软件VMWare Workstation 今日推出了最新的VMware Workstation 10.0 版本.该版本最大的更新是加入了简体中文语言,这意味着未来神马汉化包.中文 ...

  6. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

  7. Axure 7.0 正式版 + 汉化包 安装

    详情如下: Axure 7.0 正式版终于发布了,现在提供简体中文版给大家使用. Axure 7.0 正式版: 链接: http://pan.baidu.com/s/1kV4OJ47 提取密码: be ...

  8. 【Android】Vitamio 4.0 正式版发布/ Vitamio IOS 测试版发布(2013-07-16)

    一.链接 Vitamio官网:http://www.vitamio.org/ 官网github地址:https://github.com/yixia 自己无法编译通过的这里下载: Vitamio 4. ...

  9. 【6年开源路】海王星给你好看!FineUI v4.0正式版暨《FineUI3to4一键升级工具》发布!

    去年10-28号,我发布了一篇文章<海王星给你好看!FineUI v4.0公测版发布暨<你找BUG我送书>活动开始>,标志着FineUI开始向4.0版本迈进.经过4个月3个公测 ...

随机推荐

  1. python中os.system()的返回值

    [python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回. 问题: /bin/xxx.py是一个返回码为1的 ...

  2. 2015年传智播客JavaEE 第168期就业班视频教程11-导入配置文件

    资源文件放在Source Folder目录下面,这个目录同样会编译到classes目录下 web.xml的 <listener> <listener-class>org.spr ...

  3. ubuntu ufw防火墙

    由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw. ubuntu 9.10默认的便是UFW防火墙,它已经支持界面操作了.在 ...

  4. Criterion - 一个简单可扩展的 C 语言测试框架

    A dead-simple, yet extensible, C test framework. Philosophy Most test frameworks for C require a lot ...

  5. CentOS 6.5网络配置静态IP地址

    打开VMvare,并进入虚拟机 2 输入用户名,按回车键,再输入密码,登录系统 3 进行网络配置前,需要确认几个事情: 1. 网络适配器模式是否为NAT模式 右键虚拟机,或者点击VMvare菜单栏中的 ...

  6. sqlserver2014新特性

    1.SQL Server 2014新特性探秘(1)-内存数据库 在传统的数据库表中,由于磁盘的物理结构限制,表和索引的结构为B-Tree,这就使得该类索引在大并发的OLTP环境中显得非常乏力,虽然有很 ...

  7. 二叉树中和为某一值的路径 (java)

    问题描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 题解 import java.util.Arra ...

  8. Java07

    /* 定义一个类Demo,其中定义一个求两个数据和的方法, 定义一个测试了Test,进行测试. 变量什么时候定义为成员变量: 如果这个变量是用来描述这个类的信息的,那么,该变量就应该定义为成员变量. ...

  9. Linux 基础教程 34-软件包管理-RPM

        对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础     RPM(RedHat Package ...

  10. java程序练习

    数组求和作业 开发环境:java 工具:eclipse 两种数据类型excel和csv 在同学建议下,我选择用csv文件打开,这就引来了第一个问题,在java中如何调用csv文件.以下是我百度的结果 ...