Matrix 首頁推薦
Matrix 是少數派的寫作社區,我們主張分享真實的產品體驗,有實用價值的經驗與思考。我們會不定期挑選 Matrix 最優質的文章,展示來自使用者的最真實的體驗和觀點。
文章代表作者個人觀點,少數派僅對標題和排版略作修改。
上周,在上海以獨立開發者的身份參加了 Let‘s Vision 2025,其間遇到很多朋友對我自學開發了 Me 這款 app 的過程很感興趣,紛紛建議我分享一下,所以有了這篇筆記。接下來我將分享自己是如何將靈感化為現實,讓想法真正落地的,希望能夠説明到那些懷揣著夢想的朋友。
先自我介紹一下,我是 KookyBread,曾經是一名設計師。2023 年的時候,因為實在忍受不了中年發福的身材,開始跑步減肥。為了有效的衡量減肥效果,我從一開始就堅持使用 Apple Watch 記錄運動的數據,並且使用體脂秤天天記錄體重等數據。很快,減肥有了效果,一個半月瘦了 10 公斤。在整個減肥的過程中,我發現要查看我運動和健康的相關數據,必須反反覆復的在「健身」和「健康」2 個 app 之間來回切換,非常的麻煩。於是開始尋找一款能夠滿足我自己使用需求的 app,很不幸,市面上的 app 由於各式各樣的原因沒有一款滿足我的使用需求。被逼無奈,於是萌生了為自己開發一款 app 的想法。
雖然 10 年以前我也曾經嘗試過學習程式設計,但是當時才看了 2 頁蘋果 Objective C 的官方文件,覺得像是在讀天書,於是果斷放棄。為什麼 23 年的我又能鼓起勇氣,敢妄想自學程式設計開發一款 app 了呢?我想應該是有一下幾點原因:
於是,就這樣開始了自學程式設計的旅途。
在開始自學程式設計之前,許多朋友可能會問:我需要做哪些準備?或者,我需要具備什麼條件?
首先,我認為最重要的是 一個能夠吸引你投入學習的想法。這個想法應該讓你充滿動力,願意為之努力學習程式設計。
其次,你需要一台 Mac 或 iPad。
雖然沒有 Mac 確實會對學習 Swift 程式設計帶來一定影響,但如果你有一台 iPad,問題就不大。蘋果一直在努力讓更多人輕鬆入門程式設計,並推出了一款名為 Swift Playground 的免費 app。在 iPad 上,它通過遊戲化的方式教你 Swift 的基礎知識,讓學習變得更加有趣和直觀。我相信絕大部分人都能通過這款 app 有所收穫的。
做完準備工作,相信會有朋友問了:現在 AI 那麼厲害,很多人隨便花個一兩天時間就能做一款 app 來,我是否還需要從那些基礎的知識開始學?我個人從 23 年開始就一直在使用 ChatGPT 程式設計,我的 app 上架的第一版中有 80% 的代碼都是 ChatGPT 幫我寫的。所以,我個人的親身經歷告訴我,AI 程式設計是可行的,並且我親自驗證過。這也是 Let‘s Vision 上很多朋友最感興趣的問題。
所以我對這個問題的回答是,如果你只是突然起兴想做个东西玩玩,不用繼續深入使用或者維護它,那可以直接跳過所有學習步驟,AI 可以非常快速地實現你的想法;如果你是想學習程式設計,並且希望在日後能夠在 App Store 上架一款自己的 app,那還是得從基礎知識開始學。
AI 現在固然很強大,但是也有很多的不足,比如,蘋果年年都有在發佈新的技術,這些新的知識 AI 沒有足夠語料去學習訓練,往往都是抓瞎的。比如我在開發過程中用到了 23 年發佈的 SwiftData,很長一段時間內,AI 連這個是什麼都不知道,更不要說幫你解決相關的問題了。所以,如果以學習程式設計、上架 app 為目標的話,從基礎知識開始學習是很有必要的。
那麼現在要開始學習 Swift 的基礎知識了,但是請注意。先不要急著去打開蘋果官方的 Swift 文件,否則你會和 10 年前的我一樣很快放棄的。
個人推薦的是打開 B 站,搜索「雪錚正在 debug」這位 UP 主的教程,教程視頻長的 10 多分鐘,短的幾分鐘,共有 20 集左右,非常適合利用碎片時間來看。另外,這位 UP 主一開始就是用的 Swift Playground 教你程式設計的,沒有 Mac 也可以學。
Swift Playground 這款 app,在 iPad 和 Mac 上都可以下載。如果有興趣和耐心的話,可以用玩遊戲闖關的心態,去把裡面的小遊戲都玩一玩,寓教於樂,挺有意思的。
學習完上面的視頻后,相信你已經對 Swift 有了一些瞭解,可以完成一些程式設計中的數據處理工作。是不是迫不及待的想試試寫一個可以看得見的UI介面了? 但是別急,我們還得繼續學習,之前學的 Swift 只是用於處理 app 的業務邏輯的方法,要編寫 UI 的話,我們還需要瞭解 SwiftUI。
SwiftUI 是蘋果官方提供的一個框架,可以通過調用不同的元素(如文本、圖片、按鈕、清單)幫你快速的搭建 UI 介面。我們可以通過下載 SixD 和 Interactful 兩個 app(iOS 和 macOS 都可以下載),快速的瞭解 SwiftUI 裡包含哪些東西,效果是什麼樣的?甚至還可以手動調整一下不同的參數,看看能有什麼樣的變化。知道 SwiftUI 有哪些元素供我們使用就行,暫時還不需要埋頭去看文檔,不然從入門到放棄也是很快的。
在掌握了 Swift 和 SwiftUI 之後,我們便具備了開發一款 app 的基礎能力,同時也擁有了與 AI 高效溝通的能力。
AI 程式設計的方式一般有 2 種,一種是直接使用 AI 自己的 app,用對話的方式,你提需求,AI 寫代碼後複製粘貼;另一種是使用 Cursor 這種編輯器,直接在編輯器里輸入需求,AI 自行編寫代碼。但是由於蘋果的 Xcode 對 AI 的支持實在有限,使用 Cursor 這種第三方軟體編寫 Swift 也非常折騰,所以還是老老實實的使用第一種方式。
在 AI 程式設計的過程中,明確人與 AI 之間的角色分工非常重要。我們更像是產品經理,負責提出需求、定義功能,而 AI 則扮演軟體工程師的角色,幫助我們實現想法、優化代碼。只有清晰地表達需求,並善於引導 AI,我們才能更高效地利用它來提升學習效率以及開發效率。這就是為什麼我建議你要先學習 Swift 和 SwiftUI 的基礎知識。
你可以想像,假如我心裡想的是讓 AI 給我編寫一個日記類的 app,但我告訴他給我編寫一個 app,AI 肯定是抓瞎的,寫出來的代碼極有可能是毫不相干的,無法滿足我的需求。所以與 AI 結伴程式設計,一定要學會清晰的表達自己的需求。
另外,如果 AI 支援自定義的話,你可以參照我的這個設置,讓 AI 記住一些必要的資訊,避免在溝通過程中出現很多重複沒有必要的對話。
其中有一個小方法我覺得值得向各位推薦。在剛開始程式設計時,AI 寫的代碼或者網上看到其他代碼,我們常常看不懂是什麼意思。可以把這些代碼給到 AI,讓他用註釋的方式,一行一行地給你解釋對應的代碼是什麼意思。這樣可以幫助我們更加高效的學習並掌握對應的知識。
總之,AI 程式設計最重要的是溝通。你需要清晰的表達你的需求,AI 才能提供相對靠譜的答案。但有一點是必須瞭解的,如果需求複雜一點,那麼可能會出現代碼總是報錯的情況。這個時候,就需要你有耐心,把主控台里的錯誤複製給 AI 讓它找找原因,多試幾次,總會成功的。
我相信這也是許多朋友關心的問題。由於我曾是一名設計師,在介面設計方面或許有一定的優勢。但如果要讓我系統地講解如何打造一個出色的 UI 介面,其實並不容易。
我能給出的建議是——多觀察、多學習優秀 app 的設計。比如我的 app - Me,整體的視覺風格就借鑒了 CarPlay 的材質效果,通過細膩的光影與層次感營造出獨特的體驗。只有積累靈感,不斷探索和嘗試,才能達到自己想要的視覺效果。
此外,如果你使用 SwiftUI,得益於蘋果出色的設計體系,即使沒有專業的設計經驗,也能輕鬆打造美觀的介面。SwiftUI 提供了豐富的預設樣式、動態佈局和細膩的動畫效果,讓介面設計變得更加直觀和高效。所以,放心去嘗試,不斷打磨,相信你一定能做出令人滿意的作品!
如果你不需要上架 app 到 App Store,只是自己寫著玩,那不用開通。即使沒有開發者會員資格,你也可以把你開發的 app 直接安裝到 iPhone 上使用。
我的回答是——既簡單,又很難。
簡單,因為得益於 AI 技術的飛速發展,如今學習程式設計的門檻已經大大降低,讓更多人能夠輕鬆入門,自學變得前所未有的便捷。
難,則在於學習本身是一個漫長的過程,它不僅需要你投入大量精力去堅持,還要不斷克服各種困難。很多時候,你會遇到 AI 和搜尋引擎都無法解決的問題,這時考驗的就是你的耐心、思維和解決問題的能力。
但只要你願意堅持,哪怕進步再慢,每一天的積累都會成為未來突破的基石。
我們在自學開發的過程中,常常會遇到許多問題無法解決,這時候就需要自行搜索,尋找答案。所以我的第一個建議是,最好要有能上外網的條件。因為,Swift 開發在國內並不是那麼的廣泛,能找到的有效中文資訊非常的少,更多的信息還是只能靠外網檢索。那麼,很多人會擔心,我英語不好,看不懂外網的資料怎麼辦?那麼我的第二個建議就是在瀏覽器安裝「沉浸式翻譯」這個外掛程式,可以自動翻譯英文的網頁,還可以設置為中英對照,可以說是看官方文檔的神器。
在 Let’s Vision 2025 會展上,我遇到了許多和我一樣懷揣夢想、卻仍在猶豫不前的朋友。正是他們的鼓勵,給了我寫下這篇筆記的動力。
就像我在上海與大家分享的那樣——AI 已經大大降低了程式設計的門檻,它不再是遙不可及的技能,而是一座通往創意實現的橋樑。如果你有想法,那就勇敢去實踐吧!不到 38 歲的我開始自學程式設計,把 Me 上架到了 App Store。然後,一路更新堅持了一年多——現在快 40 了,依然還在堅持學習。
坦白說,這一路並不容易,但每一次攻克難題帶來的成就感,遠比困難本身更值得回味。自學程式設計不是天賦決定的,而是堅持決定的。相信你只需要邁出第一步,後面的路,會越走越清晰。
加油,共勉!