
家人們,先來開個腦洞:
一款功能賊複雜、UI 巨精美的 macOS 應用,從一個空資料夾到上架 App Store,只花了一週。
這個專案總程式碼量超過 2 萬行,95% 是 AI 寫的。
這是不是聽起來像某書上哪個人編的爽文?
但這確實是來自一位資深 Mac 開發者的親身經歷,重新整理了我們對 AI 程式設計能力的上限。

這位開發者名叫 Indragie Karunaratne,從 2008 年開始就開始搞 Mac 軟體開發。
最近,他用 AI 程式設計工具 Claude Code,從零擼了個叫“Context”的 App,並且都上架了。最後統計發現,他自己手寫的程式碼,竟然不到 1000 行,95% 的開發工作,都是 Claude Code 完成的。
“整個過程幾乎沒怎麼寫程式碼,反而像是在給一個特別聰明的遠端實習生髮指令。”
聽起來挺暴力的,Indragie 把整個過程寫成了部落格,直接在開發者圈子裡炸了鍋。
這已經不是單純的“炫技”,而是他摸索出了一套“人機協作”的教科書式開發教程,教大家如何把“程式碼工具”調教成一個能扛起整個專案的“主力”,人全程只需要負責動嘴和審查。
下面一起看看他完整的開發歷程,包括如何選擇工具,這些工具的優缺點,以及最重要的,你該如何利用它們,最大限度地提升程式碼產出質量,特別是當你也想構建一款原生應用時。

AI 程式設計,究竟能做到什麼地步?
這個“Context”的 App,是一款用於除錯 MCP 伺服器的原生 macOS 應用,基於蘋果的 SwiftUI 框架。
作者 Indragie 察覺到目前構建和測試 MCP 伺服器的體驗相當繁瑣,所以想要嘗試構建一個原生應用來解決這個問題,“Context”便誕生了。
Indragie 摸索出的這套工作流,核心思想就是是:人類負責思考和決策,AI 負責執行和試錯。
Indragie 只下達指令,不糾結程式碼細節;Claude 會根據指令,迅速生成一整塊、甚至一整個檔案的程式碼。Indragie 拿到程式碼後,幾乎不審查邏輯。他只做一件事——全選、複製、貼上到 Xcode 裡,然後“編譯”。Indragie 再把所有錯誤日誌,原封不動地再“甩”回給 Claude。Claude 立刻理解錯誤道歉,然後提供修復後的新版本程式碼。
“下指令 -> AI 編碼 -> 執行 -> 甩回錯誤 -> AI 修復”的迴圈,是整個專案的推進主軸。
Indragie 也給出了最直接的評價:
搭載了最新 Sonnet 4 和 Opus 4 模型的 Claude Code,程式碼能力極為出色。雖不及“頂尖 1%”的人類程式設計師,但其輸出質量已“明顯高於普通開發者”。
面對一個功能需求,Claude 能做到的事情,幾乎覆蓋了開發的完整閉環:
-
閱讀理解: 自主定位並閱讀專案原始碼,理解相關上下文和程式碼風格。 -
學習消化: “喂”給它外部文件或 API 規範,它能自己啃下來。 -
程式碼生成: 根據需求實現功能,生成配套的測試用例。 -
構建測試: 自主編譯程式、執行測試。 -
自主修復: 遇到編譯錯誤或測試失敗能像人一樣反覆迭代、嘗試修復,直到透過。 -
視覺除錯: 透過分析截圖或控制檯日誌,來定位並修復 Bug。

AI 最強大的地方在於能自主迭代,人類最大的功能是給 AI 建立反饋閉環。
最讓 Indragie 感到不可思議的是,完成這一切所花的時間,僅僅是人類開發者的一小部分:
“這就像讓一個對專案零背景的新員工,在短短幾分鐘內,就完整交付一個功能。”
一句“Make it more beautiful” 就能讓 UI 升級
作者選擇了最新的技術棧:Swift 6.1 和 SwiftUI。想看看在訓練資料遠少於 Python 或 JavaScript 的情況下,Claude 寫 Swift 程式碼的表現如何。
好訊息是,Claude 能勝任 Swift 5.5 之前的大部分語言特性。
但對於之後引入的 Swift Concurrency(併發),它就有點抓瞎,比如會固執地用老 API,或者第一次寫的 UI 醜得不忍直視。
但好訊息是,它的學習和糾錯能力極強。你只需提點幾句,經過幾次迭代,它就能寫出設計精良的現代化程式碼。

更驚人的是,它甚至在遇到 Swift 編譯器那個著名的“型別檢查超時”錯誤後:
The compiler is unable to type-check this expression in reasonable time
能夠自主將複雜程式碼重構成了更小的部分,在不破壞原有邏輯的前提下,完美解決問題。
提升產出的核心:上下文工程
此外,Indragie 發現,AI 越聰明,瓶頸就越不是“怎麼問”,而是“它能記住多少”。“上下文視窗”是有限的,高效利用這有限的“記憶”,才是關鍵。
他總結了三個核心技巧:
別直接派活!
在讓 AI 開始工作前,先讓它“預熱”——閱讀額外的上下文,以提高輸出質量。比如,先拋給它這樣的指令:
“閱讀檔案A.swift
,檔案B.swift
和這篇網頁上的文件
,然後總結你學到了什麼。”
它會先去閱讀和學習,這個“總結”的動作能強迫它思考,並將關鍵資訊保留在上下文中,對後續任務的質量有極大提升。
Claude 還會貼心地顯示剩餘上下文容量的提示條,當 token 耗盡時系統會啟動"對話壓縮"機制。

Claude 有時會跳過充分思考,直接“莽”上去寫程式碼,結果自然不理想。
Indragie 發現,Claude 有一個“隱藏技能”,你可以透過一些關鍵詞讓它進行更深度的思考。這些關鍵詞是:
think
< think hard
< think harder
< ultrathink
。ultrathink
會消耗最多的 Token,但能產出最好的結果。在指令中加入這個詞,它會先制定一個周密的計劃,而不是直接動手寫程式碼,這能有效避免走彎路。“一句話造應用”的夢還沒照進現實。想讓 AI 構建真正可用的複雜功能,前提是你能給一份清晰的需求文件。

“花點時間把想法寫清楚,絕對比後面花大把時間除錯它寫的爛程式碼要划算得多。”
垃圾進,垃圾出,這鐵律在 AI 時代依然有效。
建立反饋迴圈
如果說以上三點是與 AI 相處的技巧,那下面這點,則是 Claude 最讓 Indragie 震撼的“執行”能力。
它能夠獨立驅動一個“構建 -> 測試 -> 修復”的反饋迴圈。
這意味著,AI 可以自主地完成一個迭代週期:
全自動能力:
-
構建 (Build): Claude 能直接執行 swift build 來編譯 Swift 包。對於複雜的 macOS 應用,開發者需要預先配置好 xcodebuild 等工具,AI 可以呼叫這些工具。 -
測試 (Test): 同樣,它可以自主執行 swift test 來執行單元測試。
半自動化能力:
-
收集、修復 Bug: AI 知道透過日誌進行除錯,但它無法自行操作應用介面來複現一個特定的 Bug。因此,開發者需要手動操作應用,並將相關的控制檯日誌或錯誤資訊貼上給 AI,AI 才能進行分析和修復。 -
修復 UI 問題(迭代): 對於 UI 的調整,也需要開發者先將應用執行到需要修改的介面,然後提供截圖給 Claude。開發者透過在截圖上標記或用文字描述,來指導 AI 進行介面元素的調整和最佳化。
讓雜活變得“免費”
除了核心編碼,AI 在幹那些“吃力不討好”的雜活上,同樣表現驚人。
-
秒級生成模擬資料:手動建立高質量的模擬資料(Mock Data)足以扼殺許多 UI 探索的靈感。而 Claude 能在幾秒內生成以假亂真的資料,讓他能快速迭代 UI 原型。

-
“免費”的自動化釋出流:對獨立開發者來說,最痛苦的莫過於打包釋出。程式碼簽名、軟體公證、生成更新日誌、上傳版本…一套流程下來,身心俱疲。過去 Indragie 只能勉強拼湊一個簡陋指令碼,而這次,他透過與 Claude 迭代,生成了一個近 2000 行的 Python 釋出指令碼。

這個指令碼功能全面、介面美觀,能自動完成從生成更新日誌到打包簽名、釋出到 GitHub、上傳除錯符號等所有繁瑣工作。這個過去需要花費數小時甚至數天的任務,現在成了“一次點選,喝杯咖啡”的享受 ~
結語
Indragie 算了一筆賬:AI 帶來了“每天憑空多出 5 個小時”的感覺,讓他重新找回了將專案打磨併成功釋出的掌控感和樂趣。
獲得這種開發“超能力”的代價呢?僅僅是每月 200 美元。。。
Indragie 的實踐並非個例。
最近,Reddit 上一個熱帖《開發工作即將迎來徹底變革,而沒有人做好準備》也引發了熱議。發帖者激動地宣稱,AI 讓他一週內完成了拖延十年的專案。

當然,評論區的反響並非一邊倒的讚歌。許多開發者在肯定 AI 潛力的同時,也一針見血地指出:
“AI 生成的程式碼依然存在大量冗餘,上下文管理仍是巨大挑戰,離真正高質量、可維護的大規模生產應用,還有很長的路要走。”

這讓網友們聯想起了傳奇程式設計師肯特·貝克(Kent Beck)的觀點。

“你 90% 的編碼技巧正在迅速貶值,但你 10% 的架構遠見、設計品味和複雜性管理能力,正被放大 1000 倍。”
這一點,奶茶我是非常認同的!
人類程式設計師的價值正在從“如何寫”,轉移到“寫什麼”和“為何寫”。
所以,朋友們,真正的問題已經不是“AI 會替代我嗎?”,也不是“我該去學哪門新語言?”。
而是:
你那 10% 不可替代的價值,究竟是什麼?
以及,你準備好如何用 AI,將它放大 1000 倍了嗎?



參考文獻https://www.indragie.com/blog/i-shipped-a-macos-app-built-entirely-by-claude-codehttps://www.reddit.com/r/ClaudeAI/comments/1lhgdbd/dev_jobs_are_about_to_get_a_hard_reset_and/