[Flutter 翻译]发布您的 Flutter 桌面应用程序

2020-07-15 07:03:52 +08:00
 sunbreak

原文地址: https://blog.codemagic.io/releasing-your-flutter-desktop-application/

原文作者: https://medium.com/@rody.davis.jr

发布时间:2020 年 6 月 16 日

所以你建立了你的第一个 Flutter 应用,并在 iOS 设备的 AppStore 和 Android 设备的 Google Play 上发布。然后,你想接触更多的受众和目标网络,所以你用静态主机发布了它。但你仍然想要更多。如果你想要移动设备的性能,但又想要 web 的响应速度,那么桌面版就是答案。

目前的选择

对于桌面,你有几个选择来发布--但它们都有一定的权衡。在这里,我们将讨论为什么你可能想选择一个而不是另一个。

Electron

你可能以前听说过,因为目前 MacOS 和 Windows 上的大部分第三方应用都是用它发布的。Electron 是一个由 chromium 驱动的浏览器,它使用 Node.js 将网络浏览器与文件系统粘合在一起。你可以得到为网络开发的好处,但又有桌面的灵活性。它使用大量的 JS 来做到这一点,所以你失去了AOT (提前编译),这意味着没有剪枝,优化或一般性能。

Flutter 在移动端工作得很好的原因是由于发布构建的 AOT 。你可以通过在根目录下添加一个 manifest 文件和一些额外的模板脚本,用 Electron 发布一个 Flutter 应用程序。您打包您的 Flutter Web 应用程序,就像部署到静态托管时一样。如果您想使用FLUTTER_WEB_USE_SKIA标志,您可以从 Web 版本中获得更好的性能。

单机版

无论你是用 Electron 、桌面嵌入还是自定义嵌入器来构建你的 Flutter 桌面应用,你都需要一种方法来向世界发布应用。如果你用 Codemagic 、Github Actions 或手动创建一个发布构建,你就把构建上传到 Amazon S3 或类似的 CDN,并把链接提供给客户。这种方法很好,因为你不必等待审查过程,也不必处理每个平台的非常具体的规则。然后,你可以把这个链接放在你的 Flutter Web 应用或 PWA 清单上,只要用户觉得合适,就可以提供原生体验。

这种方法的一个主要缺点是你如何处理更新。您需要使用一个库或自定义构建的解决方案,用于在后台下载和安装更新或通知用户新的更新。你给用户的步骤越多,他们完成所有步骤的可能性就越小。你以用户为代价换取了灵活性和可用性。

有一些不错的工具,比如 MacOS 和 Windows 的 Sparkle,它为你每天使用的很多应用程序提供了动力。每当你看到一个弹出窗口说一个更新已经准备好安装时,很有可能是在使用这个库。该库通过托管的 RSS 源运行,你可以通过解析来获取发布说明、版本和安装链接。该应用程序将尝试在后台为你自动安装它们,并在你下次启动时重新加载。

官方商店

现在,你可能会推迟的选择是发布到官方商店。在应用商店之外,可能有合法的理由,因为你可能没有遵循所有的指导方针,有一个自定义的部署和发布后台,企业应用只用于内部或有限的使用,或者你只是想在你的网站上有一个链接来下载应用。许多应用程序甚至在商店中提供应用程序,但也有一个在线版本,可能是测试频道或特殊构建。我发现这是一个很好的方法,因为例如 Mac AppStore 仍然没有像 iOS 那样为 MacOS 应用提供 TestFlight 。

部署到商店可能具有挑战性,但我相信最终是值得的,因为你获得了安全性和自动更新。他们还将处理付款和退款。在未来的文章中,我将会介绍向 Mac AppStore 发布 Flutter 应用程序,就像我在 iPadOS 和 MacOS 上发布新的Widget Studio一样。顺便说一下,Widget Studio 也可以作为一个PWA。我建议在 MacOS 上,你应该只包括你正在积极使用的权限,如果你想分享 Mac 和 iPad 应用的购买,你需要有相同的捆绑 ID 。你不会用 Catalyst,而是用当前的桌面嵌入来做这件事。

结束语

这是一个激动人心的时刻,以一种原生的方式将移动应用带到桌面,这在以前是不可能的。Flutter 很厉害,可以让你针对 MacOS 、Windows 和 Linux,现在由你来决定如何发布。Codemagic支持 Mac 和 Linux,这比 2 个复选框还要简单。如果你有任何问题,请告诉我,我期待着看到你的 Flutter 桌面应用程序!

Rody Davis Jr 是一名专业的全栈开发者,在企业和个人应用方面都有丰富的经验。他使用最新的框架为 App Store 、Google Play 、Web 和桌面创建应用程序。Rody 热爱 Flutter 、Web 和所有有创意的东西,并在Medium上写 Flutter 文章。他希望通过他的应用接触到尽可能多的人,并展示最新科技的可能性。


通过 www.DeepL.com/Translator (免费版)翻译

2793 次点击
所在节点    Flutter
4 条回复
my101du
2020-07-15 09:08:25 +08:00
唉, 宁愿付费看人工翻译。 机翻的还不如不看。
youstu
2020-07-15 09:10:54 +08:00
所以这是机器翻译的嘛。。。还不如看英文。。。
sunorg
2020-07-15 09:12:38 +08:00
同楼上,宁愿拿字典看原文
darksword21
2020-07-15 09:35:18 +08:00
你自己看你你翻译的这玩意吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/690105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX