跨平台技术栈
跨平臺技術??梢宰龅蕉嗥脚_支持,但是原理完全不同。
跨平臺技術棧的框架,都是使用自己的語法編寫頁面,不使用 Web 技術,編譯的時候再將其轉為原生控件,或者使用自己的底層控件,生成原生 App。這樣就完全解決了 Web 頁面性能不佳的問題。下面介紹三個這樣的框架。
React Native
(1)原理
2013年, Facebook 公司發布了 React 框架。這個框架是為網頁開發設計的,核心思想是在網頁之上,建立一個 UI 的抽象層,所有數據操作都在這個抽象層完成(即在內存里面完成),然后再渲染成網頁的 DOM 結構,這樣就提升了性能。
很快,工程師們就意識到了,UI 抽象層本質上是一種數據結構,與底層設備無關,不僅可以渲染成網頁,也可以渲染成手機的原生頁面。這樣的話,只要寫一次 React 頁面,就能分別編譯成 iOS 和安卓的原生 App。這就是 React Native 項目的由來。
注意,React Native 雖然也使用 JavaScript 語言,并且寫法看上去像 Web 頁面,但其實所有控件都是自己定義的,編譯時再一一翻譯為對應的原生控件。舉例來說,React Native 的文本渲染控件是,翻譯成 iOS 控件為UIView,翻譯成安卓控件為TextView。這種做即保證了性能,又做到了跨平臺支持,所以一誕生就引起開發者的關注,成了熱門技術。
Xamarin
Xamarin 是微軟公司的跨平臺 App 開發框架,原理跟 React Native 很相似,只不過它的語言是 C#。
Flutter
Flutter 是谷歌公司最新的跨平臺開發框架。它為了解決 React Native 的平臺差異問題,采用了一個完全不同的方案。
它自己實現了一套控件。打包的時候,會把這套控件打包進每一個 App,因此不存在調用原生控件的問題。不管什么平臺,都調用內嵌的自己那套控件,就能做到 iOS 和安卓體驗完全一致。
Flutter 歷史還不長,應用還不廣泛,API 也沒穩定下來。但是很值得關注。
總結
- 上一篇: 《git常用命令》
- 下一篇: 关于WebView 控件,你了解多少?