Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

我第一次尝试 iOS 应用程序开发

Posted on 2025-06-02

一周前,我对 Swift 一无所知。如今,我的 Mac 和测试设备上都已经有一个可以运行的 iOS 应用了。我仍然对这一切是如何组合在一起的感到有些惊讶。

我更偏向于产品和 GTM 开发,经常会针对特定问题或客户项目写代码。我当然安装了 Xcode,但主要是因为我需要它来测试东西。我大部分时间都花在其他语言和生态系统上。但上周,情况发生了变化。也许是因为对照片管理应用感到失望,又或许只是出于好奇,我突然想到:“开发一个简单的 iOS 应用能有多难?” 答案是“比我想象的要难”和“比我预期的要容易”。

最初只是一次随意的探索,却变成了一场为期三天的紧张旅程。我的目标很简单:构建一个可以管理照片、查找重复项并支持滑动和删除图片的工具。这个过程变成了 Cursor、我和 Xcode 之间有趣的舞蹈。我从 Cursor 开始,反复交流想法,获取样板代码和结构建议。然后,我将这些代码片段导入 Xcode 并进行扩展。这成为了我的节奏:我和 AI 合作,然后我进行验证、调试和研究。这比单纯的“氛围编码”要慢,但比从头开始学习 Swift 的传统方式要快。每条错误消息都变成了一堂小课。每次成功的编译都感觉像是一次小小的胜利。

让我印象深刻的一点是 iOS 提供了如此多的开箱即用功能。原生库、API——如此多的功能等待着我去添加。对于来自其他平台的人来说,这感觉简直太容易了。然而,我随后会遇到一些 iOS 特有的问题——比如代码签名、目标管理或部署配置——这让我意识到每个平台都有自己的学习曲线。这些并非编码问题,而是生态系统的挑战。说实话,人工智能(Gemini)在这里也发挥了巨大的作用,它指导我完成了一些设置步骤,而这些步骤如果单凭文档来理解的话,可能要花上几个小时。

并非一切都一帆风顺。项目开始两天后,我发现了苹果CLGeocoder的一个有趣特性。我之前用它做照片管理器的“地点”功能。如果设备或网络被检测为中国地区,它就会切换到使用高德地图,并且只对中国境内的位置进行反向地理编码。这给我​​带来了问题(也会影响中国用户)。解决方案需要构建一个回退系统:捕获特定的错误代码,然后切换到另一个用于国际位置的反向地理编码服务。这类边缘情况让整个过程更加愉快。

在开发过程中,我一直在思考这个领域现有的应用。大多数照片管理工具(类似于我正在开发的这个)都按周或按月收费,而这些操作其实都很简单。我见过一些应用每月收费 5-10 美元,用于批量删除和重复检测——一旦你理解了 API,这些功能实现起来其实并不复杂。这让我很困扰,不是因为这些开发者不值得赚钱,而是因为定价模式与实际交付的价值感觉脱节。为什么清理照片要每年花费 59 到 99 美元呢?我打算一次性收费,比如 2.99 美元,然后就完事了。没有订阅,没有免费增值技巧,也没有暗箱操作。只是一个名副其实的工具,价格公道。

我对这个领域的研究越深入,就越能注意到其中的营销模式。整个生态系统中,似乎有一大堆公司(根据我与中国团队合作的经验,其中很多都在中国)都遵循着同样的套路:每年开发一堆新的实用应用,与外国演员合作制作炫目的广告,在元广告上投入巨资,并收取订阅费,而这些订阅费的设计似乎更多是为了获得经常性收入,而非为了公平定价。我见过这些广告——它们通常近乎荒唐,但确实有效。它们吸引了人们的注意力,激发了人们的好奇心,并推动了下载量。作为一个有营销背景的人,即使我不喜欢这种策略的执行方式,我也能够理解。然而,我没有营销预算,而且我对这种方法也不感兴趣。我的应用必须凭借自身实力取得成功。

使用人工智能进行编码提供了重要的见解。这并不是说人工智能总能写出完美的代码——它并非如此。它的作用是帮助你更快地迭代,更快地从错误中吸取教训。当我被一个概念难住时,我可以解释我想要实现的目标,并获得三种不同的方法供我考虑。当我遇到错误时,我可以将其粘贴进去,并了解可能出错的地方。当我想了解 iOS 设计模式时,我可以进行交流,而不是阅读厚厚的文档。然而,这也有局限性。对于任何涉及用户身份验证或敏感数据的事情,我不会使用代理人工智能。我足够了解人工智能在编码方面的局限性,如果你没有足够的经验来正确审核人工智能生成的安全代码,那么它会显得很危险。

这款应用的性能令人惊喜。WIP 应用在正常运行期间不会占用太多内存。CPU 使用率只有在扫描重复项时才会飙升——这很正常,因为它可能要处理数千张图片——但即便如此,它仍然在可控范围内。我一直在密切关注这些指标和线程,一部分原因是我可以做到(Xcode 让这一切变得简单),另一部分原因是我想了解我的代码选择的影响。

我觉得我已经完成了大概90%。核心功能已经可以用了,但我想进一步完善用户体验。我还没有为Apple开发者计划付费。整个体验让我不禁思考,为什么我等了这么久才尝试iOS开发。当然,学习曲线确实存在,但并非不可逾越,尤其是在有了AI作为学习伙伴的情况下。

这个项目最初只是出于好奇,后来发展成了一个可能真正能帮助到大家的项目。几年前,对于非 iOS 开发者来说,开发一个 iOS 应用需要花费数周时间进行设置、配置和概念学习。而如今,只要有合适的工具和不断迭代的意愿,几天之内就能完成。

原文: https://mgx.me/my-first-attempt-at-ios-app-development/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme