移動應用開發:Flutter 是什么?


前言

“鏡子鏡子 告訴我,世界上最好的語言是什么”

“當然是... “

開始正文吧。

該篇博文主要記錄了Flutter、H5、React Native 及原生開發的選擇對比,以及對 Flutter 的介紹(這里主要是因為之后的移動端開發選擇了 Flutter)

Flutter 介紹

Flutter 是 Google 推出的一個移動應用開發框架,支持跨平台,即開發者可以通過 Dart 語言實現一套代碼同時在 Android 和 IOS 平台上運行。Flutter 除了跨平台這個特性,還在於其提供了流暢的、高保真的 UI 體驗,Flutter 內置的組件,豐富的 API ,響應式框架等都給開發帶來了便利。

移動應用開發:選擇對比

原生開發

原生應用指的是某一移動平台特有的應用(例如 IOS 或 Android ),需要使用不同的語言及調用不同的 SDK 進行開發。
其缺點在於開發成本高,不同平台需要維護多套代碼從而增大人力成本;若有新功能更新則要發布新版本,同時用戶需下載新版本進行更新。
使用原生開發的優點是可以訪問平台的全部功能,且速度快、性能高,整體用戶體驗好。

H5 技術

H5 移動端開發主要是網頁+JavaScript,目前比較流行的 JS 框架有 Vue、React、AngularJS 等都是為了構建網頁。這些針對移動端所構建出來的網頁可以實現跨平台,相比於原生開發而言,減少了開發及維護的成本;且用戶無需每次都下載新版本進行更新。但其也存在明顯的缺點:渲染效率低,用戶體驗差;網頁調用設備的硬件 API 較為困難。

React Native

React Native ( 簡稱RN ) 是 Facebook 在2015年開源的一個跨平台移動應用開發框架,是 React 在原生移動應用平台的衍生產物。RN 使用 JavaScript 語言,類似於 HTML 的JSX 以及 CSS 來開發移動應用。與 H5 開發不同的是,它使用 JS 橋接技術在運行時編譯成各個平台的 Native 代碼。其優點在於目前的生態較為成熟,也有很多的跨平台應用使用的 React Native ;支持熱部署,開發過程中可以節約很多時間。

Flutter

前面介紹了這么多移動應用開發技術,終於到 Flutter 了。在前面的 Flutter 介紹中也已了解到 Flutter 是一個跨平台的框架,可以實現一套代碼在不同的平台上運行。

Flutter 在 React Native 的設計思想上又做了很大的優化,它將代碼編譯成原生代碼,並且直接在各個平台中使用其高效渲染引擎 Skia 進行渲染,沒有橋接,不調用平台相關控件。

這種設計思想完美解決了不同平台的性能問題。

Flutter 的特點:

  • 有豐富的視圖組件
  • 支持熱部署,開發時可以像網頁開發一樣實時看到效果

但它也存在一些不足:目前學習的資源比較少;其相關生態也沒有 React Native 那樣豐富。

總結

“鏡子鏡子 告訴我,世界上最好的語言是什么”

“當然是... “

你覺得呢?

文章總結想引用知乎上的一個問題的回答:需要開發app和h5,用Flutter靠譜嗎?

flutter目前web端並不是那么友好,移動端的話目前除了流暢和生態比原生差點,其它都還好,如果小型項目,而且並不是和硬件打交道比較多,只涉及一些圖形交互的業務邏輯的話,建議用uniapp這種類似的H5移動端一站式解決方案。

至於純原生開發,除非一些經常和系統硬件打交道的App(如攝像頭相關的圖像處理,平衡儀相關的游戲或者其他業務需求),一般都很少用原生開發。一來項目管理和人力成本因為兩個團隊的原因會比較大,二來時間上肯定原生開發時間周期更長,三來是沒必要。

總體結論:
根據需求來,簡單的圖形業務App用uniapp這種就夠了,網站、移動端App、小程序一套代碼稍微修改就可以上線了,稍微追求一點效率和流暢性的用flutter構建移動端,vue做H5,極限點就iOS、Android各自用原生,網頁還是用vue。

選擇當下最符合業務需求的、最合適的就是最好的。

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM