想学 macOS app 开发, 请教一下入门选择

2023-04-11 14:38:45 +08:00
 hzzz0823

我想开发一个类似 paste 的工具 (想自定义一些功能满足自己需求).

目前一头雾水, 想先确认和选择一些事情.

  1. 开发工具是否都是 xcode?

  2. 应该选择 Objective-C 还是 Swift 比较好

  3. 选择 interface 时, 应该选择 storyboard 还是 SwiftUI

分享个用 gpt 的体验 (以我纯小白视角),

  1. 他给我的代码中让我去什么 ViewController 中写代码, 但我没这个文件, 我就告诉他我是用的 SwiftUI, 然后说着说着就又让我去 ViewController 了.

我怀疑是网络上 swift 的预料太少?

  1. 我想监听复制事件, 他总是让我去监听 NSPasteboard.didChangeNotification, 但是 xcode 报错了, google 后似乎只有 ios 可以这么做, macos 不行. 我就告诉他没有这个, 结果他让我监听 NSPasteboardDidChangeNotification. 我直接无语.
3449 次点击
所在节点    Xcode
21 条回复
MakHoCheung
2023-04-11 15:02:59 +08:00
1. 只能 Xcode ,因为 AppCode 已经凉了
2. Swift
3. 主 Storyboard ,辅 SwiftUI ,避免你想要的 UI 无法用 SwiftUI 实现

PS. 找个兼职帮你写,比如我🐶
Keanuo
2023-04-11 15:04:10 +08:00
试试 gpt4 ,写 swift 的能力比 gpt3.5 强了不少
fidetro
2023-04-11 15:32:20 +08:00
1.xcode
2.爱用哪个用哪个,不过 mac 开发很难纯 swift
3.除了 swiftUI 都可以,硬要用也行
4.没用过这个通知,但是可以通过监听按下 command+c 实现类似的逻辑
zimusjw2019
2023-04-11 16:20:13 +08:00
https://github.com/dfzr86/Paste 参考一下.? 我现在就在用自己写的...
当然也可以直接编译拿走去用..
0littleboy
2023-04-11 16:25:29 +08:00
弱弱问一句为啥 mac 开发用 switfui 有很多功能没法实现,iOS 好像大部分可以
jay435990054
2023-04-11 16:26:11 +08:00
怎么这么多学 mac 开发的 我开一门课程好了 收徒 收徒
hzzz0823
2023-04-11 17:21:19 +08:00
@MakHoCheung 我也想. 但是我太穷了..
Weiiiiii
2023-04-11 17:23:37 +08:00
那不如考虑 Electron
Cyshall
2023-04-11 17:58:42 +08:00
@MakHoCheung #1 AppCode 凉了的消息从何而来🤔️
liyunyang
2023-04-11 18:12:36 +08:00
是不是还需要购买开发者帐号
spike2017
2023-04-11 19:13:57 +08:00
@Cyshall JB 公告过不再更新
LycheeJuice
2023-04-11 20:39:52 +08:00
wingkwanli888
2023-04-11 20:50:58 +08:00
Tauri 和 Vue
GP1
2023-04-11 21:03:05 +08:00
有能力搞个 ChatGPT ,然后打开 Xcode 直接开干。
或者下载 cursor 也行。
wqzjk393
2023-04-12 08:42:50 +08:00
没人用 flutter 么
agagega
2023-04-12 12:16:22 +08:00
1. Xcode 是 IDE ,但是里面也提供了命令行工具,理论上整个开发流程可以不依赖 Xcode (否则 AppCode 是怎么实现的)。流言说苹果内部很多部门的程序员就没用 Xcode ,但这方面资料比较少,Xcode 更方便。

AppCode 的好处是提示更稳定,更适合习惯 JetBrains 系的人,也有更多插件可以用。问题是官方不再支持,今年下半年新系统出正式版后就不好搞了。Xcode 也有插件系统,但好像开放的功能不多,AppCode 搭配 Copilot 体验很爽。

2. 写 App 而言没太多理由用 Objective-C ,一些新的 API 已经仅支持 Swift 了。OC 的好处是语法稳定资料多,和 C++互操作很容易。我不觉得 OC 是个坏语言,但面向苹果平台开发 App 显然 Swift 更好。

3. 我的感受是:SwiftUI 适合开发「 App 」,Storyboard/XIB/AppKit 适合开发「软件」。SwiftUI 可以很快速地创建一个长得标准的 UI 界面,如果你的目标只有一些 CRUD 操作那很合适,但有很多 API 都没适配或者很难适配 SwiftUI ,AppKit 可以做这些复杂的交互。

4. 理解 ViewController 和整个面向对象体系是学习「旧」方法的核心。从 HTML/Vue/React 这些前端 MVVM 框架走过来的人会更快接受 SwiftUI ,而旧的 AppKit 是一个思想上完全不同的 MVC 技术体系:利用各种 ViewController 管理视图和相应事件,利用继承来复用各种 View 的内在逻辑。这个体系并不落后,只是适用场景不一样。

5. macOS 和 iOS 有很多不一样,网上能找到不少对比。比如坐标系原点不同,iOS 上 TextView 是 ScrollView 的子类而 macOS 不是,macOS 因为更老所以 API 里的历史痕迹比较多。但这个在各种 IDE 提示+搜索加持下不是什么问题。

macOS 开发应该是一个特别适合用 AI 加速的领域,因为文档实在是太少太乱了。
hzzz0823
2023-04-12 13:58:06 +08:00
@agagega 非常感谢! 学习到很多知识!
likeme
2023-04-12 15:51:42 +08:00
@wqzjk393 flutter 开发 macos 不合适吧。。
likeme
2023-04-12 15:52:03 +08:00
@wqzjk393 目前还没用过 flutter 开发的 mac os 软件
liuzhihang
2023-04-13 01:44:22 +08:00
剪贴板工具我用的 hapigo ,只用了剪贴板功能,这个不能独立出来害

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/931583

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX