Flutter介绍

Flutter是什么?

Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台开发高质量的原生应用的全新移动 UI 框架;
Flutter 的目标是解决移动开发中的两个重要问题:其一是实现原生应用的性能和与平台的集成,其二是提供一个多平台,可移植的 UI 工具包来支持高效的应用开发。

 Flutter支持的开发环境

 1. 支持在Linux,Mac和Windows上开发:

 

2. 支持Android Studio, IntelliJ IDEA和VS Code IDE开发环境:

 

谁在用Flutter?

开发人员用 Flutter 构建的 第一个主要应用程序 之一是描述美国独立战争时期的《 汉密尔顿:美国音乐剧 》的官方应用程序。 《汉密尔顿》是百老汇最受欢迎的音乐剧之一。

还有一个是欧洲开发人员写的一个社交软件叫Hookle。

 

Flutter有哪些优势?

1. 热重载

Flutter 最受欢迎的功能之一是其快速,保留程序状态的热重载 (hot reload)。 您可以在 Flutter 应用程序运行时对其进行更改,重新加载应用程序的代码,将其从之前的操作位置继续下去。一次热重载通常用不到一秒钟。 如果您的应用遇到错误,您通常可以修复错误,然后继续,就像错误从未发生过。 即使你必须完全重新加载,它也是很快速的

 

2. Flutter 的系统架构包含大量赏心悦目、快速、可定制、可扩展的 Widgets。Flutter 不需要使用系统 UI 组件(或 DOM WebViews),它自带了 Widgets。

3. 效率高

苹果的 iOS SDKs 发布于 2008 年,谷歌的 Android 软件开发工具包发布于 2009 年,这两种工具包基于不同的编程语言,分别是 Objective-C 和 Java。

 

 React Native 是非常受欢迎的(这是它应得的),但是因为 Java 访问了原生 UI 组件,所以它也必须经过这些“桥接器”,界面上的 UI 控件通常被频繁地访问(在动画、转化或者用户用手指“滑动”屏幕上的某些东西时,每秒被访问高达 60 次),因此这很可能会导致性能问题。

 

 

和 React Native 一样,Flutter 也提供响应式的视图,Flutter 采用不同的方法避免由 Java 桥接器引起的性能问题,即用名为 Dart 的程序语言来编译。Dart 是用预编译的方式编译多个平台的原生代码,这允许 Flutter 直接与平台通信,而不需要通过执行上下文切换的 Java 桥接器。编译为原生代码也可以加快应用程序的启动时间。

 4.其它

Flutter支持与Android以及iOS上旧有的代码集成

Flutter支持国际化与本地化

Flutter支持并行运行(通常作为单独的线程异步实现)

Flutter仅支持Android 4.1.x或更新版本以及iOS 8或更新版本。

Flutter提供了编写单元和集成测试的API

Flutter暂不支持3D,但有开放3D API的长期计划 

参考资源

Github源码
https://github.com/flutter/flutter
官方网站
https://flutter.io/
中文简介
https://blog.csdn.net/zhoumushui/article/details/79548075
如何评价 Google 的 Fuchsia、Android、iOS 跨平台应用框架 Flutter?
https://www.zhihu.com/question/50156415
为什么说Flutter是革命性的?
http://www.sohu.com/a/192998605_635110
为什么原生应用开发者需要关注Flutter
http://www.infoq.com/cn/news/2017/11/Why-native-app-developer-Flutter
如何看待 Google 的新操作系统 Fuchsia?
https://www.zhihu.com/question/49535135
Flutter开发环境配置
https://blog.csdn.net/hekaiyou/article/details/52874796
Flutter教程
https://blog.csdn.net/column/details/13593.html
https://www.bilibili.com/video/av18781049/
https://www.bilibili.com/video/av4216436/
http://blog.chengyunfeng.com/?p=1051

 

Dart编程语言简介

Dart是谷歌开发的计算机编程语言。它被用于web、服务器、移动应用和物联网等领域的开发。

因为 Flutter 像使用响应式视图的其他系统一样,刷新每个新框架的视图树,它会创建许多只能在一帧(六十分之一秒)内存在的对象。幸运的是,Dart 使用“generational garbage collection ”对于这样的系统来说是非常有效的,因为对象(特别是寿命短的)消耗资源相对较少。此外,可以使用单个 pointer bump 来完成对象的分配。这是一个快速且不需要锁定的 pointer bump。这有助于避免 UI 卡顿。

Dart 还有一个“tree shaking ”编译器,它只包含你在应用程序中需要的代码。 即使您只需要一个或两个,您也可以随意使用大型的 UI 控件库。

 

       Dart 的客户端用途

移动

Dart 最重要的用途之一就是 Flutter,它是谷歌新的移动 UI 框架,为 iOS 和 Android 制作高质量的原生界面。

开发人员曾使用 Flutter 构建一个非常受欢迎的节目 Hamilton 的官方应用程序,并在构建时间上打破了记录。Flutter 使用反应式编程风格并逐个像素控制整个 UI。对于 Flutter 而言,Dart 在易学性、反应式编程、出色的开发速度以及具有快速的垃圾回收器、高性能运行系统等方面都符合要求。

Web

Dart 是经过关键性 Web 应用程序验证的平台。它拥有为 Web 量身打造的库,如dart:html,以及完整的基于 Dart 的 Web 框架,使用 Dart 进行 Web 开发的团队会对速度的改进感到非常激动。正如 Google AdWords 工程副总裁 Manish Gupta 所说的那样:

AdWords 前端庞大而复杂,对 Google 的大部分收入至关重要。

我们之所以选择 Dart 是因为其高性能、可预测性和易学性,完善的类型系统,以及完美地支持 Web 和移动应用。

现在,我们的工程师比以前的工作效率高出两到三倍,这让我们十分欣慰。

未来发展

借助 Flutter 和 Dart,开发人员终于有机会使用共享代码库,为 Android、iOS 和 Web 编写高质量的应用程序。此后,团队成员可以在平台之间进行无障碍的切换,并通过代码审查等互助。到目前为止,我们已经看到 AdWords Express 和 AppTree 等团队在移动和 Web 中共享其代码的 50%到 70%。

Dart 是一个开源项目和开放的 ECMA 标准。Google 欢迎对 Dart 核心项目和 Dart 软件包生态系统的改进提出建议的开发者。

你可以在命令行中试用 Flutter 中的 Dart 2 和 Dart SDK。至于 Dart SDK,可从开发通道获取最新的 Dart 2 预发行版,并确保使用具有--preview-dart-2标志的版本运行代码。

最新发布的 Dart 2 是一款高效、简洁、已通过实战检验的语言,能够应对现代应用程序开发的挑战。它已经被这个星球上一些最苛刻的开发者所喜爱,希望你也会喜欢它。

 

posted on 2019-02-19 14:56  静游者  阅读(869)  评论(0)    收藏  举报

导航