Flutter-关于Flutter

简介

Flutter(项目地址)是由Google推出的跨平台移动应用UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。开发语言使用Dart,基于现代响应式框架以组件(Widget)的方式创建UI。基于BSD风格的协议发布,是完全免费、开源的。它也是构建未来的Google Fuchsia应用的关键方式 。

特性

Flutter并没有替代传统的移动应用开发模式;相反,您可以使用它来嵌入到现有的应用中或者从头开始构建一个完整的应用。它的特点主要体现在以下四个方面:

1. 绚丽视图 — 基于对屏幕元素每一像素的掌控,与强大的混合能力(Compositing capabilities)您可以没有任何限制的覆盖并使图形、视频、文字与控制器动起来。它包含了在iOS与Android上具有像素级别体验的组件集合,并内建启用了质感设计(Material Design)与Cupertino(iOS-flaver)组件。设计师们可以完整实现他们的构想,而不用因为底层框架的限制而缩水。

2. 高效运行 — 基于与Chrome与Android相同的硬件加速的Skia 2D图像引擎。我们将Flutter架构成支持在设备上具有图像处理的原生运行速度。代码是世界级的Dart平台语言赋能的,能够编译输出运行在iOS与Android上32-bit或者64-bit的ARM代码。

3. 快速开发 — 基于状态的热加载技术(Stateful hot reload)允许开发者与设计师能够实时预览应用。当代码发生变更的时候不用重启应用或者丢失应用状态就可以查看变化。这改变了原有的开发方式,使得在开发周期(Development cycle)中拥有更高的效率。

4. 拥抱开源 — 基于BSD风格的协议发布。来自世界各地的成百上千的开发都在为项目贡献力量,更重要的是有一个包含上千插件(Plug-ins)的活跃生态系统。因为使用标准的iOS和Android构建工具,可以轻松的接入底层系统原有的一切内容,包括原本在iOS下使用Swift或者Objective-C亦或在Android下使用Kotlin或者Java开发的框架与视图组件。

将这些与最好的集成开发环境Visual Studio Code, Android Studio, IntelliJ或者其它您选择的工具相结合,就能开发出基于一份代码运行在iOS和Android上的酷炫应用。

成长势头

Flutter在Google已经被广泛应用,《Google Ads》这款应用就已经在iOS与Android平台上切换到Flutter。在1.0版本之前,全球的开发厂商包括Abbey Road Studios, Alibaba, Capital One, Groupon, Hamilton, JD.com, Philips Hue, Reflectly和Tencent就已经在开发或发布它们基于Flutter的应用。

在Flutter Live上,Square发布了两款基于Flutter的支付SDK用于购买商品和服务。Square同时展示了一款使用它们支付SDK由Collins Family Orchards发布的示例应用。

同样在Flutter Live上,2Dimensions发布了立即可使用的Flare,一款允许设计师创建矢量动画的新工具,这些动画可以直接嵌入Flutter应用中或者使用代码操作。

另一家押注在Flutter上的合作厂商是Nevercode,一家快速成长的针对移动应用开发提供持续集成与交付(CI/CD)工具的供应商。在Flutter Live上,它们发布了专门针对Flutter的Codemagic工具,简化了自动化过程,通过一份自动化配置就可以构建并打包可以运现在iOS与Android上的应用。使用现阶段的beta版本,您可以选择一个Flutter项目的GitHub仓库,只需要少量的点击,创建持续构建流程包括运行测试,生成可以上传到Apple与Google Play应用市场的二进制包。

新特性-1.0版本

通过新的组件我们对pixel-perfect iOS应用的支持更加丰满;对接近20项重点服务的支持;提升性能并减小应用的体积。修复社区反馈的数千问题。

升级Dart到最新的2.1版本,通过该次升级可以获取更小的代码体积,更快的类型检查,类型错误更好的可用性。Dart 2.1同样包含新的语言特性可以提高构建用户体验的生产力。升级到Dart 2.1的开发者都说他们迁移到新的引擎后获取到了显著的速度提升。

1.0版本主要关注点在于Bug修复与稳定性。同时引入了两项新的处于预览模式的特性:应用集成(Add to APP)和访问系统(PlatformViews)。

应用集成

当开始构建Flutter的时候,我们的注意力主要集中在从头开始构建一个新的应用这一场景的产出能力。当然并不是所有人都可以享受从一个干净的状态开始。与一些成规模的合作厂商交流之后,很清楚的可以了解到它们希望在现有应用中使用Fluuter来获取新的用户旅程或特性,或者分阶段的将现有应用迁移到Flutter。

Flutter的架构很好的支持了这种模式:毕竟,每一个Flutter应用都包含在一个iOS或者Android的宿主容器中。但是我们仍然在持续更新我们的模版(Templates),工具集(Tooling)和指南文档(Guidance)以期使得在现有应用中适配Flutter更加容易。我们将在Flutter与宿主代码之间共享资源变得更加容易。我们同样重做了工具集,它将使不用启动应用的调试器就附着到既有的Flutter运行进程变得容易。

我们将继续使开发体验变得更加流畅。尽管一部分合作厂商已经根据指导在应用中成功的集成了Flutter,我们将继续添加示例并对可能的复杂应用场景提供支持。我们的指南文档adding Flutter to existing apps are on our wiki了解一下,你也可以在GitHub project board跟踪我们剩余的工作。

访问系统

与将Flutter嵌入到现有应用中相比,有些情况下,相反的将iOS或者Android系统能力嵌入Flutter应用中会更加有用。

所以我们引入了 platform view widgets (AndroidView and UiKitView) ,允许您在各平台上集成这样的内容。我们已经观察对Android支持的情况数个月,但是现在我们也在给iOS提供支持,并且开始添加Google MapsWebView 这样的插件(Plug-ins)。

在开发者已经在尝试这些功能的时候,我们仍在持续提升性能与硬件设备通用性,因此基于PlatformViews发布应用的需要注意了。我们持续积极优化PlatformViews以期能够在下一个发布季准时发布产品化使用。

更多平台

有一些这类的工作已经在开放状态下展开。Flutter Desktop Embedding就是这样一个处于早期阶段的项目,它将Flutter迁移到包括Windows, MacOS和Linux在内的桌面操作系统。我们最近发布了informal details of using Flutter on Raspberry Pi一种在不具备完整桌面环境的小尺寸(Smaller-scale)设备上使用Flutter的方式。


Hummingbird基于Web的Flutter运行时实现,获益于Dart平台不仅能编译生成原生ARM代码也能生成JavaScript。这允许Flutter代码能够在标准的Web环境中运行而不用做改变。单独的博客文章technical implementation details of Hummingbird描述了更多的技术细节。在Google I/O 2019上我们将进行更多分享。

总结

您可以从我们的官网https://flutter.io/下载Flutter 1.0,这里你可以发现documentation for developers transitioning from other frameworks, code labscookbook of common samplestechnical videos

参考:

1. https://flutter.io

2. Flutter 1.0: Google’s Portable UI Toolkit

3. https://github.com/flutter

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容