Flutter跳坑之旅 (一) 簡介與建立Project

Lutas Lin
Lutas Lin
Nov 30, 2019 · 5 min read

Android工程師的Flutter跳坑之旅

為什麼我入坑了

最近Flutter的討論聲量越來越大,在我身邊也常聽到這個名詞,但台灣這邊實際跳坑的人似乎來不太多。而Flutter一開始引起我注意的點其實是『Flutter for Web』,雖然我是Android工程師但是也一直對寫網頁很感興趣,由於Dart本來就是設計來取代JavaScript的語言,Flutter的架構打從一開始就很適合拿來寫網頁,Flutter近來的崛起也讓握看到『前端一家』的可能性。

建立新專案

安裝Flutter相當簡單,官網的說明也寫得很清楚,在此就不贅述。

別忘了用 flutter doctor指令檢查是否安裝了所有必需套件

準備IDE

Flutter支援VS Code和InteliJ/Android Studio兩大IDE,兩者都是很優秀的IDE,挑你習慣的即可,我個人是看心情用。以下用Android Studio示範

Android Studio 建立新專案

  1. 必裝Dart & Flutter Plugin

2. create new Flutter project

開啟模擬器

  • Android : 用AVD Manager開啟
  • iOS : (有安裝Xcode下) 執行open -a Simulator

開啟模擬器後按下『run』執行App

Web

https://flutter.dev/docs/get-started/web

注意,在Flutter 1.9 Web開發仍是測試版,盡量不要用在Production。我自己測試大多數Widget都沒有問題,但很多Plugin是無法使用的。

  1. 將Flutter切換到dev branch
flutter channel dev
flutter upgrade

2. Enable Web Dev

flutter config --enable-web

3. 為Project加入Web Support

cd /{你的專案路徑}
flutter create .

3–1. 如果還沒建立Project,直接建立一個就好

flutter create {你的App名稱} 

4. 用Chrome瀏覽器當debug device

flutter run -d chrome

dev branch的 Flutter可能會出現一些例外狀況,尤其是使用第三方Plugin時,當你遇到奇怪 issue不妨切回 stable branch 試試

個人感想

MVP | MAP

在台灣創業通常都會抱怨以下問題:缺資源缺人才缺市場缺時間缺有錢老杯

簡單歸納這些問題 — 如何在有限的時間預算下創造有價值的產品?MVP(最小可行性產品)是一個可能的解方,只完成『最必要』的功能並儘速上線,讓『真正的』用戶使用並提供反饋,若這個idea可行再去增強功能,接著再進入下一次迭代。

這時Flutter會是一個很好的開發選項,想像一下光寫一次code就有機會部署到iOS、Android甚至Web上,且有漂亮又流暢的UI,聽起來很美好吧?但這絕對不是說只要請一位前端工程師就能搞定一切了,回頭看一下前面的架構圖,許多Platform Service的部分仍需要用Native Code來處理,平台的發佈也是個大問題,即使在最好的情況下也要有90% Flutter、10% Native的心理準備。所以確保你的團隊包含熟悉個平台的人,或者至少要有可以諮詢的專家。需要重度使用Platform Service或遊戲類App也不適合Flutter。

Flutter只是個工具,要達到最高開發效率,還是得仰賴產品設計者精煉出『最值得』開發的功能

延伸閱讀:https://www.uisdc.com/minimum-awesome-product

把拔,你比較愛誰?

我曾經在Kotlin Everywhere活動中介紹Jetpack Compose時提過這個問題,Compose UI一樣是直接對Canvas繪圖,如果搭配上Kotlin Native自然能形成一個與Flutter極為相似的跨平台框架。若後者成型那開法者就會十分疑惑了,Flutter和Compose同為Google親兒子,我們不免俗的要問句:Google爸爸,你到底比較愛誰?

兩個都愛啊!全天下父母都會撒這種謊,在Google講清兩者差異或是Compose成熟前很難消除這些疑慮。短期來講Kotlin Native尚未成形,Compose也還在pre-alpha階段,要製作Production直接選Flutter對了。至於長期問題,假設Compose/Kotlin成熟後Flutter有可能被邊緣化嗎?我個人認為不會,雖然私心比較喜歡Kotlin,但比起JetBrains的Kotlin,Dart + Flutter才是正港G家純血親兒子。或者再退一步講,反正兩者這麼像,先學了Flutter也沒損失吧?

Lutas Lin

Written by

Lutas Lin

正在尋找人生目標的Android工程師,熱愛閒晃、獨立音樂。寫Medium練文筆,目標是讓喇賽文章超越技術文章。可以透過wsrew2000@gmail.com聯絡我

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade