Re: [問題] Mac App 開發的書好像不好找?

看板MacDev作者 (zonble)時間11年前 (2012/11/14 01:08), 編輯推噓8(805)
留言13則, 11人參與, 最新討論串2/2 (看更多)
※ 引述《osnq (又可以掛bbs了)》之銘言: : 坊間有的都是iOS develop 的書籍, : 似乎沒有Mac App develop 的書? : 我想可能是跟在iOS 上開發比較能有掏金夢吧! : 畢竟Mac App Store 上線才一年左右... : 不過,我還是很想試試Mac App 的開發。 : 不知道我該從哪邊開始呢? : p.s. 我本身有在寫iOS 的App, 是否二者的開發流程差不多呢? : (難道真的只要在xCode 中,開新的Mac App project 就可以了嗎!) : 希望有經驗的大大能給點建議,謝謝! Mac OS X 與 iOS 的 framework 設計,都是基本物件與 UI 層 的東西拆開來,iOS 是 Foundation + UIKit 組成 Cocoa Touch, Mac 上面則是 Foundation + AppKit 組成 Cocoa。基本上你已經 會了 Foundation 的東西,就是來看 AppKit 的部份而已。 比較 Mac 與 iOS,iOS 上面其實是一整份重新整理過的 API, Mac 上面其實有很多歷史留下來的殘渣,比方說第一次遇到一定 會踩到雷的 field editor 這種設計…。 可以先看一下蘋果的簡單入門文件 http://developer.apple.com/library/mac/#referencelibrary/GettingStarted/RoadMapOSX/chapters/01_Introduction.html 我自己覺得 Mac 與 iOS 開發,大概掌握幾件事情: 1. 先把 UIViewController 忘了,雖然 Mac 上面也有 NSViewController 但是 Mac 上面實作 UI,多半是以一個 Window 為起點。但是這 也不代表說要去用 NSWindowController…NSWindowController 又是 NSDocument 架構的一部分。 要開始習慣 Controller 不需要繼承自某個系統裡頭的 Controller class,直接繼承自 NSObject,而同一個 controller 也可以管理 好幾個 window。 2. 習慣很多東西 Mac 與 iOS 是相反的。iOS 的座標原點是左上角 但是 Mac 是左下角。建立 CGRect 用 CGRectMake,NSRect 則是要 用 NSMakeRect,CGPointMake 在 Mac 上也會變成 NSMakePoint, CGRectContainsPoint 也會反過來變成 NSPointInRect。 3. 很多 UIApplication 處理的工作,在 Mac 上面會變成是由 NSWorkSpace 處理。 4. 要搞懂 NSCell 是什麼。 5. 要搞懂把 target 設到 nil 上是什麼意思,還有怎麼去 validate menu item 與 toolbar item。 6. 有些東西在 iOS 上面很少用到,例如 undo 以及 drag and drop 在手機上面根本沒有什麼人去實作 shake to undo 這種事情,但是 寫 Mac app 一定得搞懂 undo manager 怎麼用,還有像是寫 redo 其實就是要寫 undo 的 undo…觸控介面不容易做 drag and drop, 但是滑鼠介面中這個卻是非懂不可。 7. Distributed Objects 還有 XPC,在 iOS 上面不怎麼容許做 Inter Process Communication,但是 Mac 上面會用到。 8. WebKit,在 iOS 上面的 UIWebView 很多東西是被封印的, 但是 Mac 上面有一大堆東西可以用,很多複雜的 UI 其實可以直接 丟進 WebView 裡頭做。 -- zonble.net cocoa.zonble.net -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.230.150.232

11/14 01:11, , 1F
11/14 01:11, 1F

11/14 07:21, , 2F
看來差距頗大的,謝謝您的建議!
11/14 07:21, 2F

11/14 08:59, , 3F
推iOS整理過的API真的比較好上手
11/14 08:59, 3F

11/14 09:06, , 4F
推!!
11/14 09:06, 4F

11/14 09:19, , 5F
推 最近剛好也在看 Mac 開發 感謝!
11/14 09:19, 5F

11/14 09:40, , 6F
11/14 09:40, 6F

11/14 13:29, , 7F
其實差距也沒「那麼大」, 至少比跳去其他 frameworks 要
11/14 13:29, 7F

11/14 13:30, , 8F
小得多, 基本的東西也還是互通(MVC 啊 delegate 等等)
11/14 13:30, 8F

11/14 13:32, , 9F
不過 iOS 不是也有 first responder 嗎?
11/14 13:32, 9F

11/16 01:51, , 10F
會讓人流淚的好文,果然是Zonble,感謝。
11/16 01:51, 10F

11/16 09:13, , 11F
跪拜
11/16 09:13, 11F

11/23 23:10, , 12F
雖然想學Xcode很久了,但是還是沒有實際行動,謝你的文章
11/23 23:10, 12F

02/05 11:17, , 13F
Zonble大大超強~受益良多
02/05 11:17, 13F
文章代碼(AID): #1Gedw3Ap (MacDev)
文章代碼(AID): #1Gedw3Ap (MacDev)