移动端框架选型
新項目要求重新選擇一個移動端框架,查了些資料做分析。
開發模式
當前app主流開發模式有
Native? App(原生)
Web App? (網頁)
Hybrid App(混合)
這個圖說的還是很清楚的
?
總結一下:
混合開發靈活性好,兼容性強,功能更完備,所以當前項目考慮使用 混合開發模式。
?
Hybrid App混合開發
關于混合開發,下面幾篇文章說的還是比較清楚的。
混合應用開發定義和常見問題:
https://blog.csdn.net/bihansheng2010/article/details/100886979
APP混合模式開發方案:
https://www.jianshu.com/p/aeac270cb7d1
目前主流的幾種開發App方式介紹?:
https://www.jianshu.com/p/a7a77eb16a2a
?
當前主流框架:(分析來源:APP混合模式開發方案(2018年))
?PhoneGap(cordova)?(當前比較主流的H5框架)
AppCan(簡單,付費,相對較少)
APICloud?(官方號稱7天做出一個App,能實現功能,但是實際上組件比較少)
React Native(之前非常火,但是學習成本高,ios和android代碼并非通用)
AppMobi(聽說很厲害,但是國外項目,文檔少)
Flutter?(跨平臺ui框架,新語言dart,不支持熱更新)
?
對比分析
經過討論,我們選擇其中的 Cordova、React Native、Flutter 作為備選
對比分析:https://www.jianshu.com/p/900bf9cbd005
Flutter和RN對比:https://www.jianshu.com/p/51c4f7f6e446
?總結
| 框架名稱 | 核心邏輯 | 優勢 | 劣勢 |
| Cordova | Cordova通過對HTML、CSS、JS封裝為原生APP | 1、iOS和Android基本上可以共用代碼,一次編碼,到處運行 | 1、占用內存高一些,性能體驗上,和原生存在差距 |
| React Native | JavaScript運行業務代碼,JS Bridge調用平臺組件,原生控件進行渲染 | 1、雖然不能做到一次編碼到處運行,但是基本上即使是兩套代碼, 也是相同的jsx語法, 使用js進行開發。 | 1、對開發人員要求較高,當官方封裝的 控件、API無法滿足需求時就必然需要懂一些native的東西去擴展,擴展性仍然遠遠不如web,也遠遠不如直接寫Native Code。 |
| Flutter ? | 自己實現了一套UI框架, 直接在系統底層渲染系統上層UI | 1、高生產效率。一套代碼可以開發出Android和iOS應用; | Flutter采用Dart語言開發,屬于小眾語言,需要一切都要重新 學習。 |
?
選擇誰?
選框架需要先明確需求。比如:
1、支持業務好,可靠穩定
2、靈活,可擴展,快速響應,方便更新
3、用戶體驗好。
側重點不同,對框架的取舍也應該不同。
老板說:我都要!
哭
?
我們項目最終選擇了Cordova。
原因:
1、cordova 支持熱更新,更靈活,便于及時響應需求,快速修復bug。(這是主要原因)
2、項目成員都有H5開發經驗,并且有人用過Cordova的,沒有但是沒有人用過React Native 和 Flutter。(cordova 上手快,學習成本低)
3、該項目是內部項目,對體驗要求相對低。(當前手機性能和網絡性能都比較好了,性能差距也沒那么明顯)
?
ps:
網上有這樣一種說法:
公司主營項目最好用native實現核心功能,配合H5做擴展。保證穩定和用戶體驗。
內部項目用新技術,之前的RN,現在Flutter。快速響應需求,積累新技術。
我覺得還是一定有道理的。雖然最終沒有選這flutter,但是查資料過程中發現flutter的優勢還是比較多的。如果能實現在線熱更新,就完美了(不做熱更新是為了防止蘋果封殺?)
總結
- 上一篇: 基于数字孪生概念,开启精细化城市管理模式
- 下一篇: 奥比中光Orbbec Astra pro