什麼是 Flutter?
Flutter 是由 Google 開發和支援的開放原始碼架構。前端和完整堆疊開發人員使用 Flutter 為具有單一程式碼基底的多個平台建置應用程式的使用者界面 (UI)。
Flutter 在 2018 年推出時,主要支援行動應用程式開發。Flutter 現可支援六個平台上的應用程式開發:iOS、Android、Web、Windows、MacOS 和 Linux。
Flutter 如何幫助應用程式開發?
Flutter 簡化了為其支援的六個平台上的應用程式建立一致、有吸引力的 UI 的過程。
因為 Flutter 是一個跨平台的開發架構,所以我們先將其與原生開發進行比較。然後,我們可重點介紹 Flutter 獨有的功能。
原生應用程式開發與跨平台應用程式開發比較
為一個特定平台 (例如 iOS) 編寫應用程式稱為原生應用程式開發。相比之下,跨平台應用程式開發則是使用單一程式碼庫為多個平台建置應用程式。
原生應用程式開發
由於開發人員在原生應用程式開發中為特定平台編寫程式碼,因此他們可以完全存取原生裝置功能。與跨平台應用程式開發相比,這通常會帶來更高的效能和速度。
另一方面,如果你想在多個平台上啟動應用程式,原生應用程式開發需要更多的程式碼和更多的開發人員。除了這些費用之外,原生應用程式開發還可能導致難以在不同平台上同時啟動應用程式並獲得一致的使用者體驗。而此時,Flutter 這樣的跨平台應用程式開發架構就能派上用場了。
跨平台應用程式開發
跨平台應用程式開發允許開發人員使用一種程式設計語言和一種程式碼庫來建置適用於多個平台的應用程式。如果您要為多個平台發佈應用程式,跨平台應用程式開發比原生應用程式開發成本更低且耗時更少。
此過程還允許開發人員為跨平台的使用者建立更一致的體驗。
與原生應用程式開發相比,這種方法可能存在缺點,包括對原生裝置功能的存取受限。但是,Flutter 擁有的一些特性可使跨平台應用程式開發更加順暢及實現高效能。
Flutter 的優勢
以下是 Flutter 作為跨平台開發架構脫穎而出的一些方面:
- 近似原生的效能。Flutter 使用程式設計語言 Dart 並編譯成機器碼。主機裝置理解此程式碼,從而確保實現快速有效的效能。
- 快速、一致且可自訂的轉譯。Flutter 不依賴於特定平台的轉譯工具,而是使用 Google 的開放原始碼 Skia 圖形程式庫來轉譯 UI。這就為使用者提供了一致的視覺效果,而無論他們使用什麼平台來存取應用程式。
- 方便開發人員使用的工具。 Google 在建置 Flutter 時強調易用性。使用熱重新載入等工具,開發人員可以在不丟失狀態的情況下預覽程式碼變更。小工具檢查器等其他工具可以輕鬆視覺化和解決 UI 佈局問題。
Flutter 使用了什麼程式設計語言?
Flutter 使用同樣由 Google 開發的開放原始碼程式設計語言 Dart。Dart 針對建置 UI 進行了最佳化,並且在 Flutter 中使用了 Dart 的許多優勢。
例如,Flutter 中使用的 Dart 的一個特性是可靠的 null 安全性。憑藉 Dart 可靠的 null 安全性,即可更加輕鬆地偵測稱為 null 錯誤的常見錯誤。此功能減少了開發人員花在程式碼維護上的時間,讓他們有更多時間專注於建置他們的應用程式。
Flutter 中的小工具是什麼?
在 Flutter 中,開發人員使用小工具建置 UI 佈局。這意味著使用者在螢幕上看到的所有內容 (從視窗和面板到按鈕和文字) 都是由小工具組成的。
Flutter 小工具旨在讓開發人員可以輕鬆地對其進行自訂。Flutter 透過組合方法實現了這一點。這意味著大多數小工具由較小的小工具組成,並且最基本的小工具具有特定用途。這樣一來,開發人員可組合或編輯小工具,以建立新的小工具。
Flutter 使用其自己的圖形引擎轉譯小工具,而不是依賴平台的內建小工具。這樣一來,使用者將在跨平台的 Flutter 應用程式中體驗到類似的外觀和感覺。這種方法還為開發人員提供了靈活性,因為某些 Flutter 小工具可以執行平台特定的小工具無法執行的功能。
Flutter 還讓您可更加輕鬆地使用社群開發的小工具。Flutter 的架構支援擁有多個小工具程式庫,而 Flutter 鼓勵社群建置和維護新的小工具程式庫。
Flutter 小工具的類型
Flutter 下載是便已自帶一個廣泛的小工具型錄。該型錄有 14 個類別,包括樣式、Cupertino (iOS 風格的小工具) 和材料元件 (遵循 Google 的材料設計指南的小工具)。
Flutter 還附帶佈局和主題,可幫助開發人員立即建置。
Flutter 是如何獲得支援的?
Flutter 由 Google 和 Reddit、Discord、Slack、Stack Overflow 與 Gitter 上的活躍開放原始碼社群提供支援。自 2018 年發佈以來,Google 一直在更新 Flutter,包括 2022 年的 Flutter 3 更新,並將穩定支援擴展到 macOS 和 Linux。
為了讓 Flutter 更容易學習,Google 在 Flutter 的網站上編寫了大量的文件和教學課程。為了與 Flutter 使用者互動,Google 還舉辦全球活動、推廣社群專案並贊助開發人員挑戰賽。即將舉行的活動可以在 Flutter 的網站上找到。
Flutter 的社群建立了數以千計的第三方套件和卓越的工具來簡化開發人員體驗。這些程式庫可在 pub.dev 上獲得。
AWS 如何支援 Flutter?
Flutter 可幫助您建置使用者看到的應用程式部分。但是應用程式開發需要許多使用者看不到的功能,例如身分驗證、檔案儲存和分析。這就是 AWS Amplify 和 Amplify Flutter 的作用所在。
AWS Amplify 是一個架構,可用於建立安全、可擴展的行動和 Web 應用程式。AWS Amplify 支援 iOS、Android、Web、React Native 和 Flutter,讓您可以快速輕鬆地建置採用 AWS 技術的應用程式。
Amplify Flutter 是一套工具與程式庫,可讓您為 Flutter 應用程式佈建、建置和部署後端。您可以使用 Amplify Flutter 將您的 Flutter 應用程式連接到 AWS 並解決常見的後端需求。
使用 Amplify Flutter 作為您的後端解決方案
Amplify Flutter 可讓您使用 AWS 為您的 Flutter 應用程式新增常見的後端功能:
- 分析。 Amplify Flutter 可讓您在 Amazon Pinpoint 中收集使用者的追蹤資料。您可以輕鬆記錄事件並根據需要自訂指標和屬性。
- API。 Amplify Flutter 具有強大的 API 功能。GraphQL API 可幫助您在後端擷取資料,並且它由 AWS AppSync 提供支援。REST API 和處理常式使用 Amazon API Gateway 和 AWS Lambda 來幫助您向後端發出請求。
- 身分驗證。 Amplify Flutter 讓您可以對使用者進行身分驗證並實作註冊和登入表單以及多重要素驗證。在後台,它可為其他 Amplify 類別提供必要授權。Amplify Flutter 從您開始使用它時就已支援 Cognito 使用者集區和身分集區。
- 資料存放區。Amplify Flutter 讓您可以使用分散式共享資料,而無需為離線和線上案例編寫額外的程式碼。這樣一來,處理分散式、跨使用者資料就像處理本機資料一樣簡單。Amplify DataStore 會自動對資料進行版本控制,並使用 AppSync 在雲端中實作衝突偵測和解決方案。
- 儲存。 Amplify Flutter 讓您能夠上傳、下載和刪除儲存中的物件。Amplify Flutter 還為 Amazon Simple Storage Service (Amazon S3) 提供內建支援。
進一步了解 Amplify Flutter。