1. 程式人生 > 其它 >淺談國內主流的跨端開發框架

淺談國內主流的跨端開發框架

Flutter 是一款由 Google 開發的開源、跨平臺移動端開發框架。Flutter 使用 Dart 作為開發語言,這是一門簡潔、強型別的程式語言。它允許使用同一個程式碼庫構建高效能、漂亮的 iOS 和 Android 應用,Flutter還提供了兩套視覺庫,可以針對不同的平臺有不同的展示效果。此外,通過自定義的 Flutter 引擎可以將其嵌入到其他平臺。一直以來,跨平臺工具採用以下兩種方法之一:
  • 在原生應用程式中嵌入 web view ,像構建網站一樣構建應用程式。
  • 封裝原生平臺裡的控制元件併為它們提供一些跨平臺的引數。

Flutter的特別之處

為了使移動端開發變得更好,Flutter 嘗試了一種不同的方法。它提供了開發人員工作的框架應用程式和能夠託管應用程式的可移植執行時的引擎。該框架依託 Skia 圖形庫而構建,提供了實際渲染時用到的 widgets,而不僅僅是原生應用控制元件的包裝器。就像 web 包裝器選項提供的那樣,該方法可以靈活的以完全自定義的方式構建跨平臺應用程式,同時還會提供流暢的效能體驗。與此同時,Flutter 自帶的豐富的 widget 庫以及一些開源的 widgets 使其成為一個功能豐富的平臺。   目前已經有不少大型專案接入Flutter,阿里的閒魚、頭條的抖音、騰訊的NOW直播,都將Flutter當做應用程式的開發語言。除此之外,還有一些其他中小型公司也在做。

Flutter的整體架構

簡單明瞭的說,Flutter 分為三大部分:由 Dart 語言負責的 Framework 層;Dart 語法執行器;Skia 影象處理引擎。   Flutter 也可以理解為開發SDK或者工具包,其通過Dart作為開發語言,並且提供Material和Cupertino兩套視覺控制元件,檢視或其他和檢視相關的類,都以Widget的形式表現。Flutter有自己的渲染引擎,並不依賴原生平臺的渲染。Flutter還包含一個用C++實現的Engine,渲染也是包含在其中的。

Flutter的跨端優勢

1、如果以後想在 Google 的新系統上跑程式的話,用Flutter來編寫是一定沒錯的。
2、Flutter 用 Dart,學習 Flutter的同時會使我們掌握一門新的語言,買一送一。 3、Flutter 天生支援 iOS 風格的控制元件, 稱為 Cupertino,這樣我們可以一套設計, 一套code跑在兩個系統上。 4、學習Flutter的過程會改變手機端app開發的思維,畢竟只有一個activity,全程跟個遊戲引擎一樣, 60幀每秒繪圖。 5、Hot reload,極大地加速了開發效率。 6、Flutter 提供 method channel 給 Android 和 iOS,其實可以只用 Flutter 來開發UI,其他底層邏輯可以封裝Android 和 iOS 分別的 lib package,然後直接Rx封裝寫回 method channel,也是一種新的開發模式。 7、效能更好, 相容性更好,開發起來更有樂趣,這才是程式設計師的人生,正好 Flutter 都能滿足。

跨平臺方案的比較

NATIVE

原生應用程式在使用新功能時帶來的困擾是最少的。由於應用程式是使用平臺供應商自己(Apple 或 Google)的控制元件構建,為了讓使用者體驗更加符合給定的平臺,因此他們通常遵循這些供應商制定的設計指南。大多數情況下,原生的應用將會比那些跨平臺構建的應用效能要好一些,儘管在很多情況下兩者的差異可以忽略不計,不過具體還要取決於底層跨平臺技術。原生應用的一大優勢是:當需要時,他們可以立即採用 Apple 和 Google 在測試版中開發的新技術而不用等待第三方的整合。構建原生應用的主要缺點是缺乏跨平臺的程式碼複用,如果同時開發 iOS 和 Android 應用,那麼開發成本可能會很高。

REACT NATIVE

React Native 允許原生應用使用 JavaScript 構建。應用中用到的控制元件實際上都是原生平臺裡的控制元件,所以使用者使用起來感覺和原生應用一樣。對於那些 React Native 沒有提供的需要自定義的應用,仍然需要使用原生開發。當需要定製的模組比較多時,某些情況下,在 React Native 中開發不如使用原生開發更合適。

XAMARIN

當談到 Xamarin 時,有兩種不同的方法將會被提及。跨平臺方法:Xamarin.Forms。該方法不同於 React Native,但是從概念上講是相似的,因為它也是抽象原生控制元件。同樣的,在定製方面它也有和 React Native 同樣的缺點。第二種方法:Xamarin-classic。該方法分開使用 Xamarin 的 iOS 和 Android 產品來構建適用於特定平臺的功能,就像直接使用 Apple/Android 原生功能一樣,只不過在 Xamarin 中需要使用 C# 或 F# 。使用 Xamarin 的好處是可以共享非平臺特定的程式碼,例如網路、資料訪問、Web 服務等。

NATIVE+小程式

說起這個可能首先會想到「原生 + HTML5」,至少一些業務功能通過H5的形式實現,可以節省安裝包的體積,也可以實現快速更新。但會發現 HTML5 開發的方式,效能體驗問題較大。比如,HTML5 頁面在使用者手機上經常出現打不開、一直載入中、卡頓,而且H5很多系統許可權獲取不了,也不支援本地快取,需要訪問通訊錄、呼叫硬體、訪問藍芽啥的這些 H5 都是無法支援的,導致還是有大量的功能不得不放到客戶端上實現。由於國內的特殊的原因,在微信、支付寶的帶動下小程式成為移動端的時代攪局者,小程式具有強大的 Web 渲染引擎、提供豐富元件、支援本地快取、避免 DOM 洩露等等這些都是,而且小程式技術也有利於幫助App實現「鬆散耦合」,比如當App的一些業務功能用小程式的形式替代,那麼這個小程式可由團隊或者個人獨立開發、獨立部署、獨立管理生命週期,隨時上下架而不影響APP主體,實現APP複雜業務動態化,多維釋出。   目前也有國內廠商推出了成熟的解決方案,之前有了解到 FinClip ,這個框架對標微信小程式的功能,相同的程式碼,既能在微信端跑,也能在自己的 App 裡跑,效果是一樣的,相當於把已經上架的微信小程式能夠直接搬到自己的 App 能執行。開發一次就能夠在包括 Linux、Windows、MacOS、麒麟等作業系統執行。這意味著,PC 端、車載裝置、智慧電視都能使用小程式了,實現了“一次開發,到處執行”。   FinClip憑藉外掛化、嵌入式、輕量而靈活的產品特點及行業領先優勢已經賦能銀行、證券、政企、電商、航空、園區、零售等多個行業,在無界開放銀行、數字券商、監管與合規科技、電子政務、信創等方面形成較有特色的創新應用案例。現在登陸官網點選諮詢即可獲得行業解決方案!   除私有化版本外,FinClip 現已推出SAAS版本,無需部署即可使用全部功能,每月有10000次免費釋出呼叫,平臺自帶小程式流量統計,可根據實際用量靈活拓展。幫助企業以最低的價格實現商業化執行。趕緊登入 FinClip 官網註冊使用吧!手動指引:https://www.finclip.com