谷歌的 Flutter 框架有望通过连接移动端、桌面端、Web 端和嵌入式系统,彻底改变软件行业。
Flutter是如何诞生的:连接移动平台
迈向未来:连接桌面、移动、Web 和嵌入式系统
为什么 Flutter 如此重要
展望未来
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
谷歌以雄心勃勃的登月计划而闻名。这些计划往往只是空想,短期内实现的希望渺茫。但 Flutter 并非如此:它已经面世,而且运行得非常出色。
Flutter是如何诞生的:连接移动平台
Flutter 于 2017 年发布,是一个移动开发框架,旨在无缝连接 Android 和 iOS 开发,同时又不会像许多其他框架那样剥夺软件开发者对硬件和底层操作系统功能的控制权。它之所以备受关注,是因为谷歌展示了其令人印象深刻的性能表现,这得益于其底层渲染引擎的使用,该引擎不依赖于操作系统的原生界面元素,而 Facebook 的 React Native 等类似技术则依赖于操作系统的原生界面元素。
它之所以备受关注,是因为它被认为是开发谷歌即将推出的 Fuchsia 操作系统应用程序的主要方式,而 Fuchsia 操作系统将取代谷歌目前的操作系统。开发者们也对它一流的开发者工具赞不绝口,这些工具允许开发者即时预览代码更改后的效果,而无需编译应用程序。
除了作为众多以 Dart(谷歌开发的用于开发 Flutter 应用的编程语言)为主题的会议的主要议题之一外,自 2017 年 Flutter 首次发布以来,谷歌 I/O 大会上也进行了大量的讨论、展示和宣传,尤其是在 2018 年,谷歌为了迎接 2018 年底发布的 1.0 版本,大力推广 Flutter。
迈向未来:连接桌面、移动、Web 和嵌入式系统
Google I/O 2019 更进一步:发布了对桌面和 Web 平台的实验性支持,提出了一个愿景,在这个愿景中,一款软件不必局限于一个平台:如果你的应用由 Flutter 驱动,那么你需要支持什么平台都无关紧要:无论是手机、平板电脑、计算机、电视还是嵌入式设备。
Flutter 应用的显著示例
Flutter 不仅仅是一个大型技术预览版:如今,许多大型公司已经在生产环境中应用了它。谷歌最近发布了其即将推出的知名游戏串流平台 Google Stadia 的官方应用。谷歌还列出了 eBay、宝马、阿里巴巴、腾讯等众多市值数十亿美元的公司作为 Flutter 用户,而早在 2018 年初,音乐剧《汉密尔顿》的应用程序也是 Flutter 的早期采用者之一。
除了移动平台之外,《纽约时报》还使用 Flutter 构建了一些基于网络的数字谜题,您可以通过此链接查看。
为什么 Flutter 如此重要
Flutter 已经成为现实,这对每个人来说都应该是令人兴奋的:它可能即将打破阻止我们完全忘记底层接口的最后一个障碍,让我们能够以一种只取决于程序员的选择和用户需求的方式来思考应用程序。
你可以用它做什么
你可能想知道用 Flutter 究竟能构建些什么。答案可以从多个方面来寻找:首先,可以采用归纳法,看看别人用 Flutter 构建了哪些项目。
最明显的例子就是我上面提到的Hamilton应用,它是第一个使用Flutter开发的大型应用,因为大多数人一提到典型的Flutter应用就会想到它。这款应用从互联网获取最新信息,并以独特的审美风格,通过多层叠加的方式呈现给用户,内容涵盖新闻板块到趣味问答等各种形式。
这融合了移动应用中一些最常见的功能,但我们还可以进一步强调 Flutter 的灵活性:它能够控制屏幕,因此可以使用它构建具有自定义图形和动画的游戏(例如上面链接的《纽约时报》拼图),并且它使用同一个框架来实现 Material Design 和 iOS 设计语言所有组件的易于使用的类。
底层接口:C++、Swift/Objective-C 和 Java/Kotlin
所以 Flutter 在视觉呈现方面几乎无所不能。但我们还没有讨论它如何与硬件和底层操作系统接口交互。为了弄清这一点,我们将采用演绎法。
简而言之:原生应用能做的任何事,Flutter Android 应用都能做到。原因在于,Flutter iOS 或 macOS 应用可以像普通的 Android SDK 应用一样运行 Java/Kotlin 或原生 C++ 代码,Flutter iOS 或 macOS 应用可以运行原生 Swift 或 Objective-C 代码,而 Linux 应用可以运行原生 C++ 代码。
对任何程序员来说,这仅仅意味着应用程序拥有对设备所有功能的完全访问权限。例如,我有一个项目旨在构建一个 Flutter 应用程序,该应用程序可以通过与 Red Hat 开发的存储管理工具 Stratis 交互来管理 Linux 上的文件系统。
Flutter 甚至开始被 Linux GUI 开发人员视为解决不同桌面环境不一致问题的潜在方案,而负责构建 Linux 发行版的人员也注意到了这一点,并开始考虑投入一些精力来进一步改进 Flutter 的桌面支持。
展望未来
Flutter 无与伦比的灵活性意味着软件开发团队不会重复劳动,从而提高生产力,并消除为不同平台开发的同一应用程序版本之间的任何功能差距。
这是革命性的,并且已经在移动领域占据了市场份额,剩下的就是看它能否适应其他平台并取得成功。但有了谷歌的支持,再加上这么多公司都在大力投资,看来它将改变软件的开发方式,让每个人都能更容易地找到适用于任何平台的高质量软件,无论是手机、平板电脑、电脑,甚至是完全不同的设备,例如汽车信息娱乐系统、智能家居设备或智能电视。
<img src="https://imagery.pragprog.com/products/578/czflutr_xlargebeta.jpg?1560360708" alt="...">
<div class="col-md-8 text-center text-md-left">
<h3 class="mt-0">Get a Complete 300-page Introduction to Flutter!</h3>
<p>I’m so excited about Flutter I wrote a book about it called Programming Flutter with the Pragmatic Bookshelf.</p>
<a href="https://pragprog.com/book/czflutr/programming-flutter">Check it Out Here</a>
</div>
</div>
文章来源:https://dev.to/carminezacc/google-s-flutter-framework-could-change-software-forever-by-bridging-mobile-desktop-web-and-embedded-563j
