V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sunbreak
V2EX  ›  Flutter

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

  •  
  •   sunbreak · 2020-07-15 07:03:52 +08:00 · 2600 次点击
    这是一个创建于 1371 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文地址: 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 (免费版)翻译

    4 条回复    2020-07-15 09:35:18 +08:00
    my101du
        1
    my101du  
       2020-07-15 09:08:25 +08:00
    唉, 宁愿付费看人工翻译。 机翻的还不如不看。
    youstu
        2
    youstu  
       2020-07-15 09:10:54 +08:00
    所以这是机器翻译的嘛。。。还不如看英文。。。
    sunorg
        3
    sunorg  
       2020-07-15 09:12:38 +08:00 via Android
    同楼上,宁愿拿字典看原文
    darksword21
        4
    darksword21  
       2020-07-15 09:35:18 +08:00 via iPhone   ❤️ 1
    你自己看你你翻译的这玩意吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1130 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:59 · PVG 06:59 · LAX 15:59 · JFK 18:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.