iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0

多懂一點架構,就多看見一點可能

看了太多 CC 自言自語之後,我覺得還是得稍微搞懂一下發生什麼事情,請 CC 幫我寫了些科普教材。

它本來好心地說,我只要搞懂哪些是非知道不可的就夠。但我覺得多知道一點架構,有助於理解什麼可以做、什麼不能做的能力界線,所以想要比新手多知道一點點。以下分享我剛學到的東西。

一、按開發環節分組

環節 這次出現的名詞 一句話 CC 認為我該懂到什麼程度
環境與工具 Xcode、模擬器、實機、TestFlight、憑證與描述檔 東西在哪裡跑 知道模擬器不等於手機
資料層 SwiftData、CGRect、cropRect、巢狀結構、攤平、計算屬性、資料遷移 東西怎麼存 聽得懂「這個存不進去」
畫面層 SwiftUI、跑版、爆版(縮圖元件撐爆整頁) 東西怎麼長出來 知道要自己看過畫面才算數
AI 與模型 Vision、美學評分、espresso context、裝置端推論 誰在做判斷 知道判斷是誰做的、能不能調
品質與測試 單元測試、double-free、沉默的失敗與 ScoringUnavailable、交叉審查 怎麼知道它是對的 會要求「失敗要講出來」
上架 IAP、沙盒環境、審核截圖、商品要跟 build 一起送審、退件 怎麼送出去換錢 知道會卡在哪一關

我以前玩過 Swift Playgrounds,對它的理解是程式邏輯。這次才知道,除了在手機上存資料的 SwiftData、畫面的 SwiftUI 與 Foundation 基礎函式庫之外,居然還可以透過 SDK 呼叫 AI 與模型,包含 Vision framework、Foundation Models 等等。

二、我在《這趟》用到了三組功能

  • 找出旅遊照片:拿照片的地點資訊算距離。先找出拍照日數最多的那一格當「家」,再把離家超過五十公里、而且連續兩天以上的那段標成一趟旅行。我本來以為這功能有用 AI 模型,但沒有,它就是純算距離。
  • 挑選照片:先辨識照片類別,再在每個類別裡挑拍得好的。這裡動用了 Vision framework 的辨識,以及美學評分。
  • 照片評語:對每組照片給出不同風格的評語,溫暖旅伴、毒舌損友、文青雜誌、嚴格教練。這裡動用了裝置端推論,也就是 Foundation Models。

這遠超過我對 Apple 的期待。從一般消費者的角度,我一直認為 iPhone 在 AI 發展上始終雷聲大雨點小。在 2026 年 7 月,人家 CC 都會寫 code 做動畫了,Siri 還是只能拿來查天氣訂鬧鐘。但沒想到,Apple 給了開發者很多武器。

三、這些武器從哪裡來

為什麼 Apple 給開發者這麼多武器,它怎麼辦到的?我又問了 CC,它的答覆是四層:

  1. 晶片:Neural Engine,iPhone 裡專門跑 AI 的硬體
  2. 執行層:Core ML。Espresso 是它底下的推論引擎,平常看不到,出錯才會在 log 看到
  3. 現成能力:Vision(影像)、Speech(語音)、Natural Language、Translation。Apple 訓練好,直接呼叫
  4. 生成式:Foundation Models,裝置端語言模型,iOS 26 起開放

最讓我有感的是第三層那四個現成能力:看得到、聽得懂、用自然語言回答,還有翻譯。加上 iOS 26 之後才有的裝置端語言模型。

這也讓我理解 Day 13 提到的,「照片評分在模擬器跑不出來、實機才有」的原因。模擬器是 Mac 上模擬出來的環境,拿不到手機那一整套跑模型的執行環境。

四、一個小插曲

七月底的晚上,公司 IT 部門的大主管看到我做的 App,先說了句 Impressive,然後問了一句我聽不懂的話:

You are using the SDKs of the Vision Framework and Foundation framework, right?

我超慌張地問 CC:

請問我有用嗎?我怎麼記得沒有任何。

我少寫了任何第三方套件,因為我記得的是我們說好不上雲端、不進外部資料庫,怎麼會有 SDK。

CC 說,我們講的是兩件事。他問的是 Apple 內建在 iOS 裡的系統框架,任何 iOS App 都是用這些積木蓋的。我記得的「沒有任何」是第三方套件,Google、Firebase、廣告、分析那些外部廠商的東西,這趟確實一個都沒有。這也是照片不用上傳的底氣。

然後我強作鎮定,送出這句:

Yes. Vision for scoring and classification, FoundationModels for the on-device LLM captions. Zero 3rd-party SDKs, zero backend. To keep photos never leave the phone.

送出前 CC 幫我抓了兩個錯:Foundation 跟 FoundationModels 是兩個不同的框架,名字像而已;還有我把 scoring 拼成複數。最後那句「照片不離開手機」是我自己加的,因為那才是我真正想講的。

同一個晚上他又問了一句:不是只有 iOS 26 才能用嗎?我記得的是 iOS 18。查下來兩個都對,因為是三層門檻:

  • App 本體:iOS 17 就裝得起來,手動挑片、章節、故事書、成績單都能用
  • 自動精選:要 iOS 18,因為美學評分那顆模型是 iOS 18 才有的
  • 裝置端評語:要 iOS 26,而且要支援 Apple Intelligence 的機型。沒有的話不會壞,評語退回事先寫好的模板

為了寫這篇,我終於比新手前進一點(或是不只一點),搞懂那段時間發生了什麼事情,以及還可以多做什麼。

心得

Vibe Coder 如果只知道自己的需求,對原理完全沒興趣,就太可惜了。

還是得理解背後的原理,才能釋放更多可能的需求與功能。

寫到這裡,又有幾個想要更新的 idea 了,真是太開心了。

而且真的挖到一個洞。這篇寫到一半我才知道,App 判斷「家」的方法,是掃過整個相簿、找出拍照天數最多的那一格。那搬家的人怎麼辦?舊家累積的天數遠多於新家,會被判成還住在舊家,過去的旅行清單也會在某天突然重算。這條已經排進待辦了。

比新手前進一點的好處,就是你開始看得懂自己的東西哪裡可能會壞,哪裡可能更好。


這個系列同步寫在我的部落格:yojuhsu.com/blog

前一篇:【Day13】它不說做不到,它給我看起來正常的結果
下一篇:【Day15】我抱怨過的每件事,都變成一條測試


上一篇
【Day13】它不說做不到,它給我看起來正常的結果
系列文
AI 沒有消滅專業:不寫 code 上架四個 App 的商業分析師,30 天拆給你看 共 14 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言