傳統的原生APP開發模式,有IOS和AOS兩大系統,須要各自語言開發各自APP。web
目前也有不少跨平臺應用使用React Native。它也是跟Flutter對比的主要對象。瀏覽器
優勢:其優勢是目前的生態相對比較成熟架構
缺點:開發和發佈成本高app
常被人提起的H5技術,其實就是網頁+JavaScript。好比目前的一些流行的JS框架Vue,React,AngularJS等都是爲了構建網頁。針對移動端構建出來的網頁能夠實如今跨平臺的功能,可是其缺點也很明顯:框架
優勢 :開發和發佈成本最低性能
缺點 :性能和體驗不能講是最差的,但也受到瀏覽器處理能力的限制,屢次下載一樣會佔用用戶必定的流量學習
面在webview中顯示,這種模式下,Android、iOS的API通常有一致性,Hybrid App全部有跨平臺效果。優化
優勢: 開發和發佈都比較方便,效率介於Native App、Web App之間網站
缺點: 學習範圍較廣,須要原生配合spa
舉個栗子:網易雲音樂,我愛我家App
應用技術: PhoneGap,AppCan,Wex5
React Native(RN)發佈於2015年,也是使用JavaScript語言進行跨平臺APP的開發。與H5開發不一樣的是,它使用JS橋接技術在運行時編譯成各個平臺的Native代碼,其使用的技術Facebook的Flux技術。
其特色是:
可是它也並非完美的:
阿里巴巴開發團隊在RN的成功案例上,從新設計出的一套開發模式,站在了巨人肩膀上並有淘寶團隊項目作養料,廣受關注,
2016年4月正式開源,並在v2.0版本官方支持Vue.js,與RN平起平坐。
優勢: 開發效率和體驗上跟RN不相上下,而且跨平臺性更強
缺點: 剛剛起步,社區沒有RN活躍
Flutter介紹
Flutter是Google推出的開源移動應用開發框架。開發者能夠經過開發一套代碼同時運行在iOS和Android平臺。
它使用Dart語言進行開發,而且最終編譯成各個平臺的Native代碼,這樣既保證了開發效率,也保證了各個平臺的運行效率。其至關於從頭至尾重寫了一套UI框架,不依賴具體平臺的組件。其全部的組件都是」Widget」。渲染引擎則依靠高效渲染庫Skia實現。
Flutter也看到了目前的跨平臺解決方案並不完美,因此它借鑑了React Native的一些思想,作出了很大的優化。它將代碼編譯成原生代碼,而且直接在各個平臺中使用其高效渲染引擎Skia進行渲染,沒有橋接,不調用平臺相關控件。
這種設計思想完美解決了不一樣平臺的性能問題。
歸功於其設計思想,咱們能夠真正實現一套代碼,運行不一樣的平臺。在其推出以後,關注的開發者數量和相關的教程的增加速度遠超當時的React Native。
其特色包括:
目前它存在的一些問題是:
運用於跨平臺開發的語言還有不少,如PWA,Uni App等。我的看來,Flutter最具備發展潛力的其中一個,雖然Flutter目前並非很是流行,可是筆者相信它是跨平臺解決方案的將來。若是谷歌的新系統Fuchsia OS能像當今的Android這樣如日中天,甚至替代掉Android的話,Flutter的發展也會迎來它的頂峯。
若是你想作一個企業名片之類的東西,讓更多人知道自家產品,那也許一個網站就夠了;但若是產品核心功能只有native app才能提供,或者你想要確保用戶有更好的體驗、更強的黏性,那可能就須要作native app。