? ?傳統(tǒng)的原生開發(fā)一般都要維護Android善已、iOS兩個開發(fā)團隊褥影,版本迭代時池户,無論人力成本,還是測試成本都會變大凡怎。?使用Flutter開發(fā)校焦,真正的一套代碼多端使用,增加代碼復(fù)用统倒,降低人力和開發(fā)成本寨典。
原生開發(fā)
開發(fā)成本大?原生開發(fā)一般都要維護Android、iOS兩個開發(fā)團隊房匆,版本迭代時耸成,人力成本报亩,開發(fā)成本,測試成本都會變大井氢。?
動態(tài)化需求?當需求發(fā)生變化時弦追,純原生應(yīng)用大多數(shù)需要通過版本升級來更新內(nèi)容,不發(fā)版也可以更新應(yīng)用內(nèi)容的需求就變的迫在眉睫
H5
WebView擔任JavaScript與原生API之間通信的Bridge橋梁毙沾。?
?用于在JavaScript與原生之間通信的工具稱之為WebView JavaScript Bridge(JsBridge)骗卜。?
WebView性能堪憂?
跨平臺
H5?作為第二階段的性能瓶頸,RN通過橋梁完成原生繪制左胞,以達到更優(yōu)的性能。?JavaScript通過?bridge?傳遞到native完成原生繪制举户,?bridge?的成本高烤宙,因為需要頻繁的跨橋調(diào)用,導(dǎo)致卡頓等性能問題俭嘁。
Flutter介紹
Flutter是谷歌的移動UI框架躺枕,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面。?Flutter可以與現(xiàn)有的代碼一起工作供填。在全世界拐云,F(xiàn)lutter正在被越來越多的開發(fā)者和組織使用,并且Flutter是完全免費近她、開源的叉瘩。
Flutter架構(gòu)
Flutter優(yōu)勢
熱重載?
頁面每次改動,不需要手動去刷新,可自動刷新。即支持開發(fā)過程中熱重載粘捎。?
統(tǒng)一的UI?
?Flutter?提供豐富的內(nèi)置?UI?組件——?Material Design(針對?Android?)和?Cupertino(適用于?iOS?)薇缅,不需要擔心在眾多設(shè)備上看起來會有什么不同。
Dart
特點:?
基于JIT的快速開發(fā)周期
?Flutter在開發(fā)階段采用JIT模式攒磨,這樣就避免了每次改動都要進行編譯泳桦,極大的節(jié)省了開發(fā)時間;?
基于AOT的發(fā)布包
?Flutter在發(fā)布時可以通過AOT生成高效的ARM代碼以保證應(yīng)用性能娩缰。?
?為了快速流暢的用戶體驗需要能夠在每個動畫幀運行大量的代碼灸撰,不能有周期性的停頓,否則會造成掉幀拼坎。?
?單線程:??不需要鎖浮毯,不存在數(shù)據(jù)競爭和變量狀態(tài)同步,也沒有線程上下文切換的性能損耗和鎖導(dǎo)致的卡頓演痒。?
垃圾回收?
多生代無鎖垃圾回收器亲轨,專門為UI框架中常見的大量Widgets對象創(chuàng)建和銷毀優(yōu)化。
Flutter中文網(wǎng)