引領創新!行動開發的革命性工具 — Flutter
淺談 Flutter 跨平台 APP 開發框架的優勢與限制
Dec 10,2020

行動應用程式在現今,被視為最有力的商業工具之一。雲端互動 (Cloud Interactive) 的技術總監 Sean 在這篇文章中,將分享他對軟體開發產業的熱情,並讓我們透過他的視界,了解最新的行動應用程式開發技術趨勢。

為什麼認為 Flutter 將是行動應用程式的未來趨勢?

一般行動應用程式開發,為了使其能在 iOS 及 Android 兩個平台同時運行,經常採用雙平台原生開發技術進行開發,然而原生開發技術在人力安排上會比一般 RWD 響應式網站開發多出約兩倍的人力。因此,在某些專案情境中,開發者會選擇採用混合開發架構 (Hybrid App) ,透過混合原生 (Native) 開發及網頁 (Web) 開發技術提高效率並節省成本,以協助客戶在有限的時間內完成開發項目。

然而,混合開發技術雖能兼顧開發初期的成本,卻可能犧牲了應用程式的效能及使用者的體驗。而其複雜的技術框架,也提高了後續的維運成本。有鑒於原生開發成本過高,混合開發技術也並非完美的解決方案,近年來不少新的開發技術百花齊放,嘗試能夠平衡原生及網路開發混搭的優點。而其中 Flutter 被行動應用開發社群視為最常被採用的開發技術。

什麼是 Flutter?

為了解決混合開發及原生開發技術所衍生的問題,市面上有許多開放原始碼行動應用軟體開發套件,如Xamarin, React Native, 及Titanium。而Google 開發的 Flutter,是其中最常被使用的工具之一。

Flutter 是由 Google 所開發的行動應用軟體開發套件,是一個能為 Android、iOS、 Windows、Mac、Linux、Google Fuchsia 進行跨平台開發的開發框架,用於協助開發者處理應用程式在畫面及互動上的開發。除了行動應用程式開發語言以外,Flutter同時也支援網路的開發語言:HTML, CSS 及JavaScript.

“Flutter 獨特之處:Dart 語言”

Dart 是Google 開發的程式語言, 此程式語言可同時使用於 iOS 與 Android 平台系統,避免了原生開發編譯過程所衍生的問題,同時Flutter 也正持續擴充其支援網頁以及桌面應用程式的功能。Dart 屬於物件導向語言,語法結合了多種目前常用的程式語言,包含 Javascript、Java、C# 的特性。因此,對於擁有 C++, C#, 或 Java 等相關經驗的工程師而言,Dart 極為容易上手。

“Flutter 性能優化:多元樣式元件(Widget)

Flutter 擁有豐富且方便的元件 (widget),甚至連框架模組都是元件之一。豐富多元的元件庫讓開發過程更便利,因而提高其使用性能,使Flutter成為目前最熱門的跨平臺開發框架。在眾多的開發框架中,Flutter持續引領著創新的風潮。

Flutter 與眾不同之處

比起其他使用HTML 標籤 的開發套件,Flutter 在設計與開發跨平台應用程式上擁有很多顯著的優點:

1. 高效能且高流暢度

Flutter 對比其他混合程式開發(Hybrid)方案,效能的強大是有目共睹的。Google 直接在兩個平臺上設計了各自的介面設計套件(UIKit) ,對接到平臺底層。這個設計減少了UI層在不同程式間轉換,使得UI效能可以更接近原生。這個優勢在滑動和播放動畫時尤為明顯。

2. 優秀的動畫設計

Flutter 中的動畫功能強大且易於使用,開發者只需將一個元件屬性通過補間(Tween)關聯到動畫物件上,也就是將動畫的第一個畫面和最後一畫面設定好,Flutter 就會確保在每一幀渲染正確的元件,從而形成連貫的動畫。

3. 穩定的跨平臺使用者介面 (UI)

如前述,Google 提供兩種平台各自的介面設計套件 (UIKit),其使用獨立的轉譯引擎 (render engine) ,不需依賴過多的外部轉譯編碼。因此,能避免 iOS 或 Android 系統更新時畫面呈現不正常的情況,獲得穩定的使用者介面 (UI) 表達效果。

4. Dart 的優秀語言特性

Flutter 所使用的 Dart 是一個靜態語言,程序執行效率高。除此之外,相對於網頁 (Web) 開發技術,Dart 作為編譯型語言,大多數的編程錯誤都能在編譯過程中找到,因而大幅減少了執行時期前的錯誤。

Flutter 使用上的限制

在成本限制及開發時間緊湊的情況下,Flutter 固然是進行跨平台開發應用程式的好選擇。然而,它仍然有一些技術開發上限制是不可忽視的。

Flutter 能夠和原生型應用程式介面(Native platform API) 互動,但並不能完全取代原生技術。在某些特定的情況如授權使用相機、照片圖庫、藍牙等,仍需透過原生語言進行處理。因此,開發人員在使用 Flutter 進行開發時,本身仍須具備對原生技術的了解,透過混搭的方式解決 Flutter 無法處理的問題。

專案該使用 Flutter 或以混合技術進行開發?這部分的取捨,必須從專案開始前的功能設定期間,依據專案大小及目標將使用的開發技術一同考量在內。因此,千萬不要將 Flutter 視為跨平台行動應用程式開發的最佳解決方案。

想要隨時掌握前瞻科技且擁有創新思維的合作團隊嗎?現在就聯絡我們了解最新的開發技術能如何協助您的企業更上一層樓!
 

關於雲端互動 Cloud Interactive

雲端互動(Cloud Interactive)是一間以「UX/UI設計」、「軟體開發」、「人工智慧應用」為主的全方位顧問公司。

官網: https://www.cloud-interactive.com/
Facebook: https://www.facebook.com/CloudInteractiveInc/
LinkedIn:https://www.linkedin.com/company/cloudinteractiveinc/

員工分享文章
軟體開發
行動應用程式開發
更多
相關文章