2022年6月28日 星期二

帶你了解最新Google力推的跨平台開發框架新寵兒:Flutter (Flutter FAQ)

 


目前全球已經趨近於60億手機用戶,Android和iOS開發平台已經非常成熟,甚至還有RN(React Native)框架跨平台開發,為什麼Google還要再做一個Flutter?它能夠做什麼,究竟比別人好在哪裡,有什麼優勢,又是怎麼做到的呢?快來看看Flutter常見問題!


👉Flutter是什麼?
Flutter是一款移動應用程式SDK,包含框架、widget和工具,為開發人員提供了一種在Android和iOS上構建和部署移動應用程式的簡單高效能的方式。

👉Flutter能做什麼?
對使用者來說,Flutter讓使用界面變得美麗生動。
對於開發者來說,Flutter降低了開發移動應用程式的門檻,加速開發過程,並降低了同時開發iOS和Android兩套應用程序的成本和復雜性。
對於設計師來說,Flutter有助於實現原始設計願景,高保真度、不妥協。

👉Flutter適合誰?
Flutter適用於希望以更快的方式構建漂亮的移動應用程式的開發人員,或者通過單一投入可以得到更多用戶的方式(一套程式碼同時支援iOS和Android)。

👉學習Flutter需要開發經驗嗎?
學習使用Flutter,不需要有任何開發經驗。我們常常看到沒有程式開發經驗的人學習並使用Flutter開發App;對於熟悉物件導向,或是有相關程式語言開發經驗的人更加容易學習。

👉Flutter可以開發出什麼類型的應用程式?
如果您的App強烈需要表達出品牌個性,Flutter 會非常適合,即便您想要開發的App看起來像是股票平台那樣複雜,也可以使用Flutter 來開發。Flutter提供的豐富組件可以支持大多數硬體(包括攝影機、GPS、網路)以及服務(例如金融支付、雲端儲存、驗證)。

👉誰創造了Flutter?
Flutter是一個開源項目,來自Google和論壇共同開創而成。

👉有哪一些知名公司使用Flutter?
其中包含Google pay,阿里巴巴、eBay、BMW、騰訊等等。

👉Flutter有什麼獨到之處?
Flutter與其他跨平台移動應用程式開發有點不一樣,因為Flutter既不使用WebView,也不使用原生系統的元件;相反,Flutter使用自己的高效能渲染引擎來繪製widget。
另外,Flutter的不同是因為它核心只有一層輕量的C/C++程式碼。Flutter在Dart程式語言中可實現大部分系統(組合、手勢、動畫、框架、widget等), 開發人員可以輕鬆地進行讀取、更改、替換或移除。這些特性為開發者提供更多的系統控制權限。

👉Flutter SDK包含什麼東西?

  • 高度優化的2D 渲染引擎,更具備出色的文字支持功能
  • 現代化互動風格框架
  • 豐富的widgets(包含Material Design及iOS 風格)
  • 用於單元和整合測試的API
  • 用於連接系統和第三方SDK 及API
  • 無界面(headless) 測試運行器,可在Windows、Linux 和Mac上測試
  • 可使用Dart DevTools測試、調試和分析所開發的App
  • 使用命令列,用於開發、創造、測試所開發的App


👉Flutter是否可以與任何編輯器或IDE配合使用?
可以通過插件的方式使用 Android Studio、IntelliJ IDEA和VS Code 開發Flutter App;您也可以在命令列中使用 flutter 命令,並配合Dart程式語言的編輯器進行開發。

👉Flutter是否有自己的框架?
是的。Flutter有自己的開發框架。Flutter 的框架旨在實現分層、可定制(以及靈活的開發選項)。開發者可以選擇僅使用框架的一部分,或是使用不同的框架。


👉Flutter是否有自己的widget?
是! Flutter配有一套高品質Material Design和Cupertino(iOS風格)的widget,同時包括佈局和主題。當然,這些widget只是一個起點。Flutter旨在使您可以輕鬆創建自己的widget,或者自定義現有的widget。

👉Flutter是否帶有測試框架?
是的,Flutter提供了編寫單元測試和集成測試的API。

👉Flutter使用什麼技術?
Flutter使用C、C ++、Dart和Skia(2D渲染引擎)開發

👉我可以使用哪些操作系統來開發Flutter應用程式?

Flutter支援LinuxmacOSChromeOSWindows 進行開發。

👉Flutter是用什麼程式語言?

Dart程式語言,一種針對客戶端應用程式優化的快速發展程式語言。底層圖形框架和Dart虛擬機是用C/C++執行。

👉為什麼Flutter選擇使用 Dart?

在最初的開發階段,Flutter團隊研究了很多語言,並考慮框架開發者、開發人員和最終用戶的需求。我們發現許多語言都滿足部分要求,但Dart滿足了我們所有的要求和標準。

Dart程式語言在下列四個考量點得到很高的評價:

1.開發人員生產力

Flutter的主張之一是節省開發人員的投入資源,Dart讓開發人員用同一套程式碼就可以在iOSAndroid上執行,節省開發時間使Flutter更具吸引力,這對我們的框架團隊和我們的開發人員都非常重要。

2.物件導向

雖然我們可以使用非物件導向的語言,但這意味著需要投入更多不必要的資源浪費去解決幾個難題。此外,絕大多數開發人員都有物件導向開發的經驗,這使得學習如何使用 Flutter 進行開發變得更加容易。

 3.可預測的高效能

我們希望開發人員藉由Flutter可以開發出高質感並且很順暢的用戶體驗App。為了實現這一點,我們需要能夠在每個動態幀(animation frame)中運行大量的程式碼,這意味著我們需要一種能提供高效能又能提供可預測效能的程式語言,而且不會出現變慢或是卡頓的現象。

4.快速分配

Flutter框架使用函數式流程,並依賴於底層內存分配器,有效地處理小型、短暫的分配。

👉Flutter App效能究竟如何?

效能非常優秀,Flutter是為60fps而設計,Flutter執行的是編譯後的程式碼,這意味著Flutter能快速反應、啟動。

👉開發Flutter 時的操作週期有多長?修改程式碼和看到界面內容更新之間會隔多久?

Flutter有Hot reload功能,在少於一秒的時間就可以更新程式碼。Hot reload功能具有保持當下狀態的功能(stateful),這樣即使您修改的界面在很深的位置,Hot reload後您也能直接看到修改後的界面,而無需從應用首頁開始重新操作。

👉已經存在的原生App可以使用Flutter嗎?

可以,你可以嵌入Flutter檢視到你已經存在的Android和iOS App。

👉能訪問跨平台的服務和API嗎,比如感測器和本地儲存?

可以,Flutter開發者可以立刻訪問一些平台特性的服務和API。

👉widget能夠繼承和自定義嗎?

當然可以。Flutter widget 系統的設計思路就是讓開發者可以輕鬆定義。
Flutter 沒有讓每個widget 都提供大量參數,而是採用了組合的方式。較大的widget 是用較小的widget 組合構建出來的,您可以重複使用它們,並以新穎的方式對其加以組合,從而生成自定義的widget。在框架中,我們將復雜的widget 分解為實現視覺、互動和特效的各部分。您可以按照自己喜歡的方式重新組合這些widget,製作出自定義widget 來完整傳達出您的設計意圖。


👉能與手機平台預設程式語言互動嗎?

可以,Flutter 支援Android 上的Java 或者Kotlin 代碼,或者iOS 上的ObjectiveC 或Swift 代碼。


👉蘋果公司會拒絕Flutter App嗎?

目前是允許的,雖然蘋果公司的政策每年都會變化,但我們會盡全力保證Flutter App能釋出到蘋果公司的App Store。



如果你對Flutter充滿好奇而且有所懷疑,看完這篇文章你應該對Flutter爆紅,Flutter的成熟度、穩定度,還有為什麼使用Dart程式語言等等,了解不少!

🔰🔰Flutter推薦課程

0 意見:

張貼留言