最近用Flutter開發了一個學習日語的App,
說說使用感受,
移動互聯網目前確實飽和了,開發App的需求慢慢在下降,大資本入場移動互聯網越來越少啦,這才是覺得Flutter會涼的關鍵點,還有一個原因就是小程式,現在入場移動互聯網基本首選的都會是小程式,甚至原來有App的商家都把重心放在小程式上了,
關于這點,可能性有兩點,開發App成本太高了,小程式推廣確實方便很多,
以上是目前移動互聯網的情況,
下面開始說說Flutter的事情,
先吐槽缺點吧,
一、Dart的語法真的是無言以對,看過很多種說法,覺得最貼切的說法是,看似是一個很時髦的語言,其實內部很古老,不太能夠理解為什么Google非得推廣Dart,用TypeScript不香嗎,雖然我也不太喜歡TypeScript,但是目前前端的德行,選TypeScript也是最好的選擇了吧,
二、生態真的不太理想,很多庫都好幾個月沒更新了,我都不太敢用,到社區里討論,得到的說法是應該已經很成熟了,所以沒有必要頻繁更新, ,所以找了一個讀取html的庫,結果里面的<ruby>語法有問題,好,那我fork過去,改好了,合并足足話了2個月時間,原來我一直使用Rails,對比一下,真的相差太遠了,
三、很多朋友說到嵌套的問題,確實嵌套地獄啊,

確實存在這個問題,然而說到這個問題,很多人會認為是可以通過拆分解決的,可是如果新手的話,不拆分那么代碼會非常可怕,這空格達到100個都不是奇怪的事情,為什么會出現這種問題呢?因為Flutter的絕大部分組件是不支持寫樣式的,就算支持,也只能寫非常的少,這個怎么理解呢!就是html里不能把css拆分出來,更可怕的是如果你使用了Padding組件,你希望組件background color是紅色的是不能設定的!必須外面套一層Container組件,當然Container組件也可以寫padding樣式啦,這里我們不使用Padding組件也可以,但是萬一你遇見了一個Container不能滿足的事情,那么你就開始要嵌套咯,
吐槽了那么多,那我會繼續用Flutter嗎?我的回答是會的,為什么?
- 跨平臺一致性目前使用來看,效果很好,性能比套殼做法好太多了,
- 不要說原生各種好,就成本,不是非常復雜的功能的情況下,Flutter成本可以直接腰砍原生成本,
- 把App開發成本拉下來,才可以和小程式競爭,絕大部分To B專案,我會更傾向于使用App,而非小程式,
- 檔案成熟,許多單獨組件都有視頻介紹,非常棒,
為什么大家對跨端開發情有獨鐘呢?
我覺得客戶端開發最大的問題就是多端一致性難以保證,
相同的功能由兩端的開發人員分別開發,隨著時間的推移,兩端從架構到實作再到用戶體驗就會漸行漸遠,
于是,從Hybird到Weex再到RN,還有微軟的Xamarin,出現了很多的解決方案,就是希望能通過一套代碼多端復用的方式,解決開發效率和端一致性的問題,
但是這些方案從性能和一致性上來講,距離我們理想的場景還有一定的差距,
為什么Flutter會火?
Flutter和RN最大的差別就是自繪制引擎,
自繪制引擎的方案,一方面,從根本上解決了各端的渲染差異性,另一方面也解決了基于js的跨端開發,不得不面對的性能問題,
Flutter的動態化方案
Flutter的動態化方案目前有兩個主流的思路:
1、基于Web技術堆疊的Web On Flutter容器
也就是基于Flutter實作一個Web容器,以解決WebView的性能和兼容性問題,因為使用的是H5的技術堆疊,自然也就有了動態化能力,
這方面主要有阿里飛豬的Flugy、美團的MTFLutterWeb容器等,
2、Flutter原生實作動態化
這個的底層思路和RN很像,代碼在JS上運行,渲染在Flutter上完成,
目前主要是騰訊的MXFlutter,他們做的比較好的一點是可以直接寫Dart的Flutter頁面,然后通過他們的編譯工具編譯成JS代碼進行動態發布,這樣就比較完美的解決了開發效率問題,
Flutter相關的學習資料
我的結論是Flutter不是要涼了,而是逐漸變成客戶端開發中必不可少的核心技術,如果你是客戶端開發從業者,建議一定要學習一下Flutter,無論從個人成長還是職業發展來說都會有很大的識訓,
從基礎入門到高級進階我都已經備齊,大前端趨勢已經越來越明顯,需要入門以及進階Flutter資料的讀者可以找我拿資料
點擊鏈接即可【Android開發交流】

Flutter進階
1、Flutter跨平臺開發概述
2、Windows中Flutter開發環境搭建
3、撰寫你的第一個Flutter APP
4、Flutter Dart語言系統入門
…

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/354681.html
標籤:其他
下一篇:移動端開發-亂七八糟的學習筆記
