[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(免費版)翻譯

相關文章
相關標籤/搜索