子标题:Ubuntu 团队为所有 Linux 发行版上的 Flutter 应用程序制作了一个新的基于 GTK + 的主机。
此文翻译自:https://medium.com/flutter/an…
作者:克里斯·塞尔斯(Chris Sells)(Google)和肯·范丁(Ken VanDine)(Canonical)
Google 对 Flutter 的指标始终是提供一个可移植的工具包,以构建媲美本机速度运行的精美 UI,无论您应用的是哪个平台。为了验证该性能,咱们首先关注于 Android 和 iOS 挪动平台,咱们曾经在 Google Play 上看到了 8 万多个疾速,精美的 Flutter 应用程序。
为了获得成功,一年多来,咱们始终将重点扩大到包含桌面级体验,包含针对 Web 和桌面操作系统(macOS,Windows 和 Linux)的体验。这项工作包含对引擎进行宽泛的重构,以反对桌面款式的鼠标和键盘输入,以及可调整大小的顶级窗口。它还包含新的 UI 性能,能够很好地适应桌面,例如 Material Density 反对和 NavigationRail,还能够通过 Dart:FFI 中的试验与根底桌面 OS 进行深度集成,并能够拜访零碎菜单栏和规范对话框。所有这些工作是为了确保除了适宜挪动款式的体验之外,Flutter 还筹备解决功能齐全的全尺寸桌面应用程序。
为 Flutter 平台提供能源是咱们长期的愿景。咱们曾经在 Google 上看到了带有 Assistant 等产品的清单,所以当初咱们很快乐看到其他人利用 Flutter 来反对更多平台。明天,咱们很快乐与寰球最风行的台式机 Linux 发行版 Ubuntu 的发行商 Canonical 独特发表 Flutter 的 Linux alpha 版本。
为什么要在 Linux 上应用 Flutter?
去年,当 Google 发表对 Flutter 提供桌面级应用程序反对时,Canonical 看到了一个令人振奋的机会来进行 Linux 发行,包含 Ubuntu,这是 Flutter 应用程序开发人员的有吸引力的指标平台。Flutter 的原生跨平台故事正在迅速倒退,Canonical 心愿成为先锋。通过在 Flutter 中启用桌面 Linux 反对,Canonical 使得应用程序开发人员能够十分轻松地通过 Snap Store(Linux 应用程序商店)为 Linux 用户公布他们的应用程序。通过使 Linux 成为一流的 Flutter 平台,Canonical 邀请应用程序开发人员将其应用程序公布给数百万 Linux 用户,并扩充可供他们应用的高质量应用程序的可用性。
无关 Flutter 的许多事件对于 Canonical 来说是令人兴奋的:
- 疾速倒退的应用程序开发人员生态系统
- 多平台反对
- 高度优化的本机应用程序
- 古代的 UI 框架,反对申明式,反应式和可组合的小部件
- 应用 Visual Studio Code,Android Studio 和 IntelliJ 的丰盛开发平台
Google 最后发表的 Flutter 桌面反对发表是从反对 macOS 的 Alpha 版本以及针对 Linux 和 Windows 的打算开始的。Canonical 通过组建一支开发人员团队与 Google 的开发人员单干,将 Flutter 的最佳体验带给大多数 Linux 发行版,从而对 Flutter 进行了重大投资。Canonical 将持续与 Google 单干,以进一步改善 Linux 反对并放弃与其余受反对平台的性能对等。
Flokk:证实 Flutter 已为台式机做好筹备
为了证实 Flutter 已为台式机做好了筹备,咱们与 gskinner 的设计师和开发人员单干,创立了翻新的,精美的 Flutter 台式机应用程序。Flokk 是一个真实世界的应用程序,可解决真实世界的数据,尤其是您的 Google 联系人列表。
此视频地址:https://www.youtube.com/watch?time_continue=120&v=cTFJcq7UTRY&feature=emb_logo
除了可能治理您的联系人(包含搜寻联系人,增加新联系人和编辑现有联系人)之外,Flokk 还使您能够将 GitHub 和 Twitter 解决与您的联系人信息。
GitHub 和 Twitter 告诉的显示将您的联系人变成您本人的集体社交网络。而且,如果您在 Flokk Contacts 中没有看到您喜爱的社交网络,那么好消息是 Flokk 是齐全开源的,因而您能够提交 PR 来增加您喜爱的。
除了在社交空间中进行翻新外,Flokk 还应用 Flutter 性能使外观看起来很棒。仅作为一个示例,深色主题不仅能够切换色彩,还能够对更改进行动画解决。
Flokk Contacts 应用程序背地的创意团队由 Grant Skinner 领导,他以杰出的设计和施行翻新的用户体验而闻名。Grant 曾说过对于在 Linux 上应用 Flutter:
“构建 Flokk Contacts 应用程序非常容易!咱们简直无需进行任何调整就能够将咱们在 Flutter 上的所有专业知识利用于指标 Linux,并且该利用程序运行杰出。与 Canonical 团队单干是一次很棒的经验。他们热心,投入并热衷于使 Flutter 不仅针对 Linux,而且针对每个平台都变得更好。这是一个了不起的我的项目,我很快乐可能应用 Flutter 定位另一个次要的操作系统。”—Grant Skinner
如果您想在 Linux 机器上应用 Flokk 利用,则能够在 GitHub 上下载最新版本。或者,如果您正在疾速运行,则能够从 Snap Store 下载 Flokk 利用。
在 Linux 上轻松装置 Flutter
当初,您曾经理解了 Flutter 在桌面类应用程序(尤其是 Linux)上的运行状况,您将心愿使其在本人的 Linux 机器上运行。为使操作尽可能简略,咱们很快乐在 Snap Store 中提供 Linux 版 Flutter SDK。Flutter SDK 快照提供了在您喜爱的 Linux 发行版上开发 Flutter 应用程序所需的所有。无需装置大量开发依赖项;只需装置 Flutter SDK 快照和您最喜爱的 IDE,便领有了创立,构建和公布 Linux 应用程序所需的所有。
例如,如果您想开始为 Linux 开发 Flutter 应用程序,并且您抉择的 IDE 是 Visual Studio Code,那么这就是您在 Linux 终端上须要做的所有:
$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter
如果您还想应用 Linux 开发挪动应用程序,则能够通过装置 Android SDK 或 Android Studio(包含 Android SDK)来实现。无关 Flutter SDK 的更多信息,请拜访 https://snapcraft.io/flutter
实用于 Linux 桌面的 Flutter
在 Linux 机器上装置 Flutter SDK 之后,要构建桌面应用程序,您须要降级到 Flutter 开发人员或主渠道。而后启用 Linux 桌面反对:
$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop
当初,当您创立一个新的 Flutter 我的项目时,您将取得一个 linux 子目录,该目录可让您在 Linux 桌面上运行该应用程序:
$ flutter create counter
$ cd counter
$ flutter run -d linux
您将取得一个运行在 Flutter 上且运行于最新稳固版本 GTK + 上的闪亮的 Linux 新应用程序。如果您有一个现有的 Flutter 我的项目,并且心愿在启用 Linux 之后向其增加 Linux 反对,则能够增加 linux 子目录,如下所示:
$ cd my_flutter_app
$ flutter create .
这将应用须要在 Linux 桌面上构建和运行 Flutter 应用程序的 Runner 我的项目创立 linux 子目录。
从 Flutter 拜访 Linux 中的本机代码
除了通过编写 Dart 来创立 Flutter 小部件来反对桌面之外,您的 Linux 桌面利用还能够应用平台渠道或 C / C ++ 的 Dart 内部性能接口拜访所有本机 Linux。或者,如果您想重复使用现有代码,则能够在 pub.dev,Dart 和 Flutter 的程序包管理器网站上找到该代码。在 pub.dev 上能够找到的大多数软件包都是纯 Dart 的,大多数都能够在 Linux 应用程序中失常工作。有些软件包(称为插件)中蕴含特定于一个或多个平台的本机代码。作为此版本的一部分,咱们在 pub.dev 上公布了三个应用 Linux 本机性能的插件:
- url_launcher: 在提供的 URL 上启动默认浏览器
- shared_preferences: 利用会话之间共享的用户首选项
- path_provider: 无关专用目录的门路信息,例如下载,图片等
您能够在应用程序中应用这些插件中的每个插件,并作为如何从 Flutter 代码本地拜访 Linux 的示例,例如 Linux implementation of url_launcher。
部署到 Snap Store
要将 Flutter 应用程序部署到 Snap Store,首先须要装置 Snapcraft,该工具将用于疾速构建和公布应用程序:
$ sudo snap install snapcraft --classic
要驱动 Snapcraft 工具,您须要在应用程序的我的项目目录中创立一个 snapcraft.yaml 文件。例如,这是 Flokk 的 snapcraft.yaml 文件:
name: flokk-contacts
version: 1.0.1
summary: Flokk Contacts
description: A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.
confinement: strict
base: core18
grade: stable
apps:
flokk-contacts:
command: flokk-contacts
extensions: [flutter-master]
plugs:
- network
parts:
flokk-contacts:
source: .
plugin: flutter
flutter-target: lib/main.dart # app's main entry-point file
当初,在带有 snapcraft.yaml 文件的目录中,您能够运行 snapcraft 来构建应用程序的快照。
$ snapcraft
如果一切顺利,这将在您以后的工作目录中生成一个文件,例如 flokk-contacts_1.0.1_amd64.snap。
设置好要在 Snap Store 中公布的帐户后,即可公布 snap:
$ snapcraft login
$ snapcraft register flokk-contacts
$ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge
此命令会将应用程序上载到 Snap Store,并尝试将其公布到边缘通道。在边缘通道中公布应用程序后,能够通过 Snap Store Desktop 客户端或应用命令行来装置它:
$ snap install --edge flokk-contacts
无关构建第一个快照并将其公布在 Snap Store 中的更多详细信息,请参阅 https://snapcraft.io/first-sn… 以获取领导教程。
Flutter Linux 桌面案例
Flokk 应用程序是针对 Linux 桌面的实在 Flutter 应用程序的绝佳示例。对于更简略的示例,您能够查看照片搜寻应用程序,该应用程序还专门用于展现桌面性能。
Photo Search 是一个简略的在线照片搜寻应用程序,它应用多个插件来拜访本机平台性能,同时反对 macOS 和 Linux。
对于带有分步阐明的示例 Linux 桌面应用程序,我倡议编写 Write Flutter 桌面利用程序代码实验室,该教程将领导您应用 OAuth 和 GraphQL 在 Flutter 中构建 GitHub 客户端。
对于一个性能更全面的应用程序,该应用程序能够应用 Flutter 的更多表面积并提供几个小程序,我举荐 Flutter Gallery,该软件去年进行了从新设计,以反对台式机和挪动设施。如果您心愿看到它的实际效果,也能够在 Snap Store 中查看。
Thorsten Lorenz 制作的一款名为 batufo 的多人游戏是另一个展现 Flutter 乏味之处的桌面应用程序。游戏以漂亮的背景为背景,使来自世界各地的玩家能够实时相互竞争。
Thorsten 始终在开发该游戏,以反对多个 Flutter 平台,包含 Linux,macOS,Android 和 iOS。如果您想理解他的工作形式并理解将来的更新,那么他能够将他的编码会议作为视频提供,而将代码提供给 GitHub。要从 Linux 装置游戏,您能够从 Snap Store 中将其下拉。
摘要
通过此 Alpha 版本以及 Google 与 Canonical 之间的严密单干,Linux 开发人员能够为其抉择的操作系统取得 Flutter 反对。通过快照装置 Flutter SDK。应用 Visual Studio Code 或 Android Studio 在 Linux 上构建和测试您的桌面应用程序。将您的应用程序部署到 Snap Store。无关最新详细信息,请参见 flutter.dev 上的桌面页面。最重要的是,确保提供反馈,以便咱们可能持续致力为每个受反对的 Flutter 平台做最好的 Flutter。
来自 Canonical 团队的 Linux Flutter,对于咱们的幻想是向前迈出了一大步,无论您将指标对准哪个平台,Flutter 都是构建应用程序的最佳办法。针对台式机的定位使得 Flutter 引擎更加适应 Google 自身无奈间接反对的长尾设施,但咱们打算为此持续建设合作伙伴关系并实现生态系统。
无论哪里的设施都须要疾速,精美的应用程序,这就是咱们心愿 Flutter 成为的中央。
交换
老孟 Flutter 博客地址(330 个控件用法):http://laomengit.com
欢送退出 Flutter 交换群(微信:laomengit)、关注公众号【老孟 Flutter】: