[Flutter 翻译]发布您的 Flutter 桌面应用程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sunbreak
V2EX    Flutter

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

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

    原文地址: 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  
    PRO
       2020-07-15 09:35:18 +08:00 via iPhone   1
    你自己看你你翻译的这玩意吗
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     820 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 22:20 PVG 06:20 LAX 14:20 JFK 17:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86