用Claude Code開發Mac應用8小時實戰:比想象中更復雜

用Claude Code開發Mac應用8小時實戰:比想象中更復雜

在我多年的軟件開發生涯中 , 我主要使用兩種基本技術來構建軟件 。 第一種技術是自己逐行編寫代碼 。 我很享受這個過程 , 盡管它可能非常耗時 。 如果你進入心流狀態 , 你真的可以沉浸在這個過程中 。

第二種技術是管理其他程序員 。 這通常是一個力量倍增器 , 因為那些開發人員在逐行編碼方面往往比我更好、更快 。 我可以管理幾個開發人員 , 讓項目進展得更快 。
但我并不那么享受這種做法 。 從來沒有心流狀態 。 更像是持續不斷的規劃、說服、哄勸、糾正 , 還有一點混亂 。 人就是人 , 如果你是經理 , 這就是你會遇到的情況 。
使用Claude Code和AI構建Mac應用不會帶來心流狀態 。 如果你曾經管理過程序員 , 你就知道使用Claude Code的感覺 。 它是一個巨大的力量倍增器 , 但你將花費大部分時間去哄勸和糾正 , 還要花一些時間試圖擺脫AI生成的混亂 。
與管理人類程序員一樣 , 如果你知道如何編碼并且理解底層技術 , 你使用Claude Code會更加成功 。 這樣 , 你可以在架構和設計決策以及簡單的功能定義方面指導AI 。
我的ZDNET同事Tiernan Ray最近嘗試了vibe編程 。 他形容自己是\"編程知識有限的新手\" 。 他的結論是:\"我會說使用這些工具讓我對程序員有了更大的敬意 。 \"
我告訴你這些是為了設定期望 。 我從木船鐵程序員的時代就開始編程了 。 我以及任何有經驗的開發人員從Claude Code這樣的工具中獲得的好處 , 也可能對那些渴望學習的非程序員有用 。 但不要指望僅僅因為使用AI就能揮舞魔法棒獲得適合市場的應用 。
話說回來 , 讓我們深入我的Mac項目 。
項目起始點和需求分析
我從之前使用Claude Code構建的iPhone應用開始 。 這個應用的目的是動態管理3D打印耗材卷 。 我有120個卷材 , 存放在四個存儲架上 , 每個架子有五層 。 這些卷材不斷在架子和八臺3D打印機之間移動 , 其中五臺可以同時使用四個卷材 , 一臺可以使用八個卷材 , 兩臺僅限于一個卷材 。
iPhone應用使用NFC標簽 , 使跟蹤這些卷材的移動變得非常容易 , 并使用內置攝像頭抓取每個卷材的參考圖像 。 我已經每天使用這個應用大約兩個月了 , 它對我的工作流程來說是一個巨大的勝利 。
但現在 , 我想讓它在Mac上工作 。 我也想讓它在Apple Watch上工作 , 但那是另一篇文章的故事 。
我通過網絡從Mac啟動大部分打印作業 , 所以能夠清楚地看到我有什么材料和顏色可用 , 以及已經分配了什么 , 會很有幫助 。 當然 , 我可以使用手機 。 但我希望能夠在桌面上打開Mac應用程序并查看庫存 。
iPhone應用是在蘋果的Xcode開發環境中使用Swift和SwiftUI構建的 。 我在終端中使用Claude Code , 它與Xcode配合編寫代碼 。
Mac的UI和iPhone UI之間有很多交叉 , 特別是在使用Swift時 。 幸運的是 , 移植到Mac不需要完全重寫 。 但確實需要大量返工 。
首先 , 有Mac限制的問題 。 我的Mac Studio沒有攝像頭 , Mac不支持NFC掃描 。 所以雖然我想保留iPhone應用收集的NFC和照片數據 , 但Mac無法掃描或管理它 。
我還希望Mac與iPhone應用即時完全同步 。 iPhone上存在的任何卷材數據都應該從Mac上可見 。 幸運的是 , 蘋果已經構建了一個相當廣泛的庫來通過iCloud共享數據 。
開發過程中的挑戰與解決
當我開始iPhone應用時 , 我知道我要共享數據 , 所以從一開始就在iPhone應用中構建了iCloud架構 。 當我開始Mac應用時 , 只需要接入那些數據并將其帶到計算機以及手機上 。
這是我的起點 。 我確保對應用目錄進行完整備份 。 我還將所有內容檢入GitHub進行源代碼控制和管理 。
然后我啟動Claude Code , 告訴它我希望它分支我的本地Git倉庫 , 并解釋我想基于iPhone應用的工作構建Mac應用 。 作為第一個提示的一部分 , 我解釋說NFC和攝像頭功能不需要移植 , 但iCloud架構需要 。
十分鐘后 , 我有了一個Mac應用 。 它很糟糕 。 看起來很可怕 。 每次卷材列表出現時 , 填充都需要很長時間 。 但從零到第一次運行十分鐘的時間 , 比我逐行完成要少用大約十天 。
經過幾輪運行Xcode的構建工具 , 等待不可避免的錯誤和警告 , 與Claude分享這些錯誤和警告 , 然后重復 。 但過了一段時間 , 應用功能正常了 , 盡管與我最終想要的結果相去甚遠 。
Claude最初有些困難的一個領域是協調Mac有可調整大小的窗口這一事實 。 因此 , UI元素必須相應地縮放和調整大小 。 這就是構建Claude知識庫變得極其重要的地方 。
就像我對iPhone應用所做的那樣 , 我指示Claude Code構建關于它工作的所有內容以及我們學到的經驗教訓的注釋和狀態更新 。 所以一旦Claude最終理解窗口會調整大小 , 這就成為嵌入在項目指令中的規則 。
在iPhone上 , 你在屏幕之間轉換 , 都是垂直方向的 。 但在Mac上 , 我選擇制作三面板屏幕 。 左面板包含主要選項按鈕 , 中間面板包含卷材列表 , 最右面板包含卷材數據 。
讓它工作并沒有花太長時間 , 但需要大量來回提示才能讓它看起來不錯 。 我沒有任何特別突出的提示可以與你分享 , 但我可以告訴你 , 我描述了我想看到的內容 , 讓它移動和重新排列項目 , 并為顯示部分添加樣式 。 我經常與Claude這樣做 。
不幸的是 , 在Mac實現中添加三面板顯示somehow破壞了iPhone應用 。 這就是作為程序員有幫助的地方 , 因為我最終發現Claude可能試圖在應用之間共享屏幕 。 當我明確告訴它為Mac創建新的界面屏幕然后修復iPhone的屏幕時 , 事情運行得更好 。
在架構上 , 我們必須處理速度問題 。 卷材列表很慢 , 因為它為每一行加載全分辨率照片 。 解決方案是縮略圖緩存系統 , 它創建照片的128像素小版本 , 將它們存儲在磁盤上 , 并在后臺生成它們 , 這樣即使有數百個卷材 , 列表也能平滑滾動 。
我們還必須探索如何刷新該列表 , 減少圖像創建的等待時間 , 并添加清除功能 。
管理AI的體驗感受
在本文開頭 , 我提到了我的兩種軟件創建模式:編碼和管理 。 在使用Claude Code時 , 我花費了大部分時間進行管理 。
事實上 , 我能找到的最佳心態是將AI視為遠程人類程序員 。 我給它分配任務 。 我問問題 。 我征求它的意見 。 我指出錯誤 。 我測試、測試、再測試 。 然后我再次測試 。
Claude在產生這個項目方面做得與我過去分配工作的任何程序員一樣好 。 有時Claude很遲鈍和固執 , 但我的人類程序員也有類似的不配合時刻 。
毫無疑問 , 管理AI的體驗遠不如自己編碼那么愉快 。 另一方面 , 我們在大約一個月的實際時間內 , 用大約8小時的項目時間創建了一個完全符合我要求的Mac應用 。
如果你正在考慮使用Claude Code或任何AI制作Mac應用 , 我的建議是慢慢工作 , 逐個添加功能 , 并進行完善 。 然后 , 一旦項目達到某種功能狀態 , 將90%的注意力轉向測試 。 不要假設任何東西都會按照你的要求構建 。 Claude遺漏了一些關鍵功能 , 直到我指出才實現它們 。
但毫無疑問 , 生產力的好處是巨大的 。 現在我的iPhone和Mac上都有一個專門為我的工作流程設計的特殊定制應用 。 而且它有效 。 我仍然沒有決定是否要把它變成產品 , 但即使我永遠不賣它 , 在過去三個月里我在Claude Code Max上花費的幾百美元絕對是值得的 。
敬請期待 。 我的下一個項目是將我的應用移到Apple Watch上 。
Q&A
Q1:使用Claude Code開發應用的體驗如何?
A:使用Claude Code開發應用更像是管理程序員而不是編程 。 它是一個巨大的力量倍增器 , 能在8小時內創建功能完整的Mac應用 , 但需要花費大部分時間去指導、糾正AI的錯誤 , 處理AI生成的混亂 。 整個過程沒有編程的心流狀態 , 更多是持續的管理工作 。
Q2:Claude Code適合什么樣的人使用?
A:Claude Code更適合有編程經驗的開發者使用 。 如果你知道如何編碼并理解底層技術 , 就能更成功地使用Claude Code , 可以在架構和設計決策方面指導AI 。 對于編程新手來說 , 不要指望僅僅因為使用AI就能輕松獲得市場級的應用 。
Q3:使用Claude Code開發應用需要注意什么?
【用Claude Code開發Mac應用8小時實戰:比想象中更復雜】A:建議慢慢工作 , 逐個添加功能并完善 。 一旦項目達到基本功能狀態 , 要將90%注意力轉向測試 。 不要假設AI會完全按要求構建 , Claude可能會遺漏關鍵功能或產生意外錯誤 。 同時要做好備份和版本控制 , 像管理人類程序員一樣給AI分配具體任務 。

    推薦閱讀