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 了,依然还在坚持学习。
坦白说,这一路并不容易,但每一次攻克难题带来的成就感,远比困难本身更值得回味。自学编程不是天赋决定的,而是坚持决定的。相信你只需要迈出第一步,后面的路,会越走越清晰。
加油,共勉!