闲暇时间想学习下 mac os 开发,请问一下学习曲线是怎么样的

2023-01-12 12:40:57 +08:00
 covvee

主要是在使用 mac os 的时候,我一直对 mac 的窗口管理很不爽。现在使用 ubar ,大概满足了需求,但也有一些地方用着不太舒服。

过年了,有段闲暇时间,想学习一下 mac os 开发。我桌面应用开发的经验为 0 ,想问下需要怎么样的学习曲线?

mac os 的资源,感觉好少。还是说我没有找对

求带带路

3830 次点击
所在节点    macOS
33 条回复
xtinput
2023-01-12 12:42:33 +08:00
我搞 iOS 的都感觉学不动 macOS 开发
HHHans
2023-01-12 13:20:14 +08:00
资料特别少而且主要集中在英文互联网
可以试着先从 SwiftUI 入手搭一搭 UI
jay435990054
2023-01-12 13:21:13 +08:00
我做了两年 mac os 开发 你想开发什么东西呢
MakHoCheung
2023-01-12 13:29:21 +08:00
我是用 SwiftUI 来开发 macOS 应用的,但是你这个需求很高级,感觉要会 Appkit 和 系统调用才能做出来
cxtrinityy
2023-01-12 13:35:25 +08:00
虽然但是,单纯窗口管理不妨写写 hammerspoon 脚本看能不能解决
murmur
2023-01-12 13:53:34 +08:00
窗口管理不爽你得换 windows ,这么底层的东西你做 app 是搞不定的
covvee
2023-01-12 14:43:56 +08:00
@jay435990054 类似 ubar
halowang1991
2023-01-12 16:09:50 +08:00
我最近也在学, 就疯狂的用 google 搜索 “swift macOS 你自己想要的功能”, 还真学到了一些东西.

对于初学者来说, 我感觉 macOS dev 和 iOS dev 的一个核心区别就是多个 Window 或一个 Window
halowang1991
2023-01-12 16:12:20 +08:00
iOS 中我们往往在一个 UIWindow 中精耕细作, 但是 macOS 就需要面对多个 NSWindow 了. 而其他功能, 对于我来说, 更多地是基于自己之前的 iOS 开发经验, 顺藤摸瓜实现
halowang1991
2023-01-12 16:16:46 +08:00
不过 OP 做的东西我感觉还要和大量的系统级 API 进行交互...我感觉还是蛮难的, 很多东西只能从 apple 自己的开发者文档中摸索
objectxiang
2023-01-12 17:51:25 +08:00
macOS 老开发来说一句,多看文档学点 Cocoa 。毕竟以后都是 SwiftUI ,很多实现不了的还是要 Cocoa 。
justin2018
2023-01-12 17:56:54 +08:00
比 iOS 难度大

macOS 有的 API 连个 Demo 都没有 完全没法下手

很佩服做 Mac 开发的老铁 高手
paopaosa
2023-01-12 19:29:24 +08:00
官网查查 AppKit 的文档,github 上搜索下相关的开源项目,应该能搞定吧。
LINAICAI
2023-01-12 20:09:48 +08:00
macOS 不值得你学,太难了,我 iOS 快 10 年了依然学不会,其次你学来赚不到钱。
fengleiyidao
2023-01-12 20:13:48 +08:00
你说这个 app ,更主要的是摸索系统 api
pocarisweat
2023-01-12 20:58:22 +08:00
分两个部分:一个是界面,一个是系统延伸功能。

写界面可以用很多框架包括 Web ,但这里假定讨论的是原生。macOS 原生的 GUI API 就是 Cocoa ,AppKit 指 Cocoa 里面真正涉及 GUI 的那部分,通常这两个词都交替使用不作区分。放在二十年前那个年代,Cocoa 包括 Objective-C 都相当先进,但到今天程序员都习惯了 MVVM 和 Web 那一套更方便的技术,再回到 MVC 就有些难受了。而且 AppKit 因为历史较早,其 API 很多地方比 iOS 的 UIKit 难受很多,所以能 SwiftUI 就 SwiftUI 吧。

系统功能这块,其实 macOS 系统的 API 能实现的可能不少,但想实现某个需求时很难知道自己可以用哪个 API ,这点其实连 Windows 也差不多。比如我在用一个小开源软件,它能让鼠标和触控板使用相反的滚动方向。因为系统不支持这个设置,所以我以为没法实现,看了它的源码才发现:哦,原来系统有一个可以拦截外设事件的接口。这个 API 文档里有,但没看到过就是想不起来。这个就只能靠多看开源项目和翻文档列表了。
LINAICAI
2023-01-12 23:25:20 +08:00
Appkit 真一言难尽啊,也就那样摆烂了。
covvee
2023-01-12 23:40:45 +08:00
楼上朋友们快成功把我劝退了,哈哈哈
covvee
2023-01-13 00:09:27 +08:00
我找到一个项目可以用来学习学习了

https://github.com/WilsonGramer/wwdc21-dock
em70
2023-01-13 00:19:14 +08:00
delphi 11 是开发 mac 桌面程序,最简单的方案,拖拽式开发,资料也够,但需要 win 系统

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

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

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

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

© 2021 V2EX