Flutter 、React Native 、 Ionic、 NativeScript 、小程序和PWA哪一個值得學?

彬哥,我看今年前端分了倆方向啊,一個是Flutter和React Native這種,還有就是小程序,淘寶小程序這種微應用,咱們公司讓我作React Native這塊兒,這是否是對我將來發展好些?之前技術棧仍是Vue,我最近轉React了,剛開始寫第一個項目,我還看了看uni-app,學習成本更低一些,國內好像更吃香?到底第該學哪一個?javascript

圖片描述

前幾天有個學生問我上面的問題,由於前端技術領域最不缺的就是新技術,前端開發者比較頭疼的不是沒有技術可用,而是可用的技術太多了,學不過來,也不知道選哪一個。css

其實相似的問題爭論在PC時代就存在過,太陽底下沒有什麼新鮮事。甚至在咱們生活中都有相似的選擇問題。技術學習者要"看技術是技術,而後看技術不是技術"。若是你打算理解一項技術的產生和優缺點,就去追問他的應用場景,或者生活中的應用場景。若是一項技術你找不到生活中的對應,極可能你根本就不理解這項技術,而只是官方demo或者別人示例代碼的搬運工。html

今天我就說說Flutter 、React Native 、 Ionic、 NativeScript 、小程序和PWA哪一個值得學?前端

話說long long ago,有一個土豪,他有兩個兒子大明(IOS)和小明(安卓),土豪琢磨孩子年齡大了該準備婚事了,那就得先有房子,另外的家裏的門房和廂房都該翻蓋了,因此他想好好的規劃一番,對了還要作好防盜,不能讓閒雜人等進來影響安全。vue

他找老大談話徵求老大對房子的意見,老大說個人婚房要豪華氣派,要高級裝修,要住起來很是的舒服,閉路電視、寬帶,能通的就通上,反正也是折騰一回,蓋房子就大事,蓋一次爭取就是村裏最好的房子要住不少年呢。html5

他又找老二談話徵求老二對房子的意見,老二說我又不着急結婚,房子就是個住的地兒,我呢又在上學,反正怎麼快怎麼來吧,這樣週末和暑假還能夠過來玩。房子老了,到時候結婚了再翻蓋也不遲,如今蓋了未來也舊了,對了要方便一些,能讓個人朋友們跟我隨便造。java

土豪一聽都以爲有道理,他以爲都挺有道理,因而發了一個公告,尋找各路包工隊幫蓋房子。react

圖片描述
因而發了一個招標公告:面試

本人土豪,家資殷實,誠招各路豪傑幫我家蓋房要求:ajax

1.目前有主房兩套,其他廂房、門房若干,要求儘量一次性充分利用材料,一次採購和加工建築材料,可以多個地方能用。好比攪拌機攪拌一次攪機開一次就能把各個房間用的水泥攪拌出來,可以作出各個房子能用的磚塊和柱子。(維護一套代碼,可以在跨平臺運營,write once,run any where)

2.房子的各項水電煤功能齊全。(可以充分利用設備的功能)

3.房子後期維護方便,最好能讓家人或者個人工人們也能改造房子。(學習容易)

4.蓋房成本要儘量低。(開發和維護都省錢)

雖然土豪也以爲條件有些苛刻(跨平臺的思路都是受質疑的),可是他想我有錢啊,我想試試(技術是在嘗試和質疑中完善進步的)。

還別說,才招標就來了5路人馬。每一路人馬都身懷絕技。

他們分別是:

html5 派: 以html5 爲首,能夠說包隊歷史最老了,其中的PWA團隊是新星,受人關注。

native派:java、kotlin兩個團隊瞄着小明的需求去的,Object-C和Swift團隊瞄着老大的需求去的,他們能夠說最懂各自瞄準的需求了。

HybridApp派:號稱融合了h5派和native派的優點,有不少成熟的住宅建設經驗,目前風頭正勁。之前有phonegap ,後來有cordova,最近ionic表現也很搶眼。

純真派:後起之秀,被認爲是建築行業的將來,能夠說綜合其它各個派系的優勢,一出手變表現驚豔,可是初出茅廬,經驗上欠缺些。好比 NativeScript 、React Native、Flutter.

小程序派:Taro、WePY 、uni-app 、 mpvue 、 chameleon 這些團隊在專業的領域好比旅館建築頗有建樹,實力不容小覷。

公開招標會開始了,招標主人人開始主持:

1.各位都是建築業的精英,咱們實行集中陳述,互相答辯的方式。

第一個問題:

1.目前有主房兩套,其他廂房、門房若干,要求儘量一次性充分利用材料,一次採購和加工建築材料,可以多個地方能用。好比攪拌機攪拌一次攪機開一次就能把各個房間用的水泥攪拌出來,可以作出各個房子能用的磚塊和柱子。(維護一套代碼,可以在跨平臺運營,write once,run any where)

這個需求各路豪傑誰想說說?

html5 派的PWA直接站起來,由於這個就是他的強項啊!

PWA開口了,你們都知道H5做爲資歷最老的建築團隊,從一開始就主張全部平臺通用,目前咱們全部的建築技術都是能夠通用的,不論是住宅,商用仍是,寫字樓,相比native派只能在具體的領域很厲害,咱們仍是優點很明顯的,而是咱們有望成爲下一代的通用標準。還記得咱們當初咱們公司的傑做ajax嗎?不就成了數據交互事實標準了嗎?

沒想到還沒到答辯環節,PWA一開口就懟人了,可是這句話確實懟的native派沒話說。

HybridApp派,看PWA說完了,說到,你們看看淘寶以及各大主流平臺都採用了咱們的建築方式,因此我不想多說,咱們的建築經驗第一,相信Flutter你也認同吧。

雖然Flutter被人戳中了軟肋,很不爽,可是仍是點了點頭。對於前輩仍是要尊重的。

純真派見HybridApp派坐下了,站起來,說到,咱們這一派都是精英中的精英,好比react native、nativeScrtip,它沒好意思說本身,咱們在建築業的表現你們也有目共睹了。

小程序派聽着他們的闡述,由於看到土豪的那麼多需求感受本身實現不了,因此心虛想看看再說,因此暫時這一輪棄權。

好,主持人又開始說話了,咱們看第二個問題:

2.房子的各項水電煤功能齊全。(可以充分利用設備的功能)

剛纔被懟的native派一會兒站了起來,我就問一句話,說到可以把房子的功能蓋到極致,咱們派說第二,哪一個團隊敢說第一?H5大家敢嗎?

由於這個問題native派派優點性很大,因此過。

主持人繼續,咱們看第三個問題:

3.房子後期維護方便,最好能讓家人或者個人工人們也能改造房子。(學習容易)

h5又站起來了,你就說咱們幹活快不快吧?native?

native無話,

HybridApp派,咱們也不慢。

h5很仔細的說,比我呢?

純真派雖然維護挺快,可是由於本身用了dart因此讓人去學仍是存在必定困難的。

這個問題又過了,能讓家人或者個人工人們也能改造房子。這點心虛,因此不說話。

主持人繼續,咱們看第四個問題:

4.蓋房成本要儘量低。(開發和維護都省錢)

h5又站起來了,大家就說我蓋房子成本低不低吧?native。

native確實貴,被H5懟的真忍不住反駁,你那個也要叫房子?四處漏風,水電都不通。

主持人說一會答辯,土豪皺了皺眉。

HybridApp派和純真派說,咱們也不慢啊。

主持人一看這要槓上,因此說,這樣吧咱們開始答辯,你們說說大家打算怎麼幹,依次發言。

html5說到,我打算搭一個木頭架子(html),而後外面貼上鐵皮,一刷油漆完事(css),裏面能夠安個電風扇(js)。

native說到,你這個不就是活動板房嗎?煤電燃氣怎麼解決?

PWA說咱們打算逐步解決這個問題,好比大明家能夠安裝空調,由於他家房子架子能夠用鋼筋的,門房由於比較老舊了,裝空調費勁,可是咱們能夠裝空調。

native,笑道,你是在蓋豬圈呢嗎?native起來發言,我呢打算先挖坑,而後裏面水泥澆築,而後用壓路機軋上200趟,而後我去山裏拉石頭,把石頭磨得方方正正,而後壘起來,保證一百年不倒,重點是裏面各類高級裝修,閉路電視、監控只要是老大想裝的,咱們全能裝。

HybridApp笑了,你上次給村長兒子結婚蓋的房子,人家兒子都上小學了,你完工了嗎?

主持人說,你打算怎麼幹?

我呢主結構採用native的那套保證兼顧,裝修和牆壁使用h5的,又快有時會。

純真派問道,那前輩,活動板牆壁冬天取暖很費空調費啊,保暖性能也很差,怎麼解決呢?

HybridApp,無話。由於純真派知道此次小程序就是來陪標的,因此根本不放在眼裏,因此闡述本身的想法。

我能打地基的時候採用native的方式,而主體建築我採用混凝土鋼筋結構,雖然沒有把石頭打磨平整一整塊石頭那種方式堅固,可是也是絕對堅固可以知足建築的堅固需求的。同時混凝土澆築速度快,同時可以解決內部精裝和HybridApp的建築方式保暖、通風問題。

土豪內心彷佛明朗了一些,基本上小程序打醬油、PWA不能立馬知足全部需求,H5由於功能缺失出局,集中點就在HybridApp和純真派上。HybridApp雖然成熟,可是確實性能很差,功能上也不如純真派來的直接,可是又不想重複村長兒子的悲劇。可是一想到純真派的經驗不足,就想多問一些。

因而主持人問到,純真派大家能詳細說說嗎?

這句話無疑就至關於說,我以爲純真派有戲,那麼競爭就變成派系內部了,也就是三大主角。

react native、flutter、NativeScript .

react native先發言,

咱們隸屬於fackbook公司,依託於react,語法上沿用了react,咱們使用javascript,能夠很好的維護。

不用HybridApp的Webview,完全擺脫了Webview讓人不爽的交互和性能問題,有較強的擴展性,這是由於Native端提供的是基本控件,JS能夠自由組合使用,能夠直接使用Native原生的動畫。

rn說了一堆專業術語顯得本身很專業聽的土豪一頭霧水,可是感受很厲害。

flutter打斷道,說的好像你蓋完老大的房子的東西就直接能用到老二家似的,何況你看看你建築的那些組件的bug還用我說嗎?

rn說,咱們確實存在一些問題,可是咱們在嘗試解決。

flutter乘人之危,嘗試解決?就是一堆坑沒解決唄。

rn反擊道,就算是沒解決也比你還沒遇到好吧?再說了你那個破dart,你以爲非專業人員能學會嗎?

NativeScript 一聽這麼說,心虛了,本身的東西比他們兩個都複雜,趕忙閉嘴。

看來剩下就是flutter和rn的論戰了,不過也沒有什麼新意,flutter老是強調本身的磚瓦石灰各類模塊多豐富,蓋房子多快,性能多好,而後rn總強調本身的學習不用學其它語言就js就行。

想到這裏,主持人說答辯結束,我總結一下,各方觀點:

1.h5開發快修改爲本低於,可以跨平臺,可是由於標準更新緩慢,因此功能支持不完善。

2.HybridApp,方案成熟,應用不少,性能不是很好(相比flutter和rn)

3.native 功能全,可是不能跨平臺,開發慢。

4.rn 學習成本低(比HybridApp高,比flutter低),坑比較多。

5.flutter 優點明顯,可是須要學dart,可是組建豐富。

是這樣嗎?

你們點頭。

土豪考慮,綜合一聽其實王道仍是h5,奈何它太慢了,感受不是別人作的太好了,而是它作的太差了。小程序不考慮了,native不考慮成本過高,開發慢,不跨平臺。由於大兒子着急結婚(主營業務、核心需求),因此採納HybridApp比較穩妥,二兒子不着急結婚因此讓flutter去蓋(次要業務)。rn就不考慮了,不過好像由於以前的廂房是react蓋的,因此react native接受翻蓋會容易些,因此這塊給他們吧。

因此最終宣佈:

大兒子的房子HybridApp中標,

二兒子的房子flutter中標,

廂房和門房由於以前就是react弄的,因此reaact native中標!

3月23號,前端職業規劃師Maxwell,在線live爲你們講解跳槽、面試相關的實戰攻略。

相關文章
相關標籤/搜索