偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

神作!我用Claude Code一人打造了一款macOS原生App!句句干貨,未來的IDE會截然不同:構(gòu)建上下文+反饋回路

譯文 精選
人工智能
一位 macOS 老程序員,用 AI 工具 Claude Code,硬是靠一個人之力寫出了完整的原生 App,還自動打包上線發(fā)布!全文不僅細(xì)節(jié)拉滿,更重要的是總結(jié)了 AI 編程的 14 個關(guān)鍵技巧,可謂句句干貨,錯過可惜!推薦每一個搞開發(fā)的朋友都認(rèn)真讀一遍。

作者 | Indragie Karunaratne

編譯 | 沈建苗

審校 | 云昭

出品 | 51CTO技術(shù)棧(微信號:blog51cto)

Claude Code 出來之后,很多人都在說“一個人 + AI 就可以獨(dú)立寫應(yīng)用了”。

但真正有人用它從頭到尾打造一個完整的 macOS 原生 App,還詳細(xì)記錄全過程的,幾乎沒有。

今天要分享的這篇文章,正好填補(bǔ)了這個空白。

最近兩天,小編刷到一篇“神文”,直接驚呆!

一位 macOS 老程序員,用 AI 工具 Claude Code,硬是靠一個人之力寫出了完整的原生 App,還自動打包上線發(fā)布!

全文不僅細(xì)節(jié)拉滿,更重要的是總結(jié)了 AI 編程的 14 個關(guān)鍵技巧,可謂句句干貨,錯過可惜!推薦每一個搞開發(fā)的朋友都認(rèn)真讀一遍。

我用 Claude 搞定了一款macOS應(yīng)用

2萬行代碼,自己只手敲一千行

我最近發(fā)布了一個 macOS 原生應(yīng)用 Context,用于調(diào)試 MCP 服務(wù)器。這款應(yīng)用由 Apple 的 SwiftUI 框架驅(qū)動,旨在打造一款貼合平臺風(fēng)格的開發(fā)者工具。

雖然我從 2008 年就開始做 macOS 應(yīng)用,但這次完全不同:Context 幾乎是由 Claude Code 獨(dú)立完成的。在整個 2 萬行代碼中,我手寫的代碼不超過 1000 行。過程中當(dāng)然仍需要技巧和反復(fù)調(diào)試,但 Claude 的編程能力確實(shí)大大提升了效率。

圖片

接下來,我將詳述這段開發(fā)之旅,包括工具選擇、Claude 的優(yōu)劣勢,以及如何最大化生成代碼的質(zhì)量,特別適合你也想用 AI 構(gòu)建原生應(yīng)用的場景。

1. 從 Copilot 到 Claude Code:AI 編碼工具的演變

我的第一次 AI 編程體驗是使用 GitHub Copilot,那時它剛集成進(jìn) VS Code,主要作為智能補(bǔ)全工具。雖然功能相對簡單,但已經(jīng)比傳統(tǒng)編輯器智能許多,可以根據(jù)上下文補(bǔ)全整個函數(shù)。

后來,行業(yè)飛速發(fā)展:Cursor 的 Agent 模式興起,Windsurf 等競爭者紛紛跟進(jìn),AI 工具從“補(bǔ)全”逐步進(jìn)化為“代理開發(fā)”,可以循環(huán)調(diào)用工具、分析代碼、讀取文檔、構(gòu)建項目、跑測試并自動修復(fù)。

2025 年 2 月,Claude Code 橫空出世。它不是一個 VS Code 插件,而是一個純終端的 IDE,沒有文件樹,沒有 UI,只有一個文本框供你輸入提示詞。說它是 IDE,不如說是“AI 開發(fā)代理終端”。

它把智能體循環(huán)(agentic loop)放在首要位置。這種“沒有用 AI 增強(qiáng) IDE,而是取代 IDE 的做法”足夠新穎,雖然一開始我對這種 UX 體驗存疑,但值得一試。

2. 又一個 Side Project 的開始

跟許多上班族程序員一樣,我有一大堆做了一半就爛尾的 Side Project。通常原型很快能做出來,但最后 20% 的打磨太耗精力,結(jié)果我已經(jīng) 6 年沒成功發(fā)布過項目。

我從未交付過的副業(yè)

這一次,我想嘗試支持 MCP 的原生應(yīng)用。MCP 是 Anthropic 提出的開放標(biāo)準(zhǔn),用于讓 AI agent 訪問工具或上下文。雖然官方有 MCP Inspector 工具,但體驗一般,而我一直想做一個像樣的 macOS 原生版本。

于是,項目 “Context” 就此啟動。

3. Claude Code 真的是會寫代碼

我必須說,搭載 Sonnet 4 和 Opus 4 的 Claude Code,代碼生成能力非常強(qiáng)。雖然稱不上頂級工程師,但比平均開發(fā)者強(qiáng)不少。

只需描述你想要的功能,它就能:

  • 找出項目中相關(guān)的源代碼;
  • 理解代碼風(fēng)格和設(shè)計模式;
  • 閱讀文檔或說明;
  • 編寫功能代碼并生成測試;
  • 編譯、運(yùn)行測試,自動修復(fù)編譯錯誤;
  • 甚至可以識別日志、截圖中的 Bug,并嘗試修復(fù)。

而且這一切速度驚人。就像你招了個新員工,零背景,卻能幾分鐘交付一個完整功能。

Claude 為我的應(yīng)用編寫 Swift 代碼

4. Swift 一般,SwiftUI 很行

我用的是 Swift 6.1 和 macOS 15.5,Claude 寫 Swift 的表現(xiàn)中規(guī)中矩,但對 SwiftUI 的掌握不錯。

尤其 Swift Concurrency(并發(fā)機(jī)制)上線后,語言復(fù)雜度暴增,就連人也容易出錯。但 Claude 能識別大多數(shù)常用語法和 API,雖然有時會混用過時的 Objective-C 或 UIKit,但通過一定指引可以有效避免。

比如,你可以寫一個 CLAUDE.md 文件作為項目規(guī)范,告訴 Claude:

  • 盡量用 SwiftUI,只有必要時才用 AppKit;
  • 遵循 Apple 人機(jī)交互指南;
  • 使用 SF Symbols 圖標(biāo);
  • 使用最新 Swift 特性,包括 async/await、actors 和宏。
* Aim to build all functionality using SwiftUI unless there is a feature that is only supported in AppKit.
* Design UI in a way that is idiomatic for the macOS platform and follows Apple Human Interface Guidelines.
* Use SF Symbols for iconography.
* Use the most modern macOS APIs. Since there is no backward compatibility constraint, this app can target the latest macOS version with the newest APIs.
* Use the most modern Swift language features and conventions. Target Swift 6 and use Swift concurrency (async/await, actors) and Swift macros where applicable.

僅這些簡單規(guī)則,就能極大提升代碼質(zhì)量。

而且,你還可以更進(jìn)一步:例如,Peter Steinberger 的代理規(guī)則庫包含可以添加到代理中的規(guī)則,既可以作為一般編碼指南,也可以更具體地編寫更好的 Swift 代碼。

地址:https://github.com/steipete/agent-rules

我的 macOS 應(yīng)用 Context

5. “把 UI 做得更漂亮”——Claude 真的能聽懂

Claude 生成的 UI 首版可能有點(diǎn)粗糙,但你只需說一句“請讓它更漂亮一些”,它就能自動優(yōu)化。

更穩(wěn)妥的方式是先讓它“列出提升 UI 美感的建議”,再逐項調(diào)整。甚至你可以直接把截圖粘貼到 Claude 中,它就能據(jù)此優(yōu)化 UI,平臺無關(guān)、方法通用。

6. 真正關(guān)鍵的是:上下文工程,而非提示工程

過去我們講 Prompt Engineering,但現(xiàn)在我更看重的是 Context Engineering(上下文工程)。

因為 Claude 的上下文窗口是有限的(目前 Opus 4 和 Sonnet 4 是 200k tokens),一旦對話過長,Claude 就需要“壓縮”上下文,即用總結(jié)代替原始細(xì)節(jié)。這一步很容易丟失關(guān)鍵信息。

Claude Code 會提示你當(dāng)前的上下文使用情況,超過限制后會自動觸發(fā)壓縮。要保證輸出質(zhì)量,就必須學(xué)會如何合理安排上下文,讓 AI 讀懂足夠的信息再動手。

Claude Code's auto compaction indicator

7. Priming:讓 Claude 吃透文檔再開始

我通常會在 Claude 開工前,讓它先讀相關(guān)源代碼和在線文檔,并生成一份總結(jié):

Read DXTTransport.swift, DXTManifest.swift, DXTManifestView.swift, DXTConfigurationView.swift, DXTUserConfiguration.swift, AddServerFeature.swift, and AddServerView.swift to learn how adding servers from DXT packages is implemented.

Then read the documentation for the manifest.json format here: https://raw.githubusercontent.com/anthropics/dxt/refs/heads/main/MANIFEST.md

After reading these sources, summarize what you've learned.

Claude 會自動調(diào)用 Search 和 Fetch 工具,抓取源碼和 Markdown 文檔,然后生成總結(jié)供后續(xù)任務(wù)使用。

這種“預(yù)熱”方式特別適合你用的是新 API、三方庫或模型不知道的內(nèi)容。

8. AI 不是讀心術(shù),它需要規(guī)范說明

要讓 Claude 構(gòu)建新功能,你必須提供清晰的需求說明(spec)。

它并不會憑一句“做個登錄頁面”就寫出完整功能。你可以隨意寫,哪怕語氣像你自言自語,Claude 都能理解。

我給 Claude 的某個功能 spec:

請為 Context 添加對 DXT 包格式的支持。用戶可以點(diǎn)擊“Add Server”,然后選擇本地的 manifest.json 文件……

我給 Claude 的一份規(guī)范是實(shí)現(xiàn)對 Anthropic 的 DXT 包格式的支持

雖然看起來很多,但比自己寫代碼快多了。

9. “Ultrathink”:魔法詞匯讓 Claude 深度思考

Claude 很容易“太快動手”,寫出低質(zhì)量代碼。你可以在提示詞中使用“think harder”或“ultrathink”等關(guān)鍵字來激活,讓它先思考再動手。

這些詞不是簡單的形容,而是觸發(fā)模型不同程度“延遲思考模式”的觸發(fā)器。

用法示例:

請 ultrathink 并制定一個詳細(xì)的計劃,在我確認(rèn)之前不要開始實(shí)現(xiàn)。

推薦閱讀:Anthropic 官方發(fā)布的 《Claude Code 最佳實(shí)踐指南》。

10. 建立 Feedback Loop,Claude 才能自主迭代

Claude 最強(qiáng)的地方是能“自己犯錯自己修”。要做到這一點(diǎn),必須幫它建立如下幾個循環(huán):

  • 構(gòu)建循環(huán):告訴它如何編譯項目,Claude 原生支持 swift build,但對 xcodebuild 不了解,可以使用 XcodeBuildMCP;
  • 測試循環(huán):使用 swift test 跑單測;UI 測試目前支持有限;
  • Bug 修復(fù)循環(huán):你得提供運(yùn)行日志或控制臺輸出,它才能判斷出錯位置;
  • UI 優(yōu)化循環(huán):貼圖+優(yōu)化提示詞,Claude 就能迭代視覺效果。

注意:目前還無法讓它“像人一樣”使用 App,需要你提供交互狀態(tài)。

11. 不只是寫代碼,更有趣的應(yīng)用:模擬數(shù)據(jù)

由于Claude Code是封裝通用模型的智能體,因此在迭代應(yīng)用程序本身時,你仍可以用它來幫助完成非編程任務(wù),比如編輯文案,甚至通過向模型征求改進(jìn)應(yīng)用程序功能方面的建議來規(guī)劃功能版本。

我發(fā)現(xiàn)一個很有用的方面是,在將真實(shí)數(shù)據(jù)導(dǎo)入應(yīng)用程序之前,它能夠生成模擬數(shù)據(jù)(mock data)。在構(gòu)建Context時,我部分構(gòu)建了實(shí)現(xiàn)Swift MCP 客戶端庫的方法,但想改弦易轍,做一些 UI原型設(shè)計。

畢竟,生成逼真的模擬數(shù)據(jù)的過程通常太繁瑣了,我永遠(yuǎn)不會去嘗試,但Claude在幾秒鐘內(nèi)生成了非常棒的模擬數(shù)據(jù)。

結(jié)果非常 nice,我引入UI時與朋友們分享的應(yīng)用程序的首批截圖基于模擬數(shù)據(jù),但它看起來足夠逼真,你可以很好地了解應(yīng)用程序在從真實(shí)的MCP服務(wù)器渲染數(shù)據(jù)時的樣子。

由 Claude 生成的模擬數(shù)據(jù)支持的上下文應(yīng)用程序

對于MCP來說,模擬數(shù)據(jù)尤為重要,因為當(dāng)時大多數(shù)MCP服務(wù)器除了工具之外并不使用規(guī)范中的大多數(shù)功能,但我仍然需要一種方法為這些功能驗證 UI。

12. 自動化發(fā)布現(xiàn)在幾乎免費(fèi)

macOS 應(yīng)用發(fā)布流程復(fù)雜(簽名、notarization、DMG 打包、Sparkle 更新等),過去我都會寫 Python 腳本慢慢配。

這次,我用了幾小時就讓 Claude 自動寫了個完整腳本,功能包括:

  • 檢查環(huán)境依賴;
  • 生成 changelog 和發(fā)布日志;
  • 編譯、簽名、打包;
  • 生成 Sparkle 更新 feed;
  • 打標(biāo)簽并發(fā)布到 GitHub;
  • 上傳 Sentry 的調(diào)試符號。

而這些,只花了我?guī)锥巫匀徽Z言提示。

運(yùn)行由 Claude 生成的構(gòu)建和發(fā)布自動化腳本

13. 未來的 IDE 會截然不同

我突然意識到,整個項目我?guī)缀踔挥昧藘蓚€工具:

  • Claude Code:主要開發(fā)環(huán)境;
  • GitHub Desktop:查看 diff。

絕大多數(shù)時候,我?guī)缀鯖]用 VS Code/Xcode 這些傳統(tǒng) IDE 編輯器功能:文件樹、源代碼編輯器、擴(kuò)展程序等等。我偶爾會用 Xcode 手動編輯,但這種情況很少見,而且我也沒有用到大多數(shù) Xcode 特有的功能(SwiftUI 預(yù)覽、View Debugger 等等)。

我不得不想象,未來的 IDE 可能和現(xiàn)在完全不一樣。

我現(xiàn)在相信:

未來的 IDE,核心是讓開發(fā)者“構(gòu)建上下文 + 搭建反饋回路”,而不是手寫代碼本身。

這對于幫助代理成功完成任務(wù)至關(guān)重要。這方面的用戶體驗將會非常不同——我無法準(zhǔn)確預(yù)測,但我認(rèn)為源代碼編輯器不會成為核心。

Cursor、Windsurf 和 Copilot 都是從 VS Code 起步的,并在各個方面有所差異,但它們都將人工智能融入到了一個人工智能尚未出現(xiàn)的編輯器中。

從根本上來說,VS Code 與 20 年前的 JetBrains IDE 看起來并沒有什么不同。我也看到像 Warp 這樣的項目試圖從現(xiàn)代化的終端仿真器轉(zhuǎn)型為代理式開發(fā)環(huán)境,但我也不認(rèn)為終端一定是理想的用戶體驗。

雖然我喜歡 Claude Code ,但終端式體驗不一定是最優(yōu)解,但傳統(tǒng) IDE 的形態(tài)一定會被徹底顛覆。

14. 我終于又能發(fā)項目了!

最讓我興奮的不是這個 App,而是我終于又能把 Side Project 做完并發(fā)布了!

這種感覺就像是:自己可以每天多出 5 小時,而每個月只是多花了 200 美元。

注:我與 Anthropic 無任何利益關(guān)系,此文也非推廣內(nèi)容。只是實(shí)話實(shí)說,我真的很喜歡 Claude Code。

參考鏈接:

https://www.indragie.com/blog/i-shipped-a-macos-app-built-entirely-by-claude-code

責(zé)任編輯:龐桂玉 來源: 51CTO技術(shù)棧
相關(guān)推薦

2018-06-20 11:16:12

NVIDIA顯卡架構(gòu)

2025-04-22 08:10:41

2012-01-16 09:01:40

CIO云計算

2011-08-12 09:29:52

2011-09-05 10:18:21

Windows 8Mac OS

2021-07-26 07:47:36

Cpu上下文進(jìn)程

2014-12-16 10:11:22

2017-05-11 14:00:02

Flask請求上下文應(yīng)用上下文

2021-04-26 15:10:41

比特幣DeFi金融

2025-03-18 10:34:33

2016-12-08 11:49:03

APPRetrofitRxJava

2020-01-30 18:10:28

GitHub代碼開發(fā)者

2020-11-05 09:27:48

JavaScript開發(fā)技術(shù)

2025-03-18 09:10:00

MCPAI模型上下文協(xié)議

2015-08-18 09:11:34

杜長偉APP

2011-09-16 13:44:19

Android應(yīng)用我要搜APP

2015-08-10 11:41:00

SQL注入SQL注入工具Sqlmapi

2012-12-31 10:01:34

SELinuxSELinux安全

2022-09-14 13:13:51

JavaScript上下文

2023-04-27 11:52:54

人工智能Claude軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號