老孟導讀:您在網路上一定看過很多Flutter如何優秀的、如何完美的文章,而這篇文章將會告訴你Flutter不能做什麼,注意並不是Flutter的缺點,比如第三方外掛少、Dart不流行等,在我看來這都不算什麼。
看完這篇文章希望對您是否使用Flutter來開發App起到一些作用。
在我們做新的技術評估時,什麼東西不能做,甚至比能做什麼更有用,雖然這樣的列表可能會讓你感到沮喪,但我想這是非常重要的。
本機平臺檢視
Flutter使用Skia渲染所有內容,所以和本機原生檢視有一點點的區別,對於99%的使用者來說可能感覺不到,但對於一些極客來說,是會發現一些區別的。
另外新的系統可能會帶來新的UI設計,Flutter並不會立即更新。
有什麼影響?
Flutter的渲染機制保證了應用程式不管在哪一個平臺或者系統版本都是一致的,您的應用程式不會根據不同的平臺渲染不同的樣式。
這會改變嗎?
不會,這是Flutter的核心渲染機制。
熱更新
注意這裡說的不是hot relaod,而是熱更新,通過熱更新,開發人員可以立即將補丁釋出到其應用程式中,而無需通過應用商店釋出。
Bug可以在沒有新版本的情況下進行修復,在React Native,Cordova和Ionic支援此功能。而Flutter不支援此功能。
熱更新功能在國內來說尤其重要。
有什麼影響?
Flutter應用程式的所有更新都必須經過釋出新的版本,在應用商店進行更新。對於iOS,有時可能需要幾天的時間。
這會改變嗎?
官方給出的答案是暫時不會,具體原因請檢視此文章Ian Hickson的這篇文章。您也可以關注此問題以進行更新。
電視,手錶和汽車
您不能使用Flutter為tvOS,watchOS,CarPlay或Android Auto構建應用。
有什麼影響?
如果您的應用需要釋出到這些平臺,需要使用本機語言進行開發。
這會改變嗎?
可能,但是可能需要一段時間。可以關注這些問題:位碼支援,汽車支援和Wear OS支援方面存在問題。
從Dart直接呼叫本機API
Flutter可以與本機平臺API互動,但不能直接互動。您可以通過語言繫結,使用與編寫應用程式時使用的相同語言來使用本機API 。
有什麼影響?
您可以使用第三方外掛,可能已經有人為您完成工作,但目前Flutter生態發展時間較短,所以在更多自定義場景中,您將不得不編寫本機的Objective-C / Swift或Java / Kotlin程式碼,並通過平臺渠道進行通訊。
這會改變嗎?
不會很快。
希望這些不會讓您放棄,沒有什麼是完美的,Flutter非常棒,是目前最完美的跨平臺解決方案,沒有之一。
交流
老孟Flutter部落格地址(近200個控制元件用法):laomengit.com
歡迎加入Flutter交流群(微信:laomengit)、關注公眾號【老孟Flutter】: