【译】13 个你应该选择/考虑使用 Flutter 的理由

image

13 个你应该转向 Dart 并且选择或者学习利用 Flutter 去开发你的下一个 app 的理由。

如今的企业需要在选择移动技术时做出关键选择。他们不断的测试和评估技术,以求不论用户使用什么移动设备或操作系统都能有强大的数字体验。企业如果不能提供易于使用的产品和服务,那么无论使用何种渠道或设备,都有可能落后于竞争对手。

image

目前面临的挑战便是跨平台应用的开发存在问题。在某些情况下,尽管开发人员尽了最大努力,其用户体验仍然落后于原生 app 。近年来,我们看到了各种移动框架的出现,如 React Native、Xamarin 和 AngularJS ,它们帮助我们更容易地产生较好地数字体验。最近我们看到一个新玩家加入了这场游戏——谷歌的 Flutter。

image

从内部来看,Flutter 看起来像是谷歌各种技术和概念的大杂烩,然而却产生一个不可思议的强大的移动框架。它是基于 Dart (谷歌的内部编程语言)开发的,它可以让 Flutter 访问 Skia 图形库,而这正是 Chrome 浏览器所使用的。除此之外,Flutter 与谷歌的 Material Design 规范紧密结合;其中最著名的便是 Android 用户已经熟知的“卡片图案”。


让我们看看 13 个选择 Flutter 作为你的开发环境甚至可以选择它开始你的职业生涯的理由,

1. Flutter 克服了传统跨平台的限制

长期以来,创建真正的跨平台方法一直是技术顾问的苦恼所在,他们厌倦了为同一产品制作多个版本。但是,实际上,跨平台应用的用户体验通常落后于原生 app,因为你经常需要即时编译 JavaScript 来构建 UI 体验。

image

使用 Flutter,你不仅可以拥有“一次编写”的优势,还可以创建高性能的“原生”体验,因为 Flutter 应用程序是提前编译出机器可执行的二进制文件。它克服了其他跨平台方法中的一些常见问题。

2. 开发人员的生产力提高了十倍

这种生产力的提高来自 Flutter 的“热重载”(也就是所谓的“有状态的热重载”和“热重启”)。这样,开发人员可以在不到一秒的时间内看到他们对应用程序状态所做的更改;并且在不到 10s 的时间内改变 app 的结构。

image

没有必要去启动另一个 Gradle 构建程序——因为你可以在保存后查看你的修改。对于开发人员来说,这通常很容易掌握——在使用“热重载”时几乎没有等待时间,因为在默认情况下,每次保存时都会实时改变。

然而,优势是至关重要的。使用 Flutter 开发时间通常会减少 30-40%,因为在 Android 开发中,每次修改后 Gradle 都需要重新构建,这会降低 Android 开发人员的速度。

3. 前后端只需一套代码

在 Android 编程中,前端( Views )有单独的文件,由后端( Java )引用,与之不同的是,flutter 使用一种语言( Dart )来完成这两项工作,并使用一个响应式框架。

Dart 借鉴了其他语言众多流行的特性,同时不会让你感到陌生,因为它和 Java 或者其他语言相似。Dart 的构建考虑了开发人员的易用性,从而使许多常见任务变得更加容易。你可以在这学到更多有关 Dart 的知识: Dart 语言之旅.

4. 这是一种强大的开箱即用的设计体验

由于 Flutter 团队对 Material design 规范的积极适配,使得开发者很容易就可以创建出功能强大的 UI 体验。它可以帮助你生成通常只能在原生 app 中才能体验到的平滑、流畅,因为 Flutter 的发行版构建的就是一个原生 app 。

Flutter 的小部件同时也实现了 iOS 的人机界面设计规范,可以让你在 iPhone 和 iPad 上也能获得那种原生的“体验”。

image

5. 有一个数量众多且开源的软件库

大量可用的开源包可以帮助你更快、更轻松地创建应用程序,而且目前有许多可用的包可以使许多复杂的任务变得更容易。

由于不断加入的开发人员对 Flutter 的作出的积极贡献,所以即使这个开源库还不够成熟,但它依然在积极壮大。

6. 与 Firebase 的紧密结合

Firebase 为云存储、云功能、实时数据库、托管、身份验证等一系列服务提供开箱即用的支持。你的基础设施完全可以是无服务器的、冗余的和可扩展的。这意味着你不必花费大量时间和资源来构建后端。

它还可以直接与一个工具结合使用来自动化你的开发和发布过程以促进持续交付(例如 Fastlane)。因此,你不必在团队中提供专门的 DevOps 支持。

7. 大量 IDE支持 Flutter

在使用 Flutter 进行编程时,你可以从许多集成开发环境中进行选择。一开始我使用的是 Android Studio,但后来我看 Flutter Live 时使用的是VS Code。这让我很疑惑,因为我发现很多 Flutter 开发人员都在使用 Visual Studio Code。当我尝试之后,我明白为什么这么多人喜欢它了。 VS Code 相较于 Android Studio 和 IntelliJ 更加轻量,速度也快得多,并且具有两者中的大部分特性。就我个人而言,我已经转向 VS Code,但是你也可以使用许多其他的 IDE ,你无需切换就可以开始 Flutter 的工作。

8. UI遵从性——一切都是一个小部件

在 flutter 中,所有的东西都是一个小部件,例如 Appbar, Drawer, Snackbar, Scaffold 等等。开发者可以很容易地将一个小部件包装在另一个小部件中以实现一些效果,例如将一个部件包装在一个 Center 小部件中,就可以让其居中。

以上这些都是为了确保你的用户无论使用什么平台运行你的软件都可以有相同的用户体验。你还应该阅读下述 flutter 文档:Everything’s a widget

9. Android/iOS 的不同主题

根据用户的平台分配正确的主题就像使用三元 if 检查用户正在运行的平台一样简单;允许 UI 在运行时决定使用哪些 UI 组件。

下面是一个示例代码,它用于检查当前运行的平台,如果是 iOS,它返回一个以紫色作为主色调的主题。

return new MaterialApp(
  // default theme here
  theme: new ThemeData(),
  builder: (context, child) {
    final defaultTheme = Theme.of(context);
    if (defaultTheme.platform == TargetPlatform.iOS) {
      return new Theme(
        data: defaultTheme.copyWith(
          primaryColor: Colors.purple
        ),
        child: child,
      );
    }
    return child;
  }
);

10. 使用 Code Magic 进行持续集成.

Code magic 是 2018 年 12 月 4 日在 Flutter Live 中使用的一个开源工具。Code magic 很容易学习,并且完全免费!它是一种高度复杂的 CI 工具,专门针对 Flutter 进行了优化。 Code magic 使构建过程无缝对接。

image

运行中的 Code Magic

11. 2Dimensions 让动画制作更简单

image

我第一次尝试使用 Flutter + Flare——Bouncy

同样是在 Flutter live 2018 期间推出的惊人的在线工具,可以轻松创建非常棒的 UI 或动画。它弥补了 UI 设计人员和开发人员之间的差距,减少了应用 UI 或动画相关更改所需的时间。

Flare的学习曲线很浅,我在使用了它之后,对创建动画的简单性感到惊讶! 你可以看到 app 在这里工作,我甚至在球上加了一个反射,给它一个更逼真的外观。

12. 运行在桌面和 Web 端的 Flutter

Flutter 团队现在已经有了可以在 web 浏览器中工作的 Flutter 原型 app ,这让所有人都感到震惊。在 Flutter Live 中,之前的绝密项目 “Hummingbird” 向世界公开。很快,你就可以使用相同的代码轻松地为移动端、桌面端和 web 端创建应用程序。

image

13.来自 Flutter 团队和 Flutter 社区的持续支持

在过去的三周里,我一直在用 Flutter 工作,并注意到来自 Flutter 团队和社区的很多支持和鼓励;尤其是 Scott Stoll, Nilay YenerSimon Lightfoot(仅举几个例子)。每个星期三,Flutter 社区中许多比较知名的名字都可以在 Zoom at #HumpDayQandA 上看到,在那里你可以实时获取来自真人的有关 Flutter 的帮助。即便你没有任何问题,那也是一个很好的地方,因为你可以从他们回答别人的问题中学到很多。

image

这是我参加 #HumpDayQandA 的照片。 来自 Flutter Egypt 的创始人,谷歌开发者 Amed Abu Eldahab的推文。

使用 Flutter 的价值很明显,也很有吸引力,因为它减轻了初创公司试图将产品发布到多个平台所面临的许多困难;特别是处理在有限的时间和预算内将软件产品推向市场的时候。

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

推荐阅读更多精彩内容