转:一套代码iOS、Android两端运行,Google Flutter意味着什么?

原文:https://www.toutiao.com/a6569388465538990600/?tt_from=weixin&utm_campaign=client_share&timestamp=1529580533&app=news_article&utm_source=weixin&iid=35476649324&utm_medium=toutiao_android&wxshare_count=1

一套代码iOS、Android两端运行,Google Flutter意味着什么?

何为 Flutter?

“Flutter 可帮助你更容易、更快速的开发出界面美观的移动应用。”Google 官方如是说。

实则,Flutter 是由 Google 的工程师团队打造的一款移动 UI 框架,它使用的是 Google 自己开发的网络编程语言——Dart 语言,因此,开发者只要使用过 Java 或 JavaScript 之类的语言,那么 Flutter 也极易上手。

Flutter 旨在帮助开发者创建拥有美观 UI 界面、高性能、高稳定、高帧率、低延迟的跨平台(Android 和 iOS)移动应用。Flutter 的界面设计与 Web 应用类似,所以开发者很容易在 Flutter 上找到类似 HTML/CSS 编码的感觉。

和 React Native 相比,虽然使用的语言不同,但 Flutter 也提供响应式的视图。此外,Flutter 开发出来的应用在不同的平台用起来跟原生应用具有一样的体验。例如,返回图标 Android 和 iOS 是不一样的;滚动内容滚动到底的反馈也是不一样的。

一套代码iOS、Android两端运行,Google Flutter意味着什么?

Flutter 发展历程

2017 年 Google I/O 大会上,Google 首次推出了一款新的用于创建移动应用的开源库——Flutter;

2018 年初,Google 发布了 Flutter 的第一个 beta 版本;

在今年 5 月的 Google I/O 大会上,Flutter 更新到了 beta 3 版本;

今天,Flutter 发布了首个预览版,这意味着 Flutter 进入了正式版(1.0)发布前的最后阶段。

观其发展,就在上个月,Flutter 进入了 GitHub stars 排行榜前 100 名,如今已有 27k 个 star。经历了短短一年的时间,Flutter 生态系统得以快速增长,活跃的 Flutter 用户也增长了 50%。由此可见,Flutter 在开发者中受到了热烈的欢迎,其未来的发展不容小觑。

一套代码iOS、Android两端运行,Google Flutter意味着什么?

Flutter 的优势

为何自 Flutter 发布以来,受到了诸多开发者较高的评价?自然与其优点息息相关:

高生产率:

  • 一套代码可以开发出 Android 和 iOS 应用;
  • 使用更少的代码实现更多的功能,即使在单一的操作系统之上,使用更现代的、更具有表达性的开发语言及声明方法,也可以完成更多的功能;
  • 开发原型和迭代更加方便;
  • 在应用运行的时候就可以修改代码并重新加载(使用热重载)修改后的功能;
  • 直接修改崩溃的 bug,然后继续从崩溃的地方执行调试;

创建优雅的、可定制的用户界面:

  • Flutter 内置了对纸墨设计(Material Design)的支持,提供了丰富的 UI 控件库可以用来创建纸墨设计风格的 UI;
  • 提供了可定制的 UI 框架,不再受制于手机平台控件的支持。

使用 Flutter 可以干什么?

快速开发:

Flutter 的热重载可帮助用户快速地进行测试、构建 UI、添加功能并更快地修复错误。在 iOS 和 Android 模拟器或真机上可以在亚秒内重载,并且不会丢失状态。

一套代码iOS、Android两端运行,Google Flutter意味着什么?

富有表现力,漂亮的用户界面:

使用 Flutter 内置美丽的 Material Design 和 Cupertino(iOS风格)widget、丰富的 motion API、平滑而自然的滑动效果和平台感知,为开发者带来全新体验。

一套代码iOS、Android两端运行,Google Flutter意味着什么?

现代的,响应式框架

使用 Flutter 的现代、响应式框架,和一系列基础 widget,轻松构建您的用户界面。使用功能强大且灵活的 API(针对 2D、动画、手势、效果等)解决艰难的 UI 挑战。

class CounterState extends State<Counter> { 
int counter = 0; 
void increment() { 
// 告诉Flutter state已经改变, Flutter会调用build(),更新显示 setState(() { counter++; }); 
} Widget build(BuildContext context) { // 当 setState 被调用时,这个方法都会重新执行. // Flutter 对此方法做了优化,使重新执行变的很快 // 所以你可以重新构建任何需要更新的东西,而无需分别去修改各个widget return new Row( children: <Widget>[ new RaisedButton( onPressed: increment, child: new Text('Increment'), ), new Text('Count: $counter'), ], ); }}

访问本地功能和SDK

通过平台相关的 API、第三方 SDK 和原生代码让开发者的应用变得强大易用。 Flutter 允许开发者复用现有的 Java、Swift 或 ObjC 代码,访问 iOS 和 Android 上的原生系统功能和系统 SDK。

访问平台功能非常简单。以下是 interop example(互操作示例)中的一个片段:

Future<Null> getBatteryLevel() async { var batteryLevel = 'unknown'; try { int result = await methodChannel.invokeMethod('getBatteryLevel'); batteryLevel = 'Battery level: $result%'; } on PlatformException { batteryLevel = 'Failed to get battery level.'; } setState(() { _batteryLevel = batteryLevel; });}

统一的应用开发体验

Flutter 拥有丰富的工具和库,可以轻松地同时在 iOS 和 Android 系统中实现开发者想要完成的功能。即使开发者没有任何的移动端开发体验, Flutter 也是一种轻松快捷的方式来构建漂亮的移动应用程序。 如果开发者已是一位经验丰富的 iOS 或 Android 开发人员,则可以使用 Flutter 作为视图(View)层, 并可以使用已经用 Java / ObjC / Swift 完成的部分(Flutter 支持混合开发)。

Flutter 首个预览版的发布

目前 Flutter 已发布了第一个预览版。此次,Flutter 开发团队主要专注于让 Flutter 适用于更多的应用场景,并修复 Bug 并让 Flutter 更加稳定。其中相比 beta 3 主要更新包括:

  • 增加了对带有 ARMv7 指令集芯片的 32 位 iOS 设备的支持,使得 Flutter 兼容包括 iPad Mini 和 iPhone 5c 在内的更多设备;
  • 完善了 video player package 以支持更多的视频格式并变得更稳定;
  • 支持了 Firebase 动态链接(Dynamic Links)以支持跨平台创建和处理链接;
  • 并进一步改进如何将 Flutter 小部件添加到现有 Android 和 iOS 应用的文档。

除此之外,Visual Studio Code 的 Flutter 扩展新版本带来了新的大纲视图,语句完成以及直接从 Visual Studio Code 启动模拟器等功能。

一套代码iOS、Android两端运行,Google Flutter意味着什么?

Flutter 预览版也从社区中得到了很多支持,来自外部的贡献就包括 Flutter 对硬件键盘和条形码扫描仪、视频录制、图像的支持。此外,还有许多新软件包对 Flutter 包站点的贡献,例如 Flutter Platform Widgets,一组可自适应 iOS 或 Android 的小部件; mlkit,Firebase MLKit API 的包装类(wrapper); 序列动画(Sequence Animation)。

那么该如何更新呢?

如果你已经在 beta channel 上了,只需要运行一句命令:

$ flutter upgrade

如何更快上手学习 Flutter?

就国内而言,使用 Flutter 的用户仅次于美国和印度,拥有世界第三多的 Flutter 用户。国内科技巨头中,阿里巴巴基于 Flutter 开发的应用程序已经有了上千万安装量,腾讯也将使用 Flutter 推出 NOW 直播手机客户端。那么国内的开发者该如何快速上手 Flutter?

对此,Flutter 团队正式发布了中文 Flutter 网站:https://flutter-io.cn/。其中包含了源自社区的许多中文 Flutter 资料,从而帮助国内开发者更好地使用 Flutter。

一套代码iOS、Android两端运行,Google Flutter意味着什么?

此外,还可以通过以下资源进行深入了解:

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,567评论 25 707
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    X先生_未知数的X阅读 15,937评论 3 118
  • 你端起枪 天空是血红色的 你放下枪 天却下起了雨 梅花鹿奔跑着 你爱它 但你更爱你自己
    ANNAKK阅读 256评论 0 0
  • 读完这本书,让我对心理学是一门“科学”还是“学科”有了更深的感受。按照百度解释,“科学是一个建立在可检验的解释和对...
    Miya_wu阅读 2,131评论 0 2
  • 不知不觉已经到了需要相亲的对象,虽然自我感觉年岁还小,但家里已经十分着急的想把我“推销”出去。 前几天家里的朋友介...
    Ruth兔阅读 360评论 1 0