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

原文地址:blog.codemagic.io/releasing-y…git

原文做者:medium.com/@rody.davis…github

发布时间:2020年6月16日web

因此你创建了你的第一个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版本中得到更好的性能。app

单机版

不管你是用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(免费版)翻译

相关文章
相关标签/搜索