近些年来,利用「跨平台」技术来开发 App 在无论是移动端还是桌面端都备受欢迎。开源的「跨平台」框架也是百花齐放,前有打造出可能是全平台最受欢迎代码编辑器 VS Code 的桌面端框架:Electron;后有大厂 Facebook 背书的基于 React 技术的移动端框架:React Native。除此之外,还有微软的 Xamarin 以及苹果的 Project Catalyst 等等。仿佛全世界都在为了让开发者能「一份代码,处处运行」而努力。

Flutter: Design Beautiful Apps

对移动端来说,目前流行的跨平台开源解决方案有:React NativeWeex 以及 Flutter。其中 Flutter,就是我们本次文章所要简单介绍的一个非常优秀的开源框架。

Flutter 的优秀特点

首先,向大家解释一下:Flutter 是一个「框架」。开发者可以用 Flutter 开发 iOS、Android 应用(将来还可以开发桌面端的应用)。在 Flutter 面世之前,传统的 App 开发方法是:在 iOS 和 Android 上面分别进行相应的开发工作,使用两种代码实现一样的效果。显而易见,这样的开发方式非常低效、费力。「跨平台框架」的诞生,让开发者可以将一份代码分别在多个平台上运行,而不必做功能上的重新实现。

那么,为什么 Flutter 能从一众框架中脱颖而出呢?主要在于:

  • Flutter 拥有接近平台原生的优秀性能
  • 开发者可以借助于 Flutter 轻松画出美丽的界面、动画
  • 利用 Flutter 开发也非常直观高效

这样一来,开发者就能够将更多的 App 开发时间用于「实现、整合新功能」而不是「将旧功能在其他平台上做适配」。开发者的开发、迁移成本降低,也就代表着着他们可以几乎「零成本」适配不同的系统和机型。对于我们普通用户来说,则意味着能够轻松的在第一时间体验到在不同平台上无缝衔接的新功能。这无疑是对开发者和用户双方的体验提升。

利用 Flutter 技术开发的新鲜 App

事实上,在 2019 年的今天,非常多优秀的 App 都是利用 Flutter 技术开发的。在 Flutter 的官方网站上面,官方就列出了包括国内几家大厂在内的许多优秀的 Flutter App。我们可以访问:Flutter Showcase 去观摩一番。下面我来推荐几个优秀的,甚至大家可能日常都已经在用的 Flutter 应用。

有技术大厂背书的 App

闲鱼、Google Ads、NOW 直播、京东金融

目前国内主推 Flutter 的大厂技术团队就属阿里巴巴的闲鱼团队了。闲鱼的 iOS 和 Android 应用全部都是利用 Flutter 技术开发的。在 Google 的 Showcase - Flutter 上面,闲鱼团队占据着网站的首要位置。YouTube 上面有一个闲鱼团队的采访视频:Alibaba used Flutter to build 50+ million user Xianyu app (Flutter Developer Story) - YouTube,介绍了闲鱼是如何利用 Flutter 构建一个服务于 500 多万用户的 App。事实上,闲鱼使用起来和普通的利用平台原生技术编写的 App 没什么两样。


除了闲鱼外,Google 官方的「Google Ads」、腾讯的「NOW 直播」以及京东的「京东金融」,都是使用 Flutter 技术编写的。

Highlight:出彩

除了较大的技术团队,Flutter 还备受独立开发者的偏爱。比如「出彩」:这个将视频帧截取并导出为高清图片的 App,就是开发者 @Allen 最近发布的双端 App。在「出彩」出现之前,可能截取视频中某一帧作为图片的最好方法还是「直接截图」。现在不需要了,我们直接使用「出彩」就能导出高清大图。

出彩 App

得益于 Flutter 框架,「出彩」不仅有着优秀的界面设计,还有相当不错的性能表现。付费高级版本的出彩还可以直接导入 GIF 动图以及 Live Photos,将其中的高清图片提取出来,直接导出。


Reflectly

Reflectly 是一个静心冥想的日记应用,界面非常好看精致,曾获得 App Store - New Apps We Love 奖项。

Reflectly

由来自哥本哈根的开发者团队开发的 Reflectly 是世界上第一款「智能日记本」。借助于 Flutter 技术,Reflectly 轻松的将美丽的 UI、精美的动画效果以及一致的用户体验在 iOS 和 Android 上面呈现。在进入 Reflectly 之后,「日记本」会通过向我们提出诸多问题,帮助我们回顾一天中的经历、情绪等等,并记录在 App 里面。之后,Reflectly 会通过 AI 去学习、分析我们的答案,这样,之后 Reflectly 就可以问出更为精确的问题,来反映我们生活中的心情波动。

利用 AI 辅助,以「问问题」的方式帮助我们记日记,一段时间之后还会将我们的信息进行分析,得到一段时间内的进步结果。Reflectly 确实是一款智能的日记应用。


Developer Quest

除了普通的应用,Developer Quest 这一 App 的出现证明了 Flutter 还可以构建游戏。

Developer Quest

同样是由 2Dimensions 开发的游戏,Developer Quest 构建了一个开发者的世界。我们在游戏中是一名技术领导(Tech Leader),在游戏的项目中,我们需要通过雇用开发者来实现需求、解决 bug,最终开发出举世瞩目的应用。精致的 UI 和优秀的动画设计让 Flutter 优异的框架特性一览无余。


其他

除了上面的几个 App 之外,还有非常非常多的应用都是利用 Flutter 进行开发实现的。我们在 It’s all widgets 上面可以下载到很多优秀的 Flutter 应用;在 GitHub 上面也有一个 Solido/awesome-flutter 项目,专门收集优秀、开源的 Flutter 应用。如果大家有兴趣,也可以在上面寻找一些实用的 Flutter App。

小结

今年是 2019 年,回想一下移动设备的历史也仅仅 10 年不到。在前 10 年里,世界各地的应用团队都需要 iOS 和 Android 两拨人马并行的开发,才能将移动平台覆盖完整。在今天,我们看到了诸如 Flutter 的优秀跨平台框架,在不牺牲性能的前提下,又能保证两个操作系统上 App 界面、功能,甚至代码,都完全统一,实在难能可贵。感谢阅读。