iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Mobile Development

Flutter基礎入門系列 第 2

【Day 02】Flutter是什麼?

  • 分享至 

  • xImage
  •  

到了第二天,今天就來簡單介紹什麼是Flutter吧!


Flutter 介紹

首先來看個100秒快速介紹吧!
Yes

Flutter是由Google所開發的開源框架(open source framework),只需要一份程式碼基底,便能一次性完成多種不同平台中應用程式的使用者界面UI。光是這一點就足夠吸引人了不是嗎?同一個應用程式,不再需要在Swift, Kotlin等等的不同程式語言重複寫下相似內容,便可以讓iOS, Android, Windows等平台的使用者使用。這大大簡化了開發跨平台程式的工作,減少了開發過程中的人力及資源,也能使使用者在不同平台所獲得的體驗相對較一致。

有一點初次接觸Flutter的人可能會產生的小誤會,是Flutter並不是一個程式語言,而是一個框架(Framework),有許多已經建立好的函式庫(library)可供開發人員直接使用。它使用的則是同樣由Google開發的程式語言:Dart,一個針對UI製作所優化的一個語言。

Flutter vs. React Native

同樣都是跨平台的應用程式開發,許多人應該都會與筆者有著相同的問題,這兩個差在哪裡呢?

  1. 語言
    Flutter使用Dart,React Native使用JavaScript
  2. 速度表現
    Flutter的一大特色是它的程式碼將會被編譯為機器碼,同時也使用了Google所開發的圖形資料庫Skia以呈現最流暢的畫面。React Native在另一方面則是使用JavaScript將程式碼包裝成iOS, Andriod等各平台可理解的語言。由上可知,Flutter在速度表現上是勝過React Native的。
  3. 社群資源
    開發軟體時,許多時候都會使用到其他人做好的資料庫,或是遇到問題時會想在社群上找答案,因此社群是否活躍,也會影響到開發過程的便利性。或許是React Native出來的較早,或許是因為較多人熟悉JavaScript,React Native的社群較Flutter來的大,較多現成的資料庫可使用,Stack Overflow上的問答數也較高。不過對於想使用Google提供的資料庫,可以肯定一定有提供給Flutter的資源,畢竟是自家公司所研發的嘛XD

今天的簡單介紹就到這裡,感謝讀到這裡的讀者,明天我們將來學習如何下載Flutter,並做個簡單的執行測試。我們明天見!

資料來源:

  1. aws - What is Flutter?
  2. Flutter
  3. 【Flutter基礎概念與實作】 Day1–Flutter是什麼,能吃嗎?
  4. React Native

上一篇
【Day 01】鐵人賽的開始
下一篇
【Day 03】下載與測試
系列文
Flutter基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
arguskao
iT邦新手 3 級 ‧ 2024-09-28 09:08:13

難道Flutter沒有缺點?

nny02426 iT邦新手 5 級 ‧ 2024-09-29 01:51:45 檢舉

任何東西都會有缺點呀!不過Flutter主要的缺點不是在它本身的表現(速度、記憶體等),而是與社群和其他應用上不如React Native上表現的那麼好。

這個討論串裡的內容可以參考看看:
reddit - Why react native and not flutter?
不過這是在RN版上的文,所以留言也多偏好使用RN而非Flutter。
其中看起來主要讓人比較偏好使用RN是因為Flutter在以下有些不足:

  1. Flutter使用Dart,是個使用上較沒那麼廣泛的程式語言(幾乎都是flutter的開發者在使用),而RN則使用TypeScript(JavaScript的延伸,增加靜態類別),且TypeScript是近期熱門的程式語言,隨便哪個熱門度排行榜都能看到它的身影。對於那些已經習慣寫TypeScript/JavaScript的有很高機率會因此選擇RN。
  2. RN在原生態用戶介面(native-lokking UI)上表現的比較好,使用者在不同平台能夠有比較一致的使用體驗,Flutter則需要在另外一一調整才能夠做到。
  3. 如文中提到RN的社群較Flutter龐大,且plugin/package更多更完整,有程式上的問題或是需要下載的package社群越大越能找到想要的資料。這個也是許多人決定性的因素。
  4. 最後就是現實層面,用RN的公司比較多,學會RN也比較好找工作(至少現在是如此)。

討論串裡也有一些像是不喜歡google、覺得flutter寫出來的程式很醜這種感覺像個人因素的影響,如果要說是缺點放寬一點來講也可以算是吧(?

arguskao iT邦新手 3 級 ‧ 2024-09-29 09:00:48 檢舉

我現在還卡在Flutter的環境設定出不來,真慘

nny02426 iT邦新手 5 級 ‧ 2024-09-29 20:26:54 檢舉

有問題都歡迎留言~
我也能夠在找答案的過程學到不少,所以不必客氣(≧∀≦)ゞ

我要留言

立即登入留言