iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
Modern Web

Flutter web 的奇妙冒險系列 第 1

Day 1 | 前言與大綱

哈囉我是Todd,是一個比較喜歡寫前端的全端工程師,工作上大部分是使用 React 及 Node.js 來進行開發。

剛好今年參與了一個 Flutter App產品的開發所以也開始學習 Flutter ,而年初 Flutter 2.0 release 時也同時宣布的 Flutter web 正式進入 stable channel ,讓我有信心這個功能應該會被長期維護下去。也覺得既然都開始學習 Flutter 了就來玩玩看這個新功能好了。順便以 web 的形式來複習一下今年在Flutter中所學到的東西。

在正式開始之前我想先說明一下本系列文大概的規劃:
基本上我是會以前端工程師的角度來切入,所以在文章中可能會用 js 或者網頁開發上的一些概念輔以解說,但這不代表你必須有網頁開發經驗才能讀懂,只是有的話會比較容易吸收。
也因此不太建議完全沒有寫過任何一種程式語言的人來閱讀,而也因為這是以「Flutter web」為主軸的題目,所以並不會有「iOS」、「Android」相關的內容。

當然也因為我並非專職的 Flutter developer 所以可能在深度上也不無法像其他大神一樣深入,整個系列文還是比較像是學習筆記的感覺。

Flutter 是什麼?

簡單來說就是主要是由 google 團隊維護的一個「跨平台應用程式開發框架」,而這裡的「跨平台應用程式」就包含了基本常見的「iOS」、「Android」的原生應用程式但Flutter也包含了「MacOS」、「Ubuntu」、「Windows」等各類平台的應用程式,當然也包含了本次的主角:在瀏覽器上運行的「Flutter web」。

Flutter web 有料嗎?

這裡就只先探討「Flutter web」,畢竟我也沒有使用 swift/kotlin/java開發natvie app 的經驗,實在是沒有什麼立場做比較。至於 「Flutter」這個框架本身的特點等到之後篇章再來詳細說明。

以下優缺點是我以「前端工程師」的角度加上我個人主觀的看法:

優點:

  1. JS與 Dart(*)的相似度高,基本上沒有什麼不習慣的地方
  2. 這是一個可以讓JS developer 跨足到原生應用程式開發的入門磚
  3. 強迫自己學習OOP(**)

缺點:

  1. 基本上我個人認為目前最嚴重的是SEO問題,畢竟 Flutter web 的渲染方式不是我們熟知的Html那套所以現在應該是不太好實作SEO。
  2. 太新,用於產品會有相當程度的風險。
  3. 目前效能表現並不理想。

結論:即使真的要用於產品上,現在Flutter web可能比較適合在不需要SSR的場景,或者是有需要把app專案快速遷移成web版本的這種需求,對我來說「Flutter web」就是更接近字面意義上的「web application」。

但我個人是還蠻看好 Flutter 及 Dart 的未來,畢竟它們帶給我的開發體驗實在是很不錯,再加上google感覺是蠻大力地在推廣得這些技術的,長遠來看是可以投資的技術。

本系列文預計內容

  1. Dart 基本介紹
    1. 基本開發環境與Dart 基本語法
    2. Dart 非同步
    3. Dart 特性
  2. Flutter
    1. Flutter 安裝
    2. Flutter 常用widget
    3. Flutter 小demo-1
    4. Flutter 常用 pub
    5. Flutter 小demo-2

附註* : Flutter主要使用的語言

附註**:這真的是超級主觀的個人看法,對我來說我的工作上FP會比OOP更為常用。


下一篇
Day 2 | Dart 開發環境設定
系列文
Flutter web 的奇妙冒險30

尚未有邦友留言

立即登入留言