為什麼我的第一個Flutter手錶應用徹底改變了我對行動開發的看法
其實現在大家談到穿戴式裝置,手錶那種小巧的東西,這幾年真的變得很常見。好像也不確定是哪個時間點突然變熱潮,但明顯地能感受到越來越多人習慣在手腕上看通知、查健康數據——甚至有人說,生活被這些東西改變了不少。大概有將近一半的朋友,開始會問怎麼用手錶直接和手機互動,不用每次都把手機掏出來。
我自己對這類技術一直有點興趣,也許是因為想看看日常到底能不能被簡化吧,有時候覺得如果能少摸一次手機,就多一點專心做事情的時間。有的人可能說開發穿戴型應用比較麻煩,可是那種設計過程其實還挺吸引人,挑戰不少,很容易讓人掉進去琢磨怎麼弄得更順手。
至於要選什麼開發工具,那時候繞了一圈考慮,其實Flutter給人的印象一直都是可以省很多事啦,畢竟只寫一份程式碼,大致上Android和iOS都能跑。雖然不是每個細節都完美,但它裡面那些現成的元件和UI樣式,看起來就挺適合拿來做手錶這種螢幕比較小但又重視體驗的產品。有些人會強調效率,我自己倒是覺得設計彈性跟速度差不多重要。
反正如果你偶爾也想試著接觸穿戴式開發,大致上我準備分享一些像「怎麼從頭開始搞懂Flutter做watchOS夥伴App」、「為什麼小螢幕的操作邏輯跟手機差這麼多」之類的話題…內容嘛,也許不會特別系統化,但希望多少能帶到一些設計上的思路或是遇到的小坑。
我自己對這類技術一直有點興趣,也許是因為想看看日常到底能不能被簡化吧,有時候覺得如果能少摸一次手機,就多一點專心做事情的時間。有的人可能說開發穿戴型應用比較麻煩,可是那種設計過程其實還挺吸引人,挑戰不少,很容易讓人掉進去琢磨怎麼弄得更順手。
至於要選什麼開發工具,那時候繞了一圈考慮,其實Flutter給人的印象一直都是可以省很多事啦,畢竟只寫一份程式碼,大致上Android和iOS都能跑。雖然不是每個細節都完美,但它裡面那些現成的元件和UI樣式,看起來就挺適合拿來做手錶這種螢幕比較小但又重視體驗的產品。有些人會強調效率,我自己倒是覺得設計彈性跟速度差不多重要。
反正如果你偶爾也想試著接觸穿戴式開發,大致上我準備分享一些像「怎麼從頭開始搞懂Flutter做watchOS夥伴App」、「為什麼小螢幕的操作邏輯跟手機差這麼多」之類的話題…內容嘛,也許不會特別系統化,但希望多少能帶到一些設計上的思路或是遇到的小坑。
原文出處: https://www.kantti.net/tw/column/1651/flutter-watchos-wearable-development-journey
手錶應用到底能為穿戴式生態帶來什麼革命性體驗
講到開發過程,常見的那些難題,大概不少人都踩過坑。有些問題感覺怎麼解都卡住,好像總有意外冒出來。不少開發者會遇到測試時狀況百出,或者上架 App Store 的時候流程搞得一團亂。要說化解之道,其實沒有哪套方法一定靈驗,有的人靠經驗慢慢摸索,也有人參考社群討論或官方文件,運氣好點也許很快就找到突破口。
如果要聊穿戴式裝置的開發,這領域其實挺新奇的。大家一起探索創新的路上,有時候會突然想到一些沒人做過的小點子,也可能只是單純想看看技術能走多遠。
至於環境設定嘛,這部分有的人會直接跳過,但其實蠻重要的。尤其用 Flutter 來玩 watchOS,那前期準備不能省。大致上需要幾個工具配合,步驟本身倒不是太複雜,只是偶爾還是容易漏掉什麼小細節。
像安裝 Flutter 這件事,大部份人應該都是先去官網晃一圈,把適合自己系統(比如 macOS)的安裝包抓下來。有些朋友記得有一次下載檔案時版本跑錯了,結果後面卡了快半天才發現,所以選擇對應作業系統真的別偷懶。
當然每台電腦情況不盡相同,有些裝置明明照著教學來卻還是怪怪的。不管怎樣,多數人在初次嘗試階段,都免不了反覆查資料、重複操作幾次。畢竟,不是每一步都有保證會一次順利跑通,就像生活裡偶爾遇到紅燈一樣,好像也只能靜下心慢慢等它過去吧。
如果要聊穿戴式裝置的開發,這領域其實挺新奇的。大家一起探索創新的路上,有時候會突然想到一些沒人做過的小點子,也可能只是單純想看看技術能走多遠。
至於環境設定嘛,這部分有的人會直接跳過,但其實蠻重要的。尤其用 Flutter 來玩 watchOS,那前期準備不能省。大致上需要幾個工具配合,步驟本身倒不是太複雜,只是偶爾還是容易漏掉什麼小細節。
像安裝 Flutter 這件事,大部份人應該都是先去官網晃一圈,把適合自己系統(比如 macOS)的安裝包抓下來。有些朋友記得有一次下載檔案時版本跑錯了,結果後面卡了快半天才發現,所以選擇對應作業系統真的別偷懶。
當然每台電腦情況不盡相同,有些裝置明明照著教學來卻還是怪怪的。不管怎樣,多數人在初次嘗試階段,都免不了反覆查資料、重複操作幾次。畢竟,不是每一步都有保證會一次順利跑通,就像生活裡偶爾遇到紅燈一樣,好像也只能靜下心慢慢等它過去吧。

用Flutter跨平台開發手錶應用真的可行嗎?來看看我的選擇過程
下載了一個壓縮檔,然後把那個叫 flutter 的資料夾丟到自己想放的地方,有人好像會選在家目錄下面,不過有些人可能習慣另外開個資料夾。弄完以後,還要記得去動一下路徑設定,這通常是什麼 .bash_profile 或 .zshrc,那行 export PATH 的指令也不是太難,就是把 flutter/bin 加進去,不過位置要看你剛剛放哪。
其實弄完這些,大部分人會直接打 flutter doctor,看看到底還差什麼沒安裝好。有時候會有一大堆東西要補,也有人第一次跑就只跳出幾個警告。喔對了,如果你想用來做 watchOS 開發,Xcode 基本上是必備的。雖然不是每台 Mac 都裝著,但現在如果打算碰 watchOS,大概都會先開 Xcode 來摸索一陣子。有時候安裝步驟還會卡在 App Store 網速慢或空間不夠。不過總之,流程大致上就這樣啦。
其實弄完這些,大部分人會直接打 flutter doctor,看看到底還差什麼沒安裝好。有時候會有一大堆東西要補,也有人第一次跑就只跳出幾個警告。喔對了,如果你想用來做 watchOS 開發,Xcode 基本上是必備的。雖然不是每台 Mac 都裝著,但現在如果打算碰 watchOS,大概都會先開 Xcode 來摸索一陣子。有時候安裝步驟還會卡在 App Store 網速慢或空間不夠。不過總之,流程大致上就這樣啦。
第一次設定Flutter手錶開發環境就上手:從安裝到疑難排解
有時候,打開 Mac 上的 App Store 搜尋 Xcode,這件事情好像也沒那麼複雜。下載、安裝,大致上流程都差不多,不過偶爾會遇到需要額外安裝一些組件的提醒,這種情況下,只能跟著畫面一步一步來。Xcode 裝好後,還得開啟一次、看一下同意書什麼的。如果想確認 watchOS SDK 有沒有準備好,通常進到 Xcode 的設定裡頭,有個叫「元件」或「Components」的地方,再去找一找自己要用哪個版本,其實也不算太難。
講到 Flutter 跟 watchOS 之間要怎麼溝通,好像還真有點細節。有些人習慣用自己的編輯器開專案,也有人直接在其他地方處理,但反正第一步就是把自己的 Flutter 專案打開。有時候順序可能沒那麼死板,不過大致就是這樣展開了。
講到 Flutter 跟 watchOS 之間要怎麼溝通,好像還真有點細節。有些人習慣用自己的編輯器開專案,也有人直接在其他地方處理,但反正第一步就是把自己的 Flutter 專案打開。有時候順序可能沒那麼死板,不過大致就是這樣展開了。

Xcode設定全攻略:如何讓你的Mac準備好迎接watchOS開發
在你的 `pubspec.yaml` 裡頭嘛,大致會需要把 flutter_watchos 加進去,還有大概一些其他可能會用到的套件,寫法大概像這樣吧──flutter_watchos: ^latest_version。然後,接著應該要執行 flutter pub get,把那些剛剛加進來的東西裝好才行。
過程其實有時候不太順利,常常會遇到幾種算是蠻容易碰上的小問題。像是電腦突然說找不到 Flutter 指令,那通常都是環境變數沒有設好,要檢查一下 PATH 有沒有補對。另外 Xcode 有時候也不是那麼配合,如果遇到編譯失敗,好像多半都是授權沒同意、或者某些必要元件還沒裝齊。套件間打架這事也不是沒見過,有些人發現版本之間不對盤,只能自己慢慢比對調整看看。
等到環境基本上都搞定了,也許就可以開始往下走,看看到底怎麼把 app 架構起來,用 Flutter 玩出比較貼近 watchOS 的互動和體驗。不知道是不是每個人都這樣想,但不少開發者到了這裡就開始琢磨 companion app 到底要放什麼功能進去。
至於說要開發那種跟主程式搭配的 watchOS 小應用,有幾個功能好像被大家認為蠻重要。比如通知這一塊,不少人覺得及時通知資訊還挺關鍵,就是讓手錶端能馬上收到那些從主 App 傳來的訊息。當然,這只是其中之一啦,剩下的大致就是互動操作、資料同步之類,有些細節可能根據專案不同稍微調整。至於架構選擇和 Widget 用哪一些,其實看團隊習慣或需求,大家做法都不太一樣,也不見得有什麼絕對標準答案。
過程其實有時候不太順利,常常會遇到幾種算是蠻容易碰上的小問題。像是電腦突然說找不到 Flutter 指令,那通常都是環境變數沒有設好,要檢查一下 PATH 有沒有補對。另外 Xcode 有時候也不是那麼配合,如果遇到編譯失敗,好像多半都是授權沒同意、或者某些必要元件還沒裝齊。套件間打架這事也不是沒見過,有些人發現版本之間不對盤,只能自己慢慢比對調整看看。
等到環境基本上都搞定了,也許就可以開始往下走,看看到底怎麼把 app 架構起來,用 Flutter 玩出比較貼近 watchOS 的互動和體驗。不知道是不是每個人都這樣想,但不少開發者到了這裡就開始琢磨 companion app 到底要放什麼功能進去。
至於說要開發那種跟主程式搭配的 watchOS 小應用,有幾個功能好像被大家認為蠻重要。比如通知這一塊,不少人覺得及時通知資訊還挺關鍵,就是讓手錶端能馬上收到那些從主 App 傳來的訊息。當然,這只是其中之一啦,剩下的大致就是互動操作、資料同步之類,有些細節可能根據專案不同稍微調整。至於架構選擇和 Widget 用哪一些,其實看團隊習慣或需求,大家做法都不太一樣,也不見得有什麼絕對標準答案。
打造手錶應用的核心功能:通知、互動與數據同步的實戰筆記
有時候,手錶上的通知不只是閃一下畫面,好像還會伴隨某種震動,讓人即使沒摸到手機,也比較容易察覺。這些提醒方式,大致上能幫使用者少漏掉一些訊息吧。不過,互動的部分就得花點心思了——畢竟螢幕那麼小,怎麼設計才算直覺也說不準。有些人可能會習慣用滑動切換不同頁面,偶爾點擊又能看到細節或做操作;至於那些快速入口,有聽過可以自訂成常用功能,不知道實際上大家會怎麼選。
資料同步這塊,大概不是單靠一次性傳輸就夠。好像多數設計都希望手錶跟主程式間保持同步,有時候需要定期拉新資料,但頻率多少、何時觸發更新,實際狀況應該還是要看需求調整。Flutter本身在處理這類資料交換方面,據說效能表現還行,只是要注意不要拖慢其他東西。有些情境下,同步速度和穩定度可能特別重要,但很難保證每次都完全順利。
總之,每個環節從體驗到技術,看起來都有不少眉角要拿捏。
資料同步這塊,大概不是單靠一次性傳輸就夠。好像多數設計都希望手錶跟主程式間保持同步,有時候需要定期拉新資料,但頻率多少、何時觸發更新,實際狀況應該還是要看需求調整。Flutter本身在處理這類資料交換方面,據說效能表現還行,只是要注意不要拖慢其他東西。有些情境下,同步速度和穩定度可能特別重要,但很難保證每次都完全順利。
總之,每個環節從體驗到技術,看起來都有不少眉角要拿捏。

小螢幕大挑戰:設計穿戴式介面時你絕對不能忽略的三件事
手錶那邊的伴隨應用架構,最近有人提到會朝著乾淨分層的方式去設計,這樣大致上看起來有助於後續維護吧。不過說到效率跟反應速度,其實還是得看各層之間怎麼協調才行。像介面相關,好像多半靠Flutter那些元件,ListView、GestureDetector、Container這幾個常見工具,有時候也會混著用,使用體驗或許可以因此順一點。
然後業務邏輯那層,有人形容就像把UI和資料來源拆開來,中間做個緩衝;不過到底能不能確保流暢,那可能還要配合一些外部服務,看環境穩不穩定。有些朋友還特別提到資料存取,說本地儲存與網路請求需要兼顧,不然斷線時容易出狀況。這部分感覺比較麻煩,但如果能做到即使網路沒那麼順,也還能拿到資訊,大概會比較安心。
整體模組化嘛…不少人認為對維護有幫助,可是細節處理起來偶爾會卡住。偶爾想到哪一層要調整什麼流程,又得回頭檢查前面設定。不曉得是不是每個專案都這樣,不過目前看下來,大多數開發者好像都會選擇這種方式,只是落地成效如何,就很難一概而論了。
然後業務邏輯那層,有人形容就像把UI和資料來源拆開來,中間做個緩衝;不過到底能不能確保流暢,那可能還要配合一些外部服務,看環境穩不穩定。有些朋友還特別提到資料存取,說本地儲存與網路請求需要兼顧,不然斷線時容易出狀況。這部分感覺比較麻煩,但如果能做到即使網路沒那麼順,也還能拿到資訊,大概會比較安心。
整體模組化嘛…不少人認為對維護有幫助,可是細節處理起來偶爾會卡住。偶爾想到哪一層要調整什麼流程,又得回頭檢查前面設定。不曉得是不是每個專案都這樣,不過目前看下來,大多數開發者好像都會選擇這種方式,只是落地成效如何,就很難一概而論了。
開發過程中那些讓我熬夜的坑:效能優化與平台限制的血淚史
設計穿戴式裝置的介面,老實說常常遇到一堆有點棘手的問題。螢幕大小嘛,大概連手機的零頭都不到,所以資訊真的得精簡到不能再精簡——多數時候,只能留下那些「非看不可」或是操作上可能比較急的部分。然後字體方面,好像也不能亂來,太小根本沒人看得清楚;顏色對比要夠明顯,不然只會讓大家瞄個幾眼就放棄。
說到互動,這類裝置大約都是那種「快狠準」才管用。有時候滑個兩三下,就希望事情能搞定,誰還想在那邊一直翻頁?導航流程最好越短越好,不然很容易讓人覺得麻煩。
其實啊,這些原則聽起來不算新奇,但每次進入開發階段,又會發現細節裡頭藏了不少狀況。像我們現在討論伴隨應用程式,也只是剛踏進門檻,往後要採用哪些工具、什麼技術,其實有很多地方還需要慢慢摸索。至於最後出來成效怎麼樣,目前看來只能先照著這些方向走,有可能讓使用者感覺方便、順手。但是不是所有人都滿意,好像還言之過早。
說到互動,這類裝置大約都是那種「快狠準」才管用。有時候滑個兩三下,就希望事情能搞定,誰還想在那邊一直翻頁?導航流程最好越短越好,不然很容易讓人覺得麻煩。
其實啊,這些原則聽起來不算新奇,但每次進入開發階段,又會發現細節裡頭藏了不少狀況。像我們現在討論伴隨應用程式,也只是剛踏進門檻,往後要採用哪些工具、什麼技術,其實有很多地方還需要慢慢摸索。至於最後出來成效怎麼樣,目前看來只能先照著這些方向走,有可能讓使用者感覺方便、順手。但是不是所有人都滿意,好像還言之過早。

從挫折中學到的寶貴經驗:給想進入穿戴式開發的新手指南
其實一開始動手做 watchOS 的 Flutter 配套應用,氣氛有點像走進一間沒去過的老咖啡館——新奇歸新奇,困難也跟著冒出來。那時候有些想法,覺得理所當然在 iPhone 上能跑的東西,在 Apple Watch 應該也是差不多吧?結果發現還真不是這麼回事。有些功能,在手錶上根本就被限制住了,用法也跟手機不太一樣。後來我大概花了一陣子翻看官方說明文件,那種琢磨和摸索的感覺,好像每次都會發現自己原先設計的某些東西,其實根本沒辦法照搬,只好修修補補,把整體功能往「比較適合小螢幕」方向調整。最終倒是讓使用起來順暢很多。
談到效能問題,這部分蠻讓人頭疼。畢竟智慧型手錶的硬體規格遠比不上手機,耗電量、處理速度都很有限。有時候一個畫面卡住一下,就會突然驚覺:「啊對喔,它只是個小裝置。」那時候試過一些方法,比如說盡量把任務分開處理,不要全部擠在主線程裡;偶爾還需要用到一些監測工具,看哪裡拖慢速度,再慢慢微調。不敢說完美,但至少比原本流暢不少。
再講回介面設計,小螢幕真的是另一種挑戰。資訊怎麼塞、按鈕要不要放這麼多、用戶點得到嗎?這些問題常常會纏著腦袋打轉。有時候想要表達清楚,卻又怕畫面亂成一團。後來參考了幾份穿戴式裝置 UI 指南,也有試做幾版原型找朋友摸摸看,他們意見五花八門,我也只能邊修邊學。一段時間下來才發現,有些事情簡單直接反而比較好,像是按鍵做大點、步驟精簡,不少人用起來反饋還算不錯。
總結起來,每個階段遇到狀況都有不同解法,也不是說哪招一定行得通,只是有時候多換個角度或靜下心查資料,大致上都能找到折衷的方法。經驗談嘛,有些地方記不太清細節,不過過程大致就是這樣斷斷續續地前進,一路繞路再回頭修正。
談到效能問題,這部分蠻讓人頭疼。畢竟智慧型手錶的硬體規格遠比不上手機,耗電量、處理速度都很有限。有時候一個畫面卡住一下,就會突然驚覺:「啊對喔,它只是個小裝置。」那時候試過一些方法,比如說盡量把任務分開處理,不要全部擠在主線程裡;偶爾還需要用到一些監測工具,看哪裡拖慢速度,再慢慢微調。不敢說完美,但至少比原本流暢不少。
再講回介面設計,小螢幕真的是另一種挑戰。資訊怎麼塞、按鈕要不要放這麼多、用戶點得到嗎?這些問題常常會纏著腦袋打轉。有時候想要表達清楚,卻又怕畫面亂成一團。後來參考了幾份穿戴式裝置 UI 指南,也有試做幾版原型找朋友摸摸看,他們意見五花八門,我也只能邊修邊學。一段時間下來才發現,有些事情簡單直接反而比較好,像是按鍵做大點、步驟精簡,不少人用起來反饋還算不錯。
總結起來,每個階段遇到狀況都有不同解法,也不是說哪招一定行得通,只是有時候多換個角度或靜下心查資料,大致上都能找到折衷的方法。經驗談嘛,有些地方記不太清細節,不過過程大致就是這樣斷斷續續地前進,一路繞路再回頭修正。
未來還能怎麼玩?我的手錶應用進化藍圖與給開發者的熱血呼籲
在摸索過程裡,遇上這些難題,有些看似讓人頭疼,但後來發現只要多查查官方文件,真的會有不少靈感跳出來。好像一開始沒太注意效能問題,差點卡在某個環節;若不是後來臨時又回頭優化,可能到最後才發現麻煩。還有設計部分,要不是聽了一些用戶的反饋,大概不會想到原本自以為很直觀的東西,其實別人用起來並不順手。這段時間下來,好像除了技術面進步了不少之外,也愈加覺得彈性跟持續學習是真的重要——畢竟軟體世界變動那麼快,不適應就落後了。
現在要準備邁入另一階段,就是測試和部署啦。說到結尾,其實回想自己第一次用 Flutter 做 watchOS 夥伴 App,那種完成一件事的小滿足感還挺微妙的。有時候覺得 wearable 這領域潛力蠻大,但真正深入做了才知道門道也不少。
講幾個印象比較深的點:Flutter 跨平台開發的整合能力算是給人帶來便利(雖然偶爾還是有兼容小狀況);再怎麼說,watchOS 的介面設計原則還是得花點心思研究,不然做出來用起來不太對味;另外,有機會一定要拿實體裝置跑測試,不然很多小 bug 在模擬器根本抓不到。
完成這支 App,雖然離所謂「成熟」或「完美」還有距離,但總算算是一個起步啦。往後想嘗試看看哪些改進方向?腦海中大概浮現過——比方說增加些手勢互動、再多用點震動回饋之類(希望能讓使用感受更豐富);健康數據蒐集功能也是個考慮目標,也許能讓 App 更貼近日常需求;外觀部份,日後如果能讓大家自己調調顏色或佈局,也是不錯。
其實 wearable 技術一直在變,今年跟明年可能又差很多。如果有人剛好也對 watchOS 或 Flutter 有興趣,可以考慮一起踏進這圈子看看。不見得每次都一路順暢,可是學到的新東西,每每回頭想都覺得值得。如果你剛好有哪些心得、有碰到什麼問題或者新的想法,都歡迎留言討論──交流一下經驗嘛,指不定哪天就派上用場了。
現在要準備邁入另一階段,就是測試和部署啦。說到結尾,其實回想自己第一次用 Flutter 做 watchOS 夥伴 App,那種完成一件事的小滿足感還挺微妙的。有時候覺得 wearable 這領域潛力蠻大,但真正深入做了才知道門道也不少。
講幾個印象比較深的點:Flutter 跨平台開發的整合能力算是給人帶來便利(雖然偶爾還是有兼容小狀況);再怎麼說,watchOS 的介面設計原則還是得花點心思研究,不然做出來用起來不太對味;另外,有機會一定要拿實體裝置跑測試,不然很多小 bug 在模擬器根本抓不到。
完成這支 App,雖然離所謂「成熟」或「完美」還有距離,但總算算是一個起步啦。往後想嘗試看看哪些改進方向?腦海中大概浮現過——比方說增加些手勢互動、再多用點震動回饋之類(希望能讓使用感受更豐富);健康數據蒐集功能也是個考慮目標,也許能讓 App 更貼近日常需求;外觀部份,日後如果能讓大家自己調調顏色或佈局,也是不錯。
其實 wearable 技術一直在變,今年跟明年可能又差很多。如果有人剛好也對 watchOS 或 Flutter 有興趣,可以考慮一起踏進這圈子看看。不見得每次都一路順暢,可是學到的新東西,每每回頭想都覺得值得。如果你剛好有哪些心得、有碰到什麼問題或者新的想法,都歡迎留言討論──交流一下經驗嘛,指不定哪天就派上用場了。